1. Một vài ví dụ làm quen
2. Giải thích chương trình
3. Cấu trúc chương trình
4. Các lệnh cơ bản
5. Kiểu dữ liệu, biến
6. Nhập xuất dữ liệu
7. Câu lệnh, khối lệnh
8. Câu lệnh rẽ nhánh
9. Câu lệnh lặp
10. Thủ tục, hàm
11. Kỹ thuật đệ quy
12. Kiểu bảng ghi, tập hợp, miền con
13. Mảng, chuỗi
14. Làm việc với tập tin
15. Thư viện đồ họa trong pascal
32 trang |
Chia sẻ: candy98 | Lượt xem: 584 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Tin học đại cương - Chương 5: Lập trình với Pascal - Trần Phước Tuấn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1LẬP TRÌNH VỚI PASCAL
Trần Phước Tuấn
tranphuoctuan.khoatoan.dhsp@gmail.com
Nội dung
1. Một vài ví dụ làm quen
2. Giải thích chương trình
3. Cấu trúc chương trình
4. Các lệnh cơ bản
5. Kiểu dữ liệu, biến
6. Nhập xuất dữ liệu
7. Câu lệnh, khối lệnh
8. Câu lệnh rẽ nhánh
9. Câu lệnh lặp
10. Thủ tục, hàm
11. Kỹ thuật đệ quy
12. Kiểu bảng ghi, tập hợp, miền con
13. Mảng, chuỗi
14. Làm việc với tập tin
15. Thư viện đồ họa trong pascal
2Chương trình Borland Pascal 7.0
Ấn Alt+F để vào menu File
- Mở tập tin có sẵn: F3
- Đóng tập tin hiện tại: Alt+F3
- Mở tệp mới: Alt+F New (File New)
- Lưu tệp vào đĩa: F2
-Lưu tập tin với một tên khác: Save as
-Lưu tất cả các tập tin đang mở: Save all
- Đổi thư mục mặc định: Change dir
- Về DOS tạm thời: DOS shell
- Thoát khỏi Borland Pascal 7.0: Alt+X (Exit)
Chương trình Borland Pascal 7.0
Ctrl + F9: Biên dịch và thực thi chương trình.
Alt + F5: Xem màn hình kết quả.
Alt + F9: Biên dịch chương trình
Tập tin cùng tên, có đuôi exe
được tạo ra cùng thư mục
3Ví dụ mở đầu
1. Ví dụ 1:
* Source code ( mã nguồn)
(Ctr + F9: biên dịch và thực thi chương trình)
* Kết xuất màn hình: Hello world!
(Alt + F5 để xem màn hình kết xuất)
* Thêm vào lệnh: Readln; sau writeln(‘ Hello
world’);
* Biên dịch và chạy là để xem kết quả.
Begin
Writeln(‘Hello world’);
End.
Ví dụ mở đầu
2. Ví dụ 2:
* Source code
* Kết xuất màn hình
7 + 5 = 12
Var a,b,c :integer;
begin
a:=7; b:=5;
c:= a + b;
writeln(a,’ + ‘,b,’ = ‘,c);
readln;
end.
4Ví dụ mở đầu
3. Ví dụ 3:
* Source code
* Kết xuất màn hình
Day la chuong trinh tinh tong hai so
Nhap a: 15 {Người dùng nhập}
Nhap b: 17 {Người dùng nhập}
Tong cua 15 va 17 la 32
Uses crt;
Var a,b,c:integer;
Begin
Clrscr; {lệnh xóa màn hình}
Writeln(‘Day la chuong trinh tinh tong hai so’);
Write(‘Nhap a: ‘);
Readln(a);
Write(‘Nhap b: ‘):
Readln(b);
c:= a + b;
writeln(‘tong cua ‘,a,’ va ‘,b,’ la ‘,c);
readln;
end.
Cấu trúc một chương trình pascal
Tiêu đề của chương trình (Program vidu;)
Phần khai báo
Khai báo thư viện (Uses crt;)
Hằng, biến (Const, Var),
Mô tả kiểu dữ liệu mới (Type)
Khai báo chương trình con (Procedure,
Function)
Phần thân chương trình
Chứa các lệnh để máy tính thực hiện
Các câu lệnh nằm giữa:
begin
;
end.
5Kiểu dữ liệu
Kiểu dữ liệu là một bộ T trong đó
Tập A: tập tất các các giá trị mà kiểu dữ liệu
T có thể lưu trữ được.
Tập B: tập tất cả các phép toán có thể thao
tác trên kiểu T.
Ví dụ: kiểu integer
Tập A: các giá trị nguyên [-32768,32767]
Tập B: các phép toán: +, -, *, /, div, mod, >,
=, ,
Kiểu dữ liệu – Kiểu số nguyên
4-2147483648 .. 2147483647LongInt
20 .. 65535Word
2-32768 .. 32767 Integer
10..255Byte
1-128 .. 127 ShortInt
Số bytePhạm vi gía trịTên kiểu
6Kiểu dữ liệu – Kiểu số nguyên
y=y div 2;
y=y mod 2;
Chia lấy thương, chia lấy dưdiv,mod
y=x*z;Nhân, chia*,/
y=x+z;Cộng, trừ+,-
x>=ylớn hơn hoặc bằng>=
x>ylớn hơn>
x<=ynhỏ hơn hoặc bằng<=
x<ynhỏ hơn<
xykhác nhau
x=ybằng nhau =
Ví dụÝ nghĩaKý hiệu
Kiểu dữ liệu – Kiểu số nguyên
0 XOR 0=00 OR 0=00 AND 0=0
0 XOR 1=10 OR 1=10 AND 1=0
1 XOR 0=11 OR 0=11 AND 0=0NOT 0 = 1
1 XOR 1=0 1 OR 1=11 AND 1=1NOT 1 = 0
7Kiểu dữ liệu – Kiểu số nguyên
N SHR k : dịch các bít của số nguyên N sang phải đi k bít.
N SHL k : dịch các bít của số nguyên N sang trái đi k bít.
Có thể chứng minh được :
N SHR k = N div 2k
N SHL k = N * 2k
Ví dụ:
120 shr 4 = 7, vì :
120 shr 4 = 120 div 24 = 120 div 16 = 7.
120 shl 3 = 960, vì :
120 shl 3 = 120 * 23 = 120 * 8 = 960.
Hai phép toán SHR và SHL được dùng khi muốn tăng tốc độ tính
toán trên các số nguyên.
Kiểu dữ liệu – char
M
L
K
J
I
H
G
F
E
D
C
B
A
KT
77
76
75
74
73
72
71
70
69
68
67
66
65
MÃ
m
l
k
j
i
h
g
e
f
d
c
b
a
KT
109
108
107
106
105
104
103
102
101
100
99
98
97
MÃ MÃKTMÃKT
122z90Z
121y89Y
120x88X
119w87W
118v86V
117u85U
116t84T
115s83S
114r82R
113q81Q
112p80P
111o79O
110n78N
Mã chữ thường = Mã chữ hoa tương ứng + 32 Thường :=Chr(Ord(Hoa)+32)
8Kiểu dữ liệu – char
57‘9’
56‘8’
55‘7’
54‘6’
53‘5’
52‘4’
51‘3’
50‘2’
49‘1’
48‘0’
32‘ ’
MÃKT
Mã của ký tự số i = số i + 48
(với 0<=i<=9)
Khoảng trắng
Kiểu dữ liệu – char
Hàm PRED(ch): cho ký tự đứng ngay trước ch trong bảng mã.
Ví dụ: Pred(‘B’) = ‘A’
Hàm SUCC(ch): cho ký tự đứng ngay sau ch trong bảng mã.
Ví dụ: Succ(‘A’) có giá trị là ‘B’.
Hàm UpCase(ch): đổi ký tự ch thành chữ hoa. Ví dụ:
Upcase( ‘a’ ) = ‘A’,
Upcase( ‘b’ ) = ‘B’,
Upcase( ‘A’ ) = ‘A’ .
Hàm ORD(ch) : cho mã của ký tự ch.
Ví dụ: Ord (‘A’) = 65, Ord (‘a’) = 97 .
Hàm CHR(k): k nguyên, 0<=k<=255, cho ký tự có mã bằng k.
Ví dụ:
Chr (65)= ‘A’
Chr (97)= ‘a’
Chr(32) là ký tự trắng.
9Kiểu dữ liệu – boolean
TrueFalse
FalseTrue
not AA
FalseFalseFalseFalseFalse
TrueTrueFalseTrueFalse
TrueTrueFalseFalseTrue
FalseTrueTrueTrueTrue
A xor BA or BA and BBA
1. A and B là đúng khi và chỉ khi
A và B đồng thời đúng.
(Do đó chỉ cần một trong hai
biến A hoặc B sai thì A and B
sẽ sai).
2. A or B là sai khi và chỉ khi A
và B đồng thời sai.
(Do đó chỉ cần một trong hai
biến A hoặc B đúng thì A or B
sẽ đúng).
3. A xor B là đúng khi và chỉ khi
A khác B.
Kiểu dữ liệu – string
Hàm cho biết độ dài của chuỗi
Giá trị trả về là số nguyên. length()
Thủ tục đổi một số sang một chuỗi.
VD: str(10.2,chuoi);
Trong đó chuoi là biến kiểu string
str(,)
‘Anh’ < ‘an’ là đúng vì ‘A’ < ‘a’
‘Thong’ > ‘Tha’ là đúng vì ‘o’ > ‘a’>,=,
Phép cộng (nối 2 chuỗi)
kq:=‘Borland ’ + ‘Pascal.’
Thì kq nhận giá trị: ‘Borland Pascal.’
+
Giải thíchPhép toán
Xem thêm tài liệu về các hàm, thủ tục liên quan đến chuỗi:
delete, insert, strcat, strcopy,
10
Kiểu dữ liệu – string
Biến nhận giá trị là các hằng chuỗi gọi là biến kiểu
chuỗi.
Có thể khai báo hai biến chuỗi như sau:
Var
Ho_ten : string[20];
st : string;
Khi đó Ho_ten là biến chuỗi có thể chứa tối đa 20 ký
tự, còn biến chuỗi st có thể chứa tối đa 255 ký tự, và
ta có thể gán :
Ho_ten := ‘Nguyen Van An’;
st :=‘Viet chuong trinh bang ngon ngu Pascal’;
Xem thêm phần
khai báo biến
Biến
Biến dùng để lưu trữ dữ liệu đưa từ bên
ngoài vào bên trong chương trình để có
thể truy xuất, xử lý và xuất ra lại.
Một biến bất kỳ phải thuộc một kiểu dữ
liệu nào đó điều này giúp cho ngôn ngữ
biết các phép toán có thể thực hiện trên
biến này. Được thể hiện ở việc khai báo
biến.
11
Biến – Khai báo
Cú pháp
var : ;
Danh sách biến: gồm một hoặc nhiều tên biến
cách nhau bởi dấu phẩy (,)
Kiểu dữ liệu: là một trong các kiểu dữ liệu chuẩn
của TP
Sau từ khóa VAR, có thể khai báo nhiều
danh sách biến khác nhau với cấu trúc:
: ;
Ví dụ
var a,b,c:real;
x,y,z:integer;
hoten: string;
Biến – Nguyên tắc đặt tên
Không đặt tên biến trùng với các từ khóa
Tên biến không chứa khoảng trống và
các ký tự đặt biệt như: +,-,,(,),?,.,
Tên biến không bắt đầu bằng số, tên
biến phải được bắt đầu bằng ký tự chữ
hoặc dấu gạch chân.
Theo sau ký tự đầu tiên có thể là các ký
tự chữ, số hoặc dấu gạch chân.
12
Biến - Lời khuyên về cách đặt tên
Không nên viết hoa tất cả các ký tự.
Không nên bắt đầu bằng dấu gạch chân.
Tránh viết tắt quá nhiều dẫn đến tên biến tối
nghĩa.
Nên đặt tên biến có tên gợi nhớ đến kiểu dữ
liệu và ý nghĩa lưu trữ của nó.
Ví dụ var s_nameStudent: string;r_markEnglish: real;
Ví dụ về tên biến không hợp lệ
3a_1 (ký tự đầu là số)
num-odd (sử dụng dấu gạch ngang-dấu trừ)
Real (đặt tên trùng với từ khóa)
del ta (có khoảng trắng)
f(x) (có dấu ngoặc tròn)
Ví dụ về tên biến hợp lệ
iNumber
Ho_Ten
Biến – ví dụ về đặt tên biến
13
Nhập xuất dữ liệu
write: lệnh xuất ra màn hình
writeln: lệnh xuất ra màn hình đồng thời
xuống dòng
write ();
(các biến cách nhau bởi dấu ,)
writeln();
Ví dụ:
Writeln(‘Hello World!’);
Writeln(a,’+’,b,’=‘,a+b);
Nhập xuất dữ liệu
readln: dừng chương trình lại đợi cho
đến khi người dùng bấm enter
readln () : nhập giá trị
cho các biến.
Ví dụ:
Readln(a,b,c);
Readln(z);
14
Câu lệnh gán
Khái niệm: Là một trong những câu lệnh cơ
bản nhất của một ngôn ngữ lập trình bất kì nói
chung
Cú pháp: :=;
Chức năng: tính giá trị của và ghi
giá trị đó vào vùng nhớ của biến có tên ở vế
trái dấu :=, nghĩa là gán giá trị cho biến.
Ví dụ:
x1 := (-b+sqrt(b*b-4*a*c))/(2*a);
x2 := -b/a-x1;
i := i+1;
Phép toán
15
Biểu thức
Thứ tự ưu tiên
16
Thứ tự ưu tiên – Quy tắc
Quy tắc 1: các phép toán nào có ưu tiên
cao hơn sẽ được tính trước.
Quy tắc 2: trong các phép toán có cùng
thứ tự ưu tiên thì sự tính toán sẽ được
thực hiện từ trái sang phải.
Quy tắc 3: phần trong ngoặc từ trong ra
ngoài được tính toán để trở thành một
giá trị đơn.
Câu lệnh, khối lệnh
Câu lệnh
Câu lệnh là một tác vụ có nhiệm vụ xác định một công việc
mà máy tính phải thực hiện để xử lý các dữ liệu đã được mô
tả và khai báo.
Có hai loại câu lệnh:
Lệnh đơn giản: Read(a);Readln(b);Write, Writeln; RESET,
REWRITE, ASSIGN; gọi hàm, thủ tục,
Lệnh có cấu trúc:If then else ;While do , for
to/downto do ;repeat until ,
Khối lệnh
Là câu một hay nhiều câu lệnh đặt giữa begin và end.
Ví dụ:
Begin
x:=x+2;
i:=i+1;
End;
17
Câu lệnh rẽ nhánh
Câu lệnh if
Công dụng
Cú pháp
Bài tập
Câu lệnh case of [else ] end;
Công dụng
Cú pháp
Bài tập
Câu lệnh rẽ nhánh - if
Công dụng: Sử dụng giải quyết những trường
hợp liên quan đến việc giải bài toán có sự biện
luận, phân chia trường hợp.
Cú pháp
Lưu ý:
Trước else không có dấu chấm phẩy (;)
if () then
[else
]
//thực hiện khi đúng
// thực hiện khi sai
18
Biểu thức Logic
(true/false)
Câu lệnh
Khối lệnh
Câu lệnh
Khối lệnh
true false
Câu lệnh rẽ nhánh - if
1. Nhập a, b, c. Tìm max. Phát triển nhiều số
2. Giải phương trình ax+b=0
3. Giải phương trình ax2+bx+c=0
4. Giải hệ phương trình: a1x+b1y=c1
a2x+b2y=c2
5. Nhập vào điểm trung bình, hãy xếp loại học tập
6. Tính tiền điện (nhập vào số kw)
7. Dạng tam giác (nhập a, b,c )
8. Nhập vào 1 tháng, cho biết tháng này thuộc quý mấy?
Một số bài tập
Câu lệnh rẽ nhánh - if
19
Câu lệnh rẽ nhánh – case of
Câu lệnh rẽ nhánh – case of
Công dụng: Sử dụng giải quyết những trường
hợp liên quan đến việc giải bài toán có sự biện
luận, phân chia nhiều trường hợp.
Cú pháp
CASE OF
: ;
: ;
...........
: ;
ELSE
;
END;
Diễn giải
So sánh giá trị của
với từng giá trị trong :
• Nếu có một giá trị nào bằng thì
thực hiện:
• Ngược lại thì thực hiện:
Hãy so sánh if với case of
20
Một số bài tập
1. Viết chương trình nhập vào tháng, in ra
tháng đó có bao nhiêu ngày
2. Viết chương trình nhập vào 2 số x, y và
1 trong 4 toán tử +, -, *, /. Sau đó thực
hiện phép tính (nếu y = 0 thì thông báo
không chia được)
Câu lệnh rẽ nhánh – case of
Câu lệnh lặp – Tổng quan
:
;
if () then
goto ;
FOR := TO DO
;
Hoặc:
FOR := DOWNTO
DO ;
while() do
;
repeat
;
until();
21
Câu lệnh lặp – Diễn giải
:
;
Nếu () thì
nhảyđến ;
cho := lên đến làm
;
Hoặc:
cho := xuống làm
;
TrongKhi() làm
;
LặpLại
;
Cho đến khi();
Hãy phân biệt – so sánh các loại vòng lặp
Hãy tính S = 1+2++n
i:=1;s:=0;
moc: {Phải khai báo nhãn}
s:=s+i;
i:=i+1;
if (i<=n) then
goto moc;
s=0;
for i:=1 to n do
s:=s+i;
i:=1;s:=0;
while (i<=n) do
begin
s:=s+i;
i:=i+1;
end;
i:=1;s:=0;
repeat
s:=s+i;
i:=i+1;
until(i>n);
Câu lệnh lặp – Ví dụ
22
1. Viết hàm, thủ tục:
1. Truyền vào ký tự và số n. In ra n ký tự đó
2. In hcn các dấu * có kích thước m*n
3. In hcn rỗng các dấu * có kích thước m*n
4. In tam giác cân các dấu * có chiều cao h
5. In tam giác rỗng các dấu * có chiều cao h
2. Tính các tổng sau:
1. S = 1 + 2 + + n
2. S = 2 + 4 + + 2.n (tổng các số chẵn <=n)
3. S = 12+22+ + n2
4. S = 1.2+2.3+ + n.(n+1)
5. S = 1/2 + 2/3 + n/(n+1)
3. Viết hàm, thủ tục:
1. Nhập n số, tính tổng.
2. Nhập n số, tìm max
4. Tính số hạng thứ n của dãy fibonaci (f0=f1=1, fn=fn-1+fn-2)
5. Tìm UCLN, BCNN của hai số a,b ( Bảng ghi Phân số)
6. Rút gọn phân số
7. In ra các ước số dương thực sự của n (n=6 thì các ước số là 1,2,3)
8. Tổng các ước số dương thực sự của n
9. Tổng các số chẵn <=n
10. T = n!
11. Kiểm tra n có phải là số nguyên tố hay không
12. Kiểm tra n có phải là số chính phương hay không
13. Phân tích n thành tích các thừa số nguyên tố
Câu lệnh lặp
Bài tập
Hàm – Tổng quan
Hàm sqrt(x) cho căn hai của x.
Tên hàm là sqrt
Tham số x là số nguyên hay số thực (tập nguồn)
Giá trị hàm kiểu thực (tập đích)
Ví dụ sqrt(4)=2.0
Nhớ lại các hàm trong toán học để có sự liên hệ với môn học
Khi nói đến hàm ta quan tâm đến 3 yếu tố
Tập nguồn
Tập xác định, miền xác định.
Đối với tin học thì đây là thông tin đầu vào
Tập đích
Tập giá trị, miền giá trị.
Đối với tin học thì đây là thông tin đầu ra
Quy tắc của hàm
Để xác định 1 phần tử thuộc Tập nguồn 1 phần tử thuộc Tập đích
Trong tin học thì đó là những câu lệnh nhằm xác định thông tin đầu ra từ
thông tin đầu vào
Người sử dụng hàm
quan tâm
Người viết hàm
quan tâm
23
Hàm – Ví dụ hàm có sẵn
Hàm sqrt(x): cho căn hai của x. Tên hàm là sqrt, tham số x là
nguyên hay thực còn gía trị hàm kiểu thực, ví dụ sqrt(4)=2.0.
Hàm chr(k): cho ký tự có mã là k. Tên hàm là chr, tham số k kiểu
nguyên còn gía trị hàm kiểu ký tự, ví dụ chr(65)=‘A’.
Hàm odd(k): cho True hay False tùy theo k là lẻ hay chẵn. Tên
hàm là odd, tham số k kiểu nguyên và gía trị hàm kiểu lôgic, ví dụ
odd(4)=False.
Hàm copy( st, k, n): cho chuỗi con gồm n ký tự của st tính từ vị
trí k. Tên hàm là copy, có ba tham số là st kiểu chuỗi, k và n kiểu
nguyên, và gía trị hàm kiểu chuỗi, ví dụ copy(‘ABCD’, 2, 3) =
‘BCD’.
Hàm readkey: không có tham số, gía trị hàm kiểu ký tự, hàm
nhận một ký tự được gõ từ bàn phím.
Hàm – Ví dụ hàm có sẵn
24
Hàm – Hàm tự viết
Hàm – Cú pháp
function (ds tham số) : kiểu_giá_trị;
const ...
type ...
var ...
begin
{Các lệnh của hàm}
:=;
end;
Kiểu dữ liệu của kết qủa của hàm không thể là mảng (array),
bản ghi (record), tập hợp (set) hay tập tin (file).
25
Thủ tục
Giống như hàm, thủ tục cũng là một chương trình con,
song thủ tục khác hàm ở chỗ: nếu như hàm luôn trả
về một gía trị duy nhất thông qua tên hàm thì thủ tục
lại không trả về một giá trị nào.
Ví dụ:
Thủ tục readln(x, y, z) có nhiệm vụ nhập các gía trị từ bàn
phím cho các biến x, y, z.
Thủ tục write(x, y, z) in gía trị của x, y, z .
Thủ tục gotoxy(x, y) định vị con trỏ vào toạ độ cột x, dòng y
trên màn hình.
Thủ tục clrscr thì chỉ đơn giản là xóa màn hình .v.v. .
Như vậy thủ tục có thể không có tham số hoặc có từ
một đến nhiều tham số.
Thủ tục – Cú pháp
procedure ();
{khai báo const, type, var dùng trong thủ tục }
begin
{Các lệnh của thủ tục }
end;
Hãy so sánh cú pháp của thủ tục và hàm
26
Thủ tục
Thủ tục, hàm - Truyền tham số
Truyền tham số trị
Khái niệm
Tác dụng của nó đến biến sau khi ra khỏi
chương trình con.
Truyền tham số biến
Khái niệm
Tác dụng của nó đến biến sau khi ra khỏi
chương trình con
Thủ tục và hàm có một tên gọi chung là chương trình con
27
Thủ tục, hàm – Truyền tham số
Truyền tham số trị - khái niệm
Trong phần khai báo tham số hình thức của
chương trình con, các tham số không có từ
khóa var phía trước được gọi là tham số trị
Trong lời gọi chương trình con các tham số
trị thực sự có thể là biến, hằng hay biểu
thức.
Ví dụ:
x:=max(a,b,5); y:=max(a+1,4,5);
Xem lại các ví dụ về thủ tục và hàm trong các
phần trước.
Thủ tục, hàm – Truyền tham số
Truyền tham số trị - tác dụng
Tham số trị hình thức được cấp một ô nhớ riêng khi
chương trình con được gọi và bị xóa bỏ khi chương
trình con chạy xong.
Giá trị của biến, hằng, biểu thức được copy cho
tham số của chương trình con (tham số này có thể
xem như là biến cục bộ trong chương trình con).
Không làm thay đổi giá trị của tham số thực sự
Ví dụ:
var m,y:integer;
begin
m:=4;
y:=add(m);
writeln(‘m = ‘,m,’, y = ‘,y);
end.
function add(x:integer):integer;
Begin
x=x+5;
add:=x;
End;
m = 4, y = 9 Kết xuất màn hình
m: tham số thực sự
x: tham số hình thức
28
Thủ tục, hàm – Truyền tham số
Truyền tham số biến – Khái niệm
Trong khai báo ở đầu của chương trình con,
các tham số hình thức có từ khóa Var đứng
trước gọi là tham số biến.
Trong lời gọi chương trình con các tham số
biến thực sự chỉ có thể là biến, không thể
là hằng hay biểu thức.
Ví dụ:
HoanVi(3, 4); {Sai vì 3 và 4 là các hằng}
HoanVi(a+1, b);{Sai vì a+1 là một biểu thức}
HoanVi(a,b); {Đúng}
Thủ tục, hàm – Truyền tham số
Truyền tham số biến – Tác dụng
Tham số hình thức theo kiểu truyền tham số này không được
cấp phát vùng nhớ.
Khi gọi chương trình con thì tham số hình thức sẽ là một alias
(biệt danh) khác của biến là tham số thực.
Trong hàm nếu có sự tác động làm thay đổi giá trị của biến
là tham số hình thức thì cũng chính là thay đổi biến là tham
số thực.
Ví dụ:
var m,y:integer;
begin
m:=4;
y:=add(m);
writeln(‘m = ‘,m,’, y = ‘,y);
end.
function add(var x:integer):integer;
Begin
x=x+5;
add:=x;
End;
m = 9, y = 9 Kết xuất màn hình
m: tham số thực sự
x: tham số hình thức
29
Thủ tục, hàm – Lưu ý
Kiểu dữ liệu của tham số trong hàm và thủ tục
thì không hạn chế. Nhưng nếu là kiểu tự xây
dựng thì phải được định nghĩa trước bằng từ
khóa type.
Kiểu dữ liệu của kết qủa của hàm có thể là
các kiểu đơn giản, chuỗi, hay con trỏ. Nếu là
kiểu liệt kê, đoạn con thì phải định nghĩa trước
thông qua từ khóa type
Kiểu dữ liệu của kết qủa của hàm không thể là
mảng (array), bản ghi (record), tập hợp (set)
hay tập tin (file).
Phạm vi của biến
1. Phạm vi tác dụng
hay tầm tác dụng
của biến (hay hằng,
kiểu dữ liệu, chương
trình con) là khu vực
mà trong đó nó có
thể sử dụng được.
2. Ngoài khu vực đó nó
bị xem là chưa khai
báo
30
Kiểu bảng ghi (record)
Giải lại bài HPT
Phân số
Quản lý học sinh
Đơn thức, đa thức một biết
(mảng đơn thức)
Điểm, đoạn thẳng, tam giác
Số phức
Mảng
Mảng một chiều
Nhập, Xuất
Sắp Xếp
Đảo ngược
Mảng hai chiều
Nhập, Xuất
Sắp xếp
Ma trận
tổng, hiệu, tích,
tính định thức,
chuyển vị
31
Kiểu miền con
Tập hợp (set of)
32
Nhập xuất với tập tin văn bản