-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[r]
(1)BÀI CŨ
Trong ngôn ngữ lập trình Pascal, chương trình gồm loại ? Có tên gọi ? Hãy nêu cấu trúc chương trình con?
Câu 1
Trả lời:
Chương trình gồm có hai loại:
Hàm (Function) Thủ tục (Procedure) Cấu trúc chương trình gồm:
<Phần đầu>
(2)BÀI CŨ
Hãy cho biết chương trình sau sử dụng chương trình thủ tục hay hàm? Đó đoạn
(3)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);
(4)(5)PROCEDURE <tên_thủ_tục>[<(DS tham số hình thức)>];
[<Phần khai báo>]
BEGIN
[<dãy lệnh >]
END;
1 Cách viết sử dụng thủ tục a Cấu trúc thủ tục:
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
- Phần đầu: gồm Procedure, tên thủ tục tham số hình thức. - Phần khai báo: hằng, kiểu, biến chương trình
(6)VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
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í thủ tục lời gọi thủ tục
trong chương trình?
-Thủ tục khai báo <phần khai báo> chương trình chính, sau khai báo biến (với từ khóa Var)
(7)VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
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 liệu • Trong lệnh gọi thủ tục: tham số thực tên biến chứa liệu
• Giá trị bị thay đổi sau thực xong thủ tục
Tham số giá trị • Khai báo:
<DS tham số hình thức>: <kiểu liệu>
• Giá trị khơng thay đổi thực xong thủ tục
(8)VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
d Các Ví dụ:
* * * * * * * * * * * *
VD1: Viết Ct vẽ hình chữ nhật có dạng: PROGRAM VIDU1;
Procedure Ve_HCN; BEGIN
Writeln(‘* * * * *’); Writeln(‘* *’); Writeln(‘* * * * *’); END;
BEGIN {Chuong trinh chinh}
For i:=1 to Ve_HCN; Readln;
END.
(9)VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dài chiều rộng thay đổi được.
Cho biết phần đầu thủ tục Ve_HCN thay đổi nào?
Ve_HCN ( cdai, crong: integer);
(10)VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
Program VD2;
Var a,b,i :integer;
Procedure Ve_HCN(cdai, crong :integer);
Var i,j: integer; Begin
for i:= to cdai Write(‘*’); writeln;
for j:= to crong-2 begin
Write(‘*’);
for i:= to cdai-2 Write(‘ ‘); writeln(‘*’);
End;
for i:= to cdai Write(‘*’); Writeln; End;
VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dà chiều rộng thay đổi được.
Begin
Ve_HCN(25,10); Ve_HCN(5,10); readln;
a:=2; b:=4;
(11)VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
Program VD_thambien1;
Var a,b, :integer;
Procedure Hoan_doi (Var x,y :integer);
Var TG: integer; Begin
TG: = x; x: = y; y: = TG; End;
Begin
a:=5; b:=10;
Writeln(a:6, b:6); Hoan_doi(a,b); Writeln( a:6, b:6); End.
VD3: Phân biệt tham biến, tham tri.
Cho biết kết hình
khi thực chương trình?
(12)VÍ 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); End.
VD3: Phân biệt tham biến, tham tri.
Cho biết kết hình
khi thực chương trình?
(13)Câu 1: Phát biểu sau sai:
A Danh sách tham số hình thức có không B Kết thúc thủ tục END;
C Thủ tục viết thân chương trình
D Tham số hình thức dùng khai báo, tham số thực dùng gọi thủ tục
Câu : Giả sử ta có dịng đầu thủ tục là
procedure P (Var A, B: Integer; C:integer); Thì tham số hình thức hiểu sau:
(14)Câu 3: Phần khai báo đầu thủ tục sau đúng:
A Type mang=array[1 10] of Byte;
Procedure nhap(var a: mang;);
B Type mang: array[1 10] of Byte;
Procedure nhap(var a: mang);
C Type mang=array[1 10] of Byte;
Procedure nhap(var a: mang);
D Procedure nhap(var a: array[1 10] of Byte); Câu 4: Cho a: real; b: byte; dòng đầu thủ tục Procedure tong(n:byte; y: real);
Lời gọi sau đúng:
(15)Câu 5: Cho biến A,B: byte; C:real;
Trong đó: A tham trị, B C tham biến. Khai báo dòng đầu thủ tục sau đúng: A Procedure Thamso(Var A:byte; B:Byte; C:real); B Procedure Thamso(A:byte; Var B:Byte; C:real);
C Procedure Thamso(A:byte; Var B:Byte; Var C:real); D Procedure Thamso(A,B:Byte; Var C:real);
Câu 6: Cho biến x,z: byte; y:real; Dòng đầu thủ tục sau:
Procedure tang(a:byte; var b:byte;); Lời gọi thủ tục sau sai?
(16)Câu 7: Cho ch ơng trình sau:
Var x,y:byte;
Procedure Hdoi(a:byte;var b:byte); Var tg:byte;
Begin
Tg:=a; a:=b; b:=tg; End;
Begin
x:=1; y:=2; Hdoi(x,y);
Writeln(‘hoan doi la: ’,x,y); Readln;
End
A hoan doi la:12 B hoan doi la:11 C hoan doi la:22 D hoan doi la:21
Kết xuất hình lµ:
Lời gọi thủ tục sau đúng:
A Hoandoi(x,y); B Hdoi(x);
(17)VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
1 Viết thủ tục tính chu vi diện tích hình chữ nhật Sau thực lời gọi thủ tục chương trình với kích thước khác hình chữ nhật
(18)