Muoán khai baùo x laø tham soá giaù trò, y vaø z laø tham soá bieán (x, y, z thuoäc kieåu integer) trong thuû tuïc coù teân laø “CTC” thì khai baùo naøo sau ñaây laø ñuùng. Procedure [r]
(1)BỘ MÔN TIN HỌC 11
Người thực hiện: Châu Quốc Phong Giáo viên trường THPT Trà Cú
Tập thể lớp 11A1 - Kính chào quý Thầy
Tập thể lớp 11A1 - Kính chào quý Thầy cô
(2)(3)Chương 6: CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC Chương trình
là ?
Phân loại chương trình ?
Điểm khác bản hàm thủ
(4)• 1 Cách viết sử dụng thủ tục
• a Cấu trúc thủ tục
• b Ví dụ thủ tục
(5)• Xét ví dụ vẽ hình chữ nhật có dạng sau: • * * * * * * *
• * * • * * * * * * *
•1 Cách viết sử dụng thủ tục
Để vẽ hình chữ nhật trên, ta cần dùng câu
lệnh nào?
(6)procedure Ve_Hcn;
• begin
writeln(‘* * * * * * *’); writeln(‘* *’); writeln(‘* * * * * * *’);
• end;
•1 Cách viết sử dụng thủ tục
{bắt đầu thủ tục}
(7)procedure <tên thủ tục> [(<danh sách tham số>)]; • [<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:
procedure
(8)program VD_thutuc1; procedure Ve_Hcn; begin
writeln('* * * * * * *'); writeln('* *');
writeln('* * * * * * *'); end;
begin
Ve_Hcn;
writeln;writeln; Ve_Hcn;
writeln;writeln; Ve_Hcn;
readln end
•1 Cách viết sử dụng thủ tục
Thủ tục Ve_Hcn
(chương trình Ve_Hcn)
(9)program VD_thutuc1; procedure Ve_Hcn; begin
writeln('* * * * * * *'); writeln('* *'); writeln('* * * * * * *'); end; Begin Ve_Hcn; writeln;writeln; Ve_Hcn; writeln;writeln; Ve_Hcn; readln end
Giả sử ta cần vẽ nhiều hình chữ nhật với kích thước khác (25x10; 5x10; 4x2), thủ tục
có thực khơng ?
Để giải toán trên, thủ tục Ve_Hcn
viết lại ?
(10)• Ví dụ 1: Chương trình vẽ hình chữ nhật có kích thước khác cách dùng thủ tục Ve_Hcn với tham số chdai, chrong Giá trị tham số chdai, chrong ngun (integer).
•b Ví dụ thủ tục
•1 Cách viết sử dụng thủ tục
Khi phần đầu thủ tục viết sau: procedure Ve_hcn(chdai, chrong: integer);
Khi phần đầu thủ tục
(11)1 procedure Ve_Hcn(chdai, chrong: integer);
2 var i, j: integer;
3 begin
4 for i:=1 to chdai write('*');
5 writeln;
6 for j:=1 to chrong-2 begin
write('*');
for i:=1 to chdai-2 write(' '); writeln('*');
end;
7 for i:=1 to chdai write('*');
8 writeln;
9 end;
•b Ví dụ thủ tục
•1 Cách viết sử dụng thủ tục
Tham số hình thức Vẽ cạnh
hình chữ nhật
Vẽ hai cạnh bên
(12)begin clrscr; Ve_Hcn(25,10); writeln;writeln; Ve_Hcn(5,10); readln; clrscr; a:=4; b:=2; for i:=1 to begin Ve_Hcn(a,b); readln; clrscr; a:=a*2; b:=b*2; end; readln;
* Trong lệnh gọi thủ tục, tham số hình thức thay tham số thực tương ứng các
giá trị cụ thể gọi tham số
giá trị (tham trị)
•Câu lệnh gọi thủ tục có dạng:
•<tên thủ tục>[(các tham số thực sự)];
•b Ví dụ thủ tục
(13)•b Ví dụ thủ tục
•1 Cách viết sử dụng thủ tục
• Ví dụ 2: Chương trình hốn đổi giá trị hai biến, cách dùng thủ tục Hoan_doi.
x y
TG
TG
TG
x y
TG
x y
TG := x (1)
x := y (2) y := TG (3)
•b Ví dụ thủ tục
(14)1 program VD_thambien1;
2 uses crt;
3 var a, b: integer;
4 procedure Hoan_doi(var x,y: integer);
5 var TG: integer;
6 begin
TG:= x; x:= y; y:= TG; end;
7 begin
8 clrscr;
9 a:=5; b:=10;
10 writeln(a:6, b:6);
11 Hoan_doi(a,b);
12 writeln(a:6, b:6);
•b Ví dụ thủ tục
•1 Cách viết sử dụng thủ tục
Tham số hình thức các tham số biến
(15)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
•Trong lệnh gọi thủ tục, tham số hình thức thay tham số thực tương ứng tên các biến
chứa liệu gọi
các tham số biến (tham biến)
•Để phân biệt tham biến tham trị, Pascal sử dụng từ khóa var để khai báo cho tham số biến
•b Ví dụ thủ tục
(16)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);
•b Ví dụ thủ tục
•1 Cách viết sử dụng thủ tục
Khác khai báo tham số hình thức
Khác kết sau khi thực thủ tục
Điểm khác giữa tham trị
tham bieán ?
•* Tham số biến dùng để ghi lại •dữ liệu kết việc thực hiện •thủ tục.
•* Tham số giá trị để đưa liệu •vào cho thủ tục bắt đầu thực hiện
•b Ví dụ thủ tục
(17)1 program VD_thambien2;
2 uses crt;
3 var a, b: integer;
4 procedure Hoan_doi(x: integer; var y: integer);
5 var TG: integer;
6 begin
TG:= x; x:= y; y:= TG; end;
7 begin
8 clrscr;
9 a:=5; b:=10;
10 writeln(a:6, b:6);
11 Hoan_doi(a,b);
12 writeln(a:6, b:6);
13 readln;
14.end
•b Ví dụ thủ tục
•1 Cách viết sử dụng thủ tục
procedure Hoan_doi(var x: integer; y: integer);
Kết nhận (trên màn hình)
(18)* Chú ý:
• - Khi khai báo tham số hình thức, có kiểu khác tham số cách
bằng dấu chấm phẩy, có kiểu cách nhau dấu phẩy.
• Ví dụ:
• procedure CTC(x, y, z: integer; r: real);
•b Ví dụ thủ tục
•1 Cách viết sử dụng thủ tục
•b Ví dụ thủ tục
(19)* Chú ý:
• - Khi khai báo liệu cho tham số hình thức chỉ dùng tên kiểu Tên kiểu tên chuẩn hoặc tên người lập trình đặt.
• Ví duï:
Khai báo hợp lệ:
procedure Alpha(N: integer; var s: string);
•b Ví dụ thủ tục
•1 Cách viết sử dụng thủ tục
•b Ví dụ thủ tục
(20)-Khai báo không hợp lệ:
procedure Delta(M: array[1 10] of byte; var X: string[25]);
-Khai báo hợp lệ:
type mang = array[1 10] of byte; xau = string[25]; procedure Delta(M: mang; var X: xau);
•b Ví dụ thủ tục
(21)1 Từ khóa để khai báo thủ tục là:
A Program B Procedure C Function D Processor
2 Muốn khai báo x, y tham số giá trị (x, y thuộc kiểu integer) thủ tục có tên “ABC” khai báo sau đúng?
A Procedure ABC(x, y: integer);
B Procedure ABC(var x, y: integer);
C Procedure ABC(x: integer; var y: integer); D Procedure ABC(var x: integer; y: integer);
(22)3 Muốn khai báo x tham số giá trị, y z tham số biến (x, y, z thuộc kiểu integer) thủ tục có tên “CTC” khai báo sau đúng?
A Procedure CTC(x, y, z: integer);
B Procedure CTC(var x, y, z: integer);
C Procedure CTC(var x:integer; y, z: integer); D Procedure CTC(x: integer; var y, z: integer);
(23)4 Cho chương trình sau:
var a, b, c: integer;
procedure Hoan_doi(var a, b: integer); var TG: integer;
begin TG:= a; a:= b; b:= TG; end; begin clrscr;
a:= 10; b:= 11; c:= 12; Hoan_doi(b,c);
Hoan_doi(a,b); Hoan_doi(b,c);
writeln(a, ‘ ’, b ‘ ’, c);
Kết nhận (trên hình) sau thực chương trình là:
A 10 11 12 B 11 10 12 C 12 11 10 D 12 10 11
(24)Tiết học đến hết.
• Xin chúc quý Thầy (Cô)
cùng em học sinh
• Vui - Khoẻ Thành công.