LẬ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
1
Chươ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
Tập tin cùng tên, có đuôi exe được tạo ra cùng thư mục
2
Ctrl + F9: Biên dịch và thực thi chương trình. Ctrl + F9 Alt + F5: Xem màn hình kết quả. Alt + F5 Alt + F9: Biên dịch chương trình Alt + F9
Ví dụ mở đầu
1. Ví dụ 1:
* Source code ( mã nguồn)
Begin Writeln(‘Hello world’); End.
(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ả.
Ví dụ mở đầu
2. Ví dụ 2:
* Source code
Var a,b,c :integer; begin
a:=7; b:=5; c:= a + b; writeln(a,’ + ‘,b,’ = ‘,c); readln; end.
* Kết xuất màn hình
7 + 5 = 12
3
Ví dụ mở đầu
3. Ví dụ 3:
* Source code
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.
* Kết xuất màn hình
{Người dùng nhập} {Người dùng nhập}
Day la chuong trinh tinh tong hai so Nhap a: 15 Nhap b: 17 Tong cua 15 va 17 la 32
Cấu trúc một chương trình pascal
Program vidu;)
Tiêu đề của chương trình (Program 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 begin
;
end. end.
4
Kiể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
Tên kiểểu u Tên ki PhPhạạm vi gm vi gíía tra trịị SSốố bytebyte
ShortInt -128 .. 127 1
Byte 0..255 1
Integer -32768 .. 32767 2
Word 0 .. 65535 2
5
LongInt -2147483648 .. 2147483647 4
Kiểu dữ liệu – Kiểu số nguyên
Ký hiệu Ý nghĩa Ví dụ
x=y = bằng nhau
<> khác nhau x<>y
x x<=y <= nhỏ hơn hoặc bằng > lớn hơn x>y >= lớn hơn hoặc bằng x>=y y=x+z; +,- Cộng, trừ *,/ Nhân, chia y=x*z; div,mod Chia lấy thương, chia lấy dư y=y div 2;
y=y mod 2; NOT 1 = 0 1 AND 1=1 1 OR 1=1 1 XOR 1=0 NOT 0 = 1 1 AND 0=0 1 OR 0=1 1 XOR 0=1 0 AND 1=0 0 OR 1=1 0 XOR 1=1 6 0 AND 0=0 0 OR 0=0 0 XOR 0=0 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. A 65 a 97 N 78 n 110 B 66 b 98 O 79 o 111 C 67 c 99 P 80 p 112 D 68 d 100 Q 81 q 113 E 69 f 101 R 82 r 114 F 70 e 102 S 83 s 115 G 71 g 103 T 84 t 116 H 72 h 104 U 85 u 117 I 73 i 105 V 86 v 118 J 74 j 106 W 87 w 119 K 75 k 107 X 88 x 120 L 76 l 108 Y 89 y 121 M 77 m 109 Z 90 z 122 7 Mã chữ thường = Mã chữ hoa tương ứng + 32 Thường :=Chr(Ord(Hoa)+32) ‘ ’ 32 Khoảng trắng ‘0’ 48 ‘1’ 49 ‘2’ 50 ‘3’ 51 ‘4’ 52 ‘5’ 53 ‘6’ 54 ‘7’ 55 Mã của ký tự số i = số i + 48
(với 0<=i<=9) ‘8’ 56 ‘9’ 57 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. 8 A not A 1. A and B là đúng khi và chỉ khi True False False True 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 A B A and B A or B A xor B True True True True False True False False True True 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 False True False True True A khác B. False False False False False + Phép cộng (nối 2 chuỗi)
kq:=‘Borland ’ + ‘Pascal.’
Thì kq nhận giá trị: ‘Borland Pascal.’ >,<,>=,<=,=,<> ‘Anh’ < ‘an’ là đúng vì ‘A’ < ‘a’
‘Thong’ > ‘Tha’ là đúng vì ‘o’ > ‘a’ str( 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 length( Hàm cho biết độ dài của chuỗi
Giá trị trả về là số nguyên. 9 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, … 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’; 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. 10 Cú pháp 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 Ví dụ var a,b,c:real; x,y,z:integer;
hoten: string; 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. 11 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ó. var s_nameStudent: string;
r_markEnglish: real; 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) iNumber
Ho_Ten 12 writewrite: lệnh xuất ra màn hình
writeln writeln
Ví dụ: Writeln(‘Hello World!’);
Writeln(a,’+’,b,’=‘,a+b); readln readln Ví dụ: Readln(a,b,c);
Readln(z); 13 KhKháái ni CCúú phpháápp: VVíí ddụụ: x1 := (-b+sqrt(b*b-4*a*c))/(2*a);
x2 := -b/a-x1;
i := i+1; 14 15 Quy tQuy tắắc 1c 1: các phép toán nào có ưu tiên cao hơn sẽ được tính trước. Quy tQuy tắắc 2c 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 tQuy tắắc 3c 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 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:
LLệệnh đơn gi LLệệnh cnh cóó ccấấu tru trúúcc:If … then … else …;While … do …, for … nh đơn giảảnn: Read(a);Readln(b);Write, Writeln; RESET, REWRITE, ASSIGN; gọi hàm, thủ tục, … KhKhốối li lệệnhnh to/downto … do …;repeat … until …, … x:=x+2;
i:=i+1; 16 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ông d CCúú phpháápp BTLOGIC>) then if ( Lưu ý 17 Biểu thức Logic
(true/false) Câu lệnh
Khối lệnh Câu lệnh
Khối lệnh 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? 18 Công d CCúú phpháápp DiDiễễn gin giảảii CASECASE 19 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) while( repeat 20 TrongKhi( LặpLại i:=1;s:=0;
repeat i:=1;s:=0;
while (i<=ni<=n) do begin until(i>ni>n); end; {Phải khai báo nhãn} s=0;
for i:=1 to nn do
s:=s+i; goto mocmoc; 21 2. 3. Câu lệnh lặp
Bài tập 4. Truyền vào ký tự và số n. In ra n ký tự đó
In hcn các dấu * có kích thước m*n
In hcn rỗng các dấu * có kích thước m*n
In tam giác cân các dấu * có chiều cao h
In tam giác rỗng các dấu * có chiều cao h 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
Giá trị hàm kiểu thực
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ố TTậập ngu p nguồồnn) (ttậập ngu
(ttậập đp đííchch) p nguồồnn
Tập xác định, miền xác định.
Đối với tin học thì đây là thông tin đ TTậập đp đííchch Tập giá trị, miền giá trị.
Đối với tin học thì đây là thông tin đ Người sử dụng hàm
quan tâm Quy tQuy tắắc cc củủa ha hààmm thông tin đầu vào 22 Người viết hàm
quan tâ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ừ 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. 23 24 Kiểu dữ liệu của kết qủa của hàm không th không thểể là mảng (array), bản ghi (record), tập hợp (set) hay tập tin (file). Giống như hàm, thủ tục cũng là một chương trình con,
m luôn trảả
song thủ tục khác hàm ở chỗ: nếu như hhààm luôn tr
t thông qua tên hààmm ththìì ththủủ ttụục c
vvềề mmộột gt gíía tra trịị duy nh
duy nhấất thông qua tên h
llạại không tr
i không trảả vvềề mmộột gi t giáá trtrịị nnààoo. 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ố. {Các lệnh của thủ tục } 25 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 26 Thủ tục và hàm có một tên gọi chung là chương trình con TruyTruyềền tham s chương trình con, các tham số không c
khóa varvar phía trước được gọi là tham s 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. TruyTruyềền tham s 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 Không l
Ví dụ: var m,y:integer;
begin m:=4;
y:=add(m);
writeln(‘m = ‘,m,’, y = ‘,y); x=x+5;
add:=x; End; end. m: tham số thực sự
x: tham số hình thức 27 m = 4, y = 9 KKếết xut xuấất mt mààn hn hììnhnh TruyTruyềền tham s Trong khai báo ở đầu của chương trình con,
các tham số hình thức có từ khóa VarVar đứng
trước gọi là tham s 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} TruyTruyềền tham s 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 đ Ví dụ: var m,y:integer;
begin function add(var x:integer):integer;
Begin m:=4;
y:=add(m);
writeln(‘m = ‘,m,’, y = ‘,y); end. x=x+5;
add:=x; End; m: tham số thực sự
x: tham số hình thức 28 m = 9, y = 9 KKếết xut xuấất mt mààn hn hììnhnh 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 không thểể là
mảng (array), bản ghi (record), tập hợp (set)
hay tập tin (file). 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. 29 2. Ngoài khu vực đó nó
bị xem là chưa khai
báo 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ộ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ị 30 31 32Kiểu dữ liệu – Kiểu số nguyên
Kiểu dữ liệu – Kiểu số nguyên
Kiểu dữ liệu – char
KTKT
MÃMÃ
KTKT
KTKT
MÃMÃ
KTKT
MÃMÃ
MÃMÃ
Kiểu dữ liệu – char
KT
MÃ
Kiểu dữ liệu – char
Kiểu dữ liệu – boolean
Kiểu dữ liệu – string
PhPhéép top toáánn
GiGiảải thi thííchch
,Kiểu dữ liệu – string
Xem thêm phần
khai báo biến
Biến
Biến – Khai báo
var
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:
Biến – Nguyên tắc đặt tên
Biến - Lời khuyên về cách đặt tên
VVíí ddụụ
Biến – ví dụ về đặt tên biến
VVíí ddụụ vvềề tên bi
tên biếến không h
n không hợợp lp lệệ
VVíí ddụụ vvềề tên bi
tên biếến hn hợợp lp lệệ
Nhập xuất dữ liệu
writeln: lệnh xuất ra màn hình đồng thời
xuống dòng
writewrite (
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 (
Câu lệnh gán
i niệệmm: 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 năng: tính giá trị của
Phép toán
Biểu thức
Thứ tự ưu tiên
Thứ tự ưu tiên – Quy tắc
Câu lệnh, khối lệnh
Câu lệệnhnh
Câu lệnh là một tác vụ có nhiệm vụ xác định một công việc
begin và endend.
Là câu một hay nhiều câu lệnh đặt giữa begin
Ví dụ:
Begin
Begin
EndEnd;
Câu lệnh rẽ nhánh
Câu lệnh rẽ nhánh - if
Công dụụngng: 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.
//thực hiện khi
[[else
// thực hiện khi
Lưu ý: :
TrưTrướớc else không c
c else không cóó ddấấu chu chấấm phm phẩẩy (y (;;))
Câu lệnh rẽ nhánh - if
true
false
Câu lệnh rẽ nhánh - if
MMộột st sốố bbàài ti tậậpp
Câu lệnh rẽ nhánh – case … of
Câu lệnh rẽ nhánh – case … of
Công dụụngng: 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.
Hãy so sánh if với case … of …
Câu lệnh rẽ nhánh – case … of
MMộột st sốố bbàài ti tậậpp
Câu lệnh lặp – Tổng quan
nh>;
nh, khốối li lệệnh>;
c câu lệệnh>;
nh>;
FOR
nh>;
nh, khốối li lệệnh>;
c câu lệệnh>;
nh>;
HoHoặặc:c:
DO
FOR
Câu lệnh lặp – Diễn giải
c câu lệệnh>;
cho
HoHoặặc:c:
cho
Hãy phân biệt – so sánh các loại vòng lặp
nh S = 1+2+……+n+n
Hãy tHãy tíính S = 1+2+
Câu lệnh lặp – Ví dụ
s:=s+i;
i:=i+1;
i:=i+1;
s:=s+i;
i:=i+1;
i:=i+1;
i:=1;s:=0;
mocmoc:
s:=s+i;
i:=i+1;
i:=i+1;
if (i<=ni<=n) then
1.
Viết hàm, thủ tục:
1.
2.
5.
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
Tính số hạng thứ n của dãy fibonaci (f0=f1=1, fn=fn-1+fn-2)
Tìm UCLN, BCNN của hai số a,b ( Bảng ghi Phân số)
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)
Tổng các ước số dương thực sự của n
Tổng các số chẵn <=n
4.
5.
6. Rút gọn phân số
7.
8.
9.
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ố
Hàm – Tổng quan
thông tin đầầu vu vààoo
thông tin đầầu rau ra
Hàm – Ví dụ hàm có sẵn
Hàm – Ví dụ hàm có sẵn
Hàm – Hàm tự viết
Hàm – Cú pháp
function
{Các lệnh của hàm}
end;
end;
Thủ tục
Thủ tục – Cú pháp
ds tham sốố>>););
procedure
end;
end;
Hãy so sáánh cnh cúú phphááp cp củủa tha thủủ ttụục vc vàà hhààmm
Hãy so s
Thủ tục
Thủ tục, hàm - Truyền tham số
Thủ tục, hàm – Truyền tham số
n tham sốố trtrịị - khkháái ni
i niệệmm
Trong phần khai báo tham số hình thức của
không cóó từ
tham sốố trtrịị
Trong lời gọi chương trình con các tham số
trị thực sự có thể là bibiếếnn, hhằằngng hay bibiểểu u
ththứứcc.
Ví dụ:
Thủ tục, hàm – Truyền tham số
n tham sốố trtrịị - ttáác dc dụụngng
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áá trtrịị ccủủa tham s
m thay đổổi gi
a tham sốố ththựực sc sựự
function add(x:integer):integer;
Begin
Thủ tục, hàm – Truyền tham số
n tham sốố bibiếếnn – KhKháái ni
i niệệmm
tham sốố bibiếếnn.
tham sốố
không thểể
Trong lời gọi chương trình con các tham s
bibiếến thn thựựcc ssựự chchỉỉ ccóó ththểể là bibiếếnn, không th
là hhằằngng hay bibiểểu thu thứứcc.
Thủ tục, hàm – Truyền tham số
n tham sốố bibiếếnn – TTáác dc dụụngng
thay đổổi gi
tham sốố hhìình th
nh thứứcc ththìì cũng chính là thay đ
i giáá trtrịị của biến
thay đổổii biến là tham
tham
là tham s
ssốố ththựựcc.
Thủ tục, hàm – Lưu ý
Phạm vi của biến
Kiểu bảng ghi (record)
Mảng
Kiểu miền con
Tập hợp (set of)
Nhập xuất với tập tin văn bản