CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC - Phần đầu: gồm Procedure, tên thủ tục và các tham số hình thức.. Sử dụng thủ tục: Lệnh gọi: [Danh sách tham số thực sự];.. -Thủ tục được khai báo ở của chư
Trang 1BÀI CŨ
Hãy cho biết chương trình sau
sử dụng chương trình con là thủ tục hay hàm? Đó là đoạn nào? Đâu là phần đầu, phần
khai báo, phần thân?
Trang 2Quan sát chương trình
Program Tim_Max;
Var a,b,c,d,e,ln1,ln2,ln3,ln4:integer;
Procedure sln(a,b:integer;var max:integer); Begin
If a>b then max:=a else max:=b;
End;
BEGIN
Write('nhap a,b,c,d,e:'); Readln(a,b,c,d,e); sln(a,b,ln1);
sln(ln1,c,ln2);
sln(ln2,d,ln3);
sln(ln3,e,ln4);
Write('so lon nhat la:',ln4);
Readln;
END.
Trang 4PROCEDURE <tên_thủ_tục>[<DS các tham số hình thức>];
[<Phần khai báo>]
BEGIN
[<dãy các lệnh >]
END;
a Cấu trúc thủ tục:
1 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
- Phần đầu: gồm Procedure, tên thủ tục và các tham số hình thức.
- Phần khai báo: các hằng, kiểu, biến và cũng có thể các chương trình con.
- Phần thân: dãy các lệnh viết giữa Begin và end;
Trang 51 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
b Sử dụng thủ tục:
Lệnh gọi:
<TÊN_THỦ_TỤC>[(Danh sách tham số thực sự)];.
Từ chương trình trên, hãy xác định vị trí của thủ tục và lời gọi thủ tục trong chương
trình?
-Thủ tục được khai báo ở <phần khai báo> của chương trình chính, sau khai báo biến (với từ khóa Var)
-Lời gọi thủ tục được thực hiện trong <phần thân> của chương trình chính
Trang 61 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
c Tham số hình thức:
* Ví dụ:
Tham số biến
Khai báo:
VAR
DS tham số hình thức:kiểu dữ liệu
• Trong lệnh gọi thủ tục: các tham số thực
sự là tên các biến chứa dữ liệu ra
• Giá trị có thể bị thay đổi sau khi thực hiện xong thủ tục
Tham số giá trị
• Khai báo:
<DS tham số hình thức>: <kiểu dữ liệu>
• Giá trị không thay đổi khi thực
hiện xong thủ tục
• Trong lệnh gọi thủ tục: các tham số
thực sự là các giá trị cụ thể
Trang 72 VÍ DỤ VỀ THỦ TỤC
Lập chương trình vẽ các hình chữ nhật bằng dấu * có kích thước
khác nhau
Trang 8PHÂN TÍCH BÀI TOÁN
Để viết chương trình này ta dùng những
chương trình con nào?
Trong chương trình chính ta dùng những
lời gọi nào?
Dùng chương trình con có thủ tục Ve_HCN(dai,rong) để
vẽ một hình chữ nhật
Trong chương trình chính, dùng lời gọi thủ tục và truyền các tham số với giá trị khác nhau để vẽ các hình chữ nhật khác
Ví dụ: Ve_HCN(25,20); Ve_HCN(3,7)
Trang 9PHÂN TÍCH BÀI TOÁN
***************************
*******
* *
* *
* *
***************************
*******
dài
rộng
Vẽ cạnh trên của HCN
Vẽ hai cạnh bên
Vẽ cạnh dưới
For i:=1 to chdai do write (‘*’);
Writeln;
For j:=1 to chrong - 2 do
Begin
Write(‘*’);
For i:=1 to chdai - 2 do Write(‘ ‘);
Writeln(‘*’)
end;
For i:=1 to chdai do write(‘*’);
Writeln;
Trang 10VÍ DỤ VỀ THAM TRỊ
Quan sát sách giáo khoa trang 98, chương trình mô tả thủ tục Ve_Hcn
Trang 11VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
Trang 12Program vidu;
Uses crt;
var a,b: byte;
Procedure Ve_HCN( chdai,chrong:integer);
Var i,j: integer;
Begin For i:=1 to chdai do write( * );‘ ’
Writeln;
For j:=1 to chrong-2 do
begin write( * );‘ ’
for i:=1 to chdai-2 do write( );‘ ‘
writeln( * );‘ ’
end;
For i:=1 to chdai Do write( * );‘ ’
writeln;
end;
Begin
CLRSCR;
Ve_HCN(25,10);
Writeln; a:=5 ; b:=10;
Ve_HCN(a,b);
readln;
End
Biến cục bộ
Tham số thực sự (tham trị)
Tham số hình thức Biến toàn cục
Trang 13VÍ DỤ VỀ THAM BIẾN
Quan sát sách giáo khoa trang 99, chương trình VD_thambien1
Trang 14VÍ DỤ VỀ THAM BIẾN
Trang 15VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
Program VD;
Uses crt;
var a,b: integer;
Procedure Hoan_doi(Var x,y:integer);
Var TG: integer;
Begin
TG:= x;
x:= y;
y:=TG;
end;
Begin
Clrscr;
a:= 5 ; b:= 10;
Writeln( a:6 , b:6);
Hoan_doi(a,b);
Writeln( a:6 , b:6);
readln;
End.
Biến cục bộ
Tham số thực sự (tham biến)
Tham số hình thức
Tham số hình thức
Biến toàn cục
Trang 16GHI NHỚ
Cấu trúc của thủ tục
Tham số giá trị
Tham số biến
Chuẩn bị phần tiếp theo của bài học “cách
viết và sử dụng hàm”.
Trang 17VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON