-Thủ tục được 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 của chương trình chính... CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC Ví dụ 1:
Trang 2Vẽ hình chữ nhật có dạng sau:
* * * * * * *
* *
* * * * * * *
Xét ví dụ:
1 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
Để vẽ Hình chữ nhật trên ta dùng 3 câu lệnh
Writeln(‘ * * * * * * *’);
Writeln(‘ * *’);
Writeln(‘ * * * * * * *’);
Vậy để vẽ 3 hình chữ nhật như trên ta dùng mấy câu lệnh?
Để khắc phục điều này ta đưa 3 câu lệnh trên vào 1 thủ tục có tên Ve_Hcn;
Trang 3Program VD_thutuc1;
Procedure Ve_Hcn;
begin
Writeln(‘ * * * * * * *’);
Writeln(‘ * *’);
Writeln(‘ * * * * * * *’);
end;
BEGIN
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
writeln; writeln;
END.
Xét ví dụ:
1 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
Procedure Ve_Hcn;
begin
Writeln(‘ * * * * * * *’);
Writeln(‘ * *’);
Writeln(‘ * * * * * * *’);
end;
Em có nhận xét gì về cấu trúc của thủ tục? So sánh với cấu trúc chương trình chính?
Trang 4* Cấu trúc chung 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;
a Cấu trúc thủ tục
1 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
* Sử dụng thủ tục
<Tên_thủ_tục>[<DS tham số thực sự>];
Trang 5
1 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
Program VD_thutuc1;
Procedure Ve_Hcn;
begin
Writeln(‘ * * * * * * *’);
Writeln(‘ * *’);
Writeln(‘ * * * * * * *’);
end;
BEGIN
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
writeln; writeln;
END.
Hãy xác định vị trí của thủ tục và lời gọi sử dụng 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 6
b Ví dụ về thủ tục
1 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
Ví dụ 1: Chương trình vẽ hình chữ nhật bằng dấu * có
các kích thước khác nhau
Cần đưa vào phần đầu thủ tục
2 tham số cho dữ liệu vào là Chdai và chrong
Quan sát sách giáo khoa trang
98, chương trình mô tả thủ tục Ve_Hcn
Trang 7PHÂ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 (chdai, chrong:
integer) để 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 nhau.
Ví dụ: Ve_Hcn(25,20); Ve_Hcn(5,10); Ve_Hcn(a,b);
Trang 8PHÂ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 9VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
Program 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ộ
Biến cục bộ
Tham số thực sự (tham trị)
Tham số thực sự (tham trị)
Tham số hình thức Biến toàn cục
Biến toàn cục
Tham số thực sự (tham biến)
Trang 10MỘT SỐ KHÁI NIỆM
- Tham số biến ( tham biến): Trong lời gọi thủ tục,
các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra
- Tham số giá trị ( tham trị): Trong lời gọi thủ tục,
các tham số hình thức được thay bằng các tham số thực sự tương ứng là các giá trị cụ thể
Trang 11
b Ví dụ về thủ tục
1 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
Ví dụ 2: Hoán đổi giá trị của 2 biến x, y được nhập vào
từ bàn phím
Quan sát sách giáo khoa trang
99, chương trình mô tả thủ tục Hoan_doi
Trang 12VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
Program VD_thambien1;
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.
Tham số thực sự (tham biến)
Tham số hình
thức
Tham số hình
thức
Kết quả trên màn hình
5 10
10 5
x, y là tham số giá trị hay tham số biến?
Trang 13VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
Program VD_thambien2;
Uses crt;
var a,b: integer;
Procedure Hoan_doi (x: integer; var 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.
Tham số thực sự (tham biến)
Tham số hình
thức
Tham số hình
thức
Kết quả trên màn hình
5 10
5 5
Trang 14NHẬN XÉT
Tham số giá trị : Giá trị không thay đổi khi ra khỏi
chương con
Tham số biến : Giá trị thay đổi khi ra khỏi chương
con
Trang 151 CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC
Câu hỏi: So sánh tham trị và tham biến ?
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 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