VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON Tiết 2 BÀI 18... Trả lời câu 2: * Phân biệt tham trị và tham biến: Tham trị Tham biến - Khi ra khỏi thủ tục thì giá trị không thay đổi..
Trang 1VÍ DỤ VỀ CÁCH VIẾT VÀ
SỬ DỤNG CHƯƠNG
TRÌNH CON
(Tiết 2) BÀI 18
Trang 2C©u 1) Tr×nh bµy cÊu tróc chung cña thñ tôc? H·y chØ
ra c¸c thµnh phÇn cña chóng trong thñ tôc sau:
KiÓm tra bµi cò
Procedure Hoan_doi(var x, y: integer);
Var t: integer;
Begin
t := x;
x := y;
y := t;
End;
Trang 3Tr¶ lêi c©u 1:
Cấu trúc của thủ tục:
Procedure <Tên thủ tục>[(<danh sách tham số>)];
[<phần khai báo>]
Begin
[<dãy các lệnh>]
end;
phần đầu
Procedure Hoan_doi(x:integer,var y:integer);
Var t: integer;
Begin
t := x;
x := y;
y := t;
End;
phần thân
phần đầu phần khai báo
phần thân
Trang 4C©u 2) Ph©n biÖt tham sè gi¸ trÞ (tham trÞ) vµ tham sè
biÕn (tham biÕn) trong CTC? Cho biÕt kÕt qu¶ cña ch
¬ng tr×nh sau:
Program Vidu;
Var a, b: integer;
Procedure Hoan_doi(x: integer, var y: integer);
Var t: integer;
Begin
t := x;
x := y;
y := t;
End;
Begin
a:=5;
b:=7;
Hoan_doi (a, b);
Write(a, ’ ‘ , b);
End.
Trả lời câu 2:
* Phân biệt tham trị và tham biến:
Tham trị Tham biến
- Khi ra khỏi thủ tục thì giá trị không thay
đổi.
- Khi khai báo không
có từ khóa Var
- Khi ra khỏi thủ tục thì giá trị sẽ bị thay đổi.
- - Khi khai báo có từ
khóa Var
Tham trị Tham biến
* Kết quả chương trình in ra màn hình:
5 5
Trang 5Bµi 18 (TIÕT 41)
VÝ Dô VÒ C¸CH VIÕT Vµ Sö DôNG
CH¦¥NG TR×NH CON
Trang 61) Cách viết và sử dụng thủ tục:
2) Cách viết và sử dụng hàm:
* Điểm khác nhau cơ bản giữa thủ tục và hàm là việc
thực hiện hàm luôn trả về giá trị kết quả thuộc kiểu dữ liệu xác định và giá trị đó được gán cho tên hàm.
* Cấu trúc của hàm:
Function <tên hàm>[ (<danh sách tham số>) ] : <kiểu dữ liệu trả về>;
[ <phần khai báo> ]
Begin
[ <Dãy các lệnh> ]
<tên hàm> := <biểu thức>;
End;
Trang 7So s¸nh cÊu tróc gi÷a Thñ tôc vµ Hµm
Hµm Thñ tôc
Procedure < tªn th t c > ủ ụ
Procedure < tªn th t c > ủ ụ
[ (<DS tham s >) ] ; ố
[ (<DS tham s >) ] ; ố
Function <tªn hµm>[ (< DS tham
s > ) ] ố
s > ) ] ố : <kiÓu d÷ liÖu tr¶ vÒ> ; [ < phÇn khai b¸o > ] [ < phÇn khai b¸o > ]
Begin
[ < d·y lÖnh > ]
End;
Begin
[ <d·y lÖnh> ] < tªn hµm > := < biÓu thøc > ; End;
Trang 8 Phân tích:
Muốn rút gọn phân số a/b, thực hiện:
- Tử số a chia nguyên cho USCLN ( a, b )
- Mẫu số b chia nguyên cho USCLN ( a, b )
- In Phân số ra màn hình
Ví dụ 1: Xét chương trình thực hiện việc rút gọn một phân số, trong đó có sử dụng hàm
tính ước số chung lớn nhất (UCLN) của hai số nguyên.
Giải thuật tìm USCLN của hai số nguyên a và b:
B1) Lặp khi b <> 0
B2) Tìm số dư của hai số a và b
B3) Gán giá trị của b cho a
B4) Gán số dư cho b
B5) Kết thúc vòng lặp
B6) Gán giá trị a (UCLN) cho tên hàm
B7) Kết thúc hàm
Phần đầu của hàm:
Function UCLN(a, b: integer) : integer;
Trang 9Hàm tính USCLN của
2 số nguyên a và b
Lệnh gọi hàm Biến toàn cục Biến cục bộ
Trang 10 Sử dụng hàm:
-Tương tự như việc sử dụng thủ tục (Procedure), tức là bao gồm: tên hàm và các tham số thực sự tương ứng với các tham số hình thức.
- Lệnh gọi hàm có thể tham gia vào biểu thức như
toán hạng và thậm chí là tham số của lời gọi hàm, thủ tục khác…
VD: Trong vớ dụ trờn, ta cú thể gọi
hàm như sau:
S := 6 + UCLN (tu, mau) * 5;
Trang 11 Giải thuật tìm số nhỏ nhất trong hai số a và b:
- Nếu a > b thì số nhỏ nhất là b
- Ngược lại (a<=b) thì số nhỏ nhất là a
Ví dụ 2: Tìm số nhỏ nhất trong ba số nguyên
nhập từ bàn phím, trong đó có sử dụng hàm tìm
số nhỏ nhất trong hai số.
Trang 13KiÕn Thøc CÇn N¾m
thñ tôc.
N¾m mét sè gi¶i thuËt: t×m USCLN cña 2 N¾m mét sè gi¶i
sè, t×m gi¸ trÞ nhá nhÊt cña hai sè…
Trang 14Dặn dò
Các em về nhà học bài và làm trước bài thực hành số 6 trong Sách giáo khoa