C¸ch viÕt vµ sö dông hµm Ch ¬ng tr×nh con Hµm Function Là chương trình con thực hiện một số thao tác nhất định, và trả về một giá trị qua tên Hµm Function Là chương trình con thực hiện
Trang 1B i 18 ài 18
Tr ƯỜNG THPT ĐỒNG HỶ NG THPT ĐỒNG HỶ NG H Ỷ
TIẾT THỨ: 43
Trang 2Em h·y cho biÕt cÊu tróc cña thñ tôc?
Thñ tôc (Procedure)
cã cÊu tróc nh sau:
Procedure <tªn thñ tôc> [(<ds tham sè>)];
[< PhÇn khai b¸o >]
Begin
[<D·y c¸c lÖnh>]
End;
Trang 32 C¸ch viÕt vµ sö dông hµm
Ch ¬ng tr×nh con
Hµm (Function)
Là chương trình con thực hiện một số thao tác nhất định, và trả
về một giá trị qua tên
Hµm (Function)
Là chương trình con thực hiện một số thao tác nhất định, và trả
về một giá trị qua tên của nó.
Thñ tôc (Procedure)
Là chương trình con
thực hiện một số thao
tác nhất định, và không
trả về giá trị nào qua
Thñ tôc (Procedure)
Là chương trình con
thực hiện một số thao
tác nhất định, và không
trả về giá trị nào qua
tên của nó.
Trang 4a.Cấu trúc Hàm
Function <Tªn hµm> [(<ds tham sè>)] :< kiÓu d÷
liÖu> ;
[< PhÇn khai b¸o >]
Begin
[<D·y c¸c lÖnh>]
<tªn hµm>:=<biÓu thøc>;
End;
Procedure <tªn thñ tôc> [(<ds tham sè>)];
[< PhÇn khai b¸o >]
Begin
[<D·y c¸c lÖnh>]
End;
Trang 5b VÝ dô
VÝ dô: nh p ập 6/10 => ra 3/5
* INPUT : NhËp ph©n sè x/y;
•OUTPUT : Ph©n sè tèi gi¶n c/d (tuso/mauso)
- Trong ã: đã: tuso = tuso/ƯCLN(x,y);
mauso = mauso/ƯCLN(x,y);
Viết chương trình con thực hiện tìm ƯCLN(x,y) và gọi nó khi tính tuso,
Trang 6Program toigian_phanso;
Var tuso, mauso, a: integer;
Function UCLN (x,y:integer): Integer ;
Var sodu:Integer;
Begin
while y<>0 do begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:=x;
end;
BEGIN
Write(‘Nhap tu so, mau so:’); readln(tuso,mauso);
a:= UCLN(tuso,mauso);
If a>1 then
begin
tuso:=tuso div a;
mauso:=mauso div a;
end;
Writeln(tuso:4,mauso:4); readln;
END
Function <Tªn hµm> [(<ds tham sè>)] :< kiÓu d÷ liÖu> ;
[< PhÇn khai b¸o >]
Begin
[<D·y c¸c lÖnh>]
<tªn hµm>:=<biÓu thøc>;
End;
Trang 7• Các biến:
- tuso, mauso, a là biến toàn cục
- sodu là biến cục bộ
Program toigian_phanso;
Var tuso, mauso, a: integer;
Function UCLN (x,y:integer): Integer ;
Var sodu:Integer;
Begin
while y<>0 do begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:=x;
end;
BEGIN
Write(‘Nhap tu so, mau so:’); readln(tuso,mauso);
a:= UCLN(tuso,mauso);
If a>1 then
begin
tuso:=tuso div a;
mauso:=mauso div a;
end;
Writeln(tuso:4,mauso:4); readln;
• Việc sử dụng hàm:
- Hoàn toàn tương tự như việc
sử dụng hàm chuẩn
- Khi viết lệnh gọi gồm tên hàm
và tham số thực sự tương ứng với tham số hình thức
Trang 8
Ví dụ 2: Tìm số nhỏ nhất trong 3 số a,b,c
VÝ dô: nh p 3 2 6 ập => min 2
* INPUT : NhËp 3 sè a,b,c;
•OUTPUT : Sè nhá nhÊt trong 3 sè
Viết chương trình thực hiện tìm số nhỏ nhất trong 3 số nhập từ bàn phím Sử dụng hàm tìm số nhỏ nhất trong 2 số
Trang 9Program min3so;
Var a,b,c:real;
Function min(a,b:real):real;
begin
if a<b then
min:=a
else
min:=b;
end;
BEGIN
write(‘Nhap vao 3 so a,b,c’);
readln(a,b,c);
Writeln(‘So nho nhat trong 3 so la’, min(min(a,b),c) );
Readln;
END.
Function <Tªn hµm> [(<ds tham sè>)] :< kiÓu d÷ liÖu> ;
[< PhÇn khai b¸o >]
Begin
[<D·y c¸c lÖnh>]
<tªn hµm>:=<biÓu thøc>;
End;
- Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng và
Trang 10GV : Đinh Nguyên Thanh Tú (st) – CENTEA Data chưa rõ nguồn gốc
H·y nhí!
CÊu tróc cña thñ tôc vµ hµm
C¸ch viÕt vµ sö dông thñ tôc,
hµm trong ch ¬ng tr×nh con
Ph©n biÖt
o Tham trÞ, tham biÕn
o BiÕn toµn côc, biÕn côc bé
o Tham sè thùc sù, tham sè
h×nh thøc