Bài 18tiết 1
Chia sẻ bởi Trần Thị Ngọc Hiền |
Ngày 25/04/2019 |
82
Chia sẻ tài liệu: bài 18tiết 1 thuộc Tin học 11
Nội dung tài liệu:
KIỂM TRA BÀI CŨ
Câu 1: Trong ngôn ngữ lập trình Pascal, chương trình con gồm mấy loại ? Có tên gọi là gì ? Hãy nêu cấu trúc của chương trình con?
Trả lời:
Chương trình con gồm có hai loại:
Hàm (Function) và Thủ tục (Procedure)
Cấu trúc của chương trình con gồm:
[]
KIỂM TRA BÀ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?
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.
Thủ tục
Phần đầu
BÀI 18
CÁCH VIẾT VÀ SỬ DỤNG
CHƯƠNG TRÌNH CON
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
a. Cấu trúc của thủ tục
PROCEDURE[()];
[]
BEGIN
[]
END;
- 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ể xác định các chương trình con khác.
- Phần thân: dãy các lệnh viết giữa Begin và end;
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
b. Sử dụng thủ tục
Lệnh gọi:
[<(Danh sách tham số thực sự)>];.
Quan sát chương trình, 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?
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.
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
c. Tham số hình thức
Tham số biến
Tham số giá trị
Khai báo:
:
Khai báo:
VAR
:
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.
Trong lệnh gọi thủ tục: các tham số thực sự là các giá trị cụ thể (hằng, biến, biểu thức…)
Giá trị của biến có thể thay đổi trong quá trình thực hiện chương trình.
Giá trị của biến không thay đổi trong quá trình thực hiện chương trình
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
c. Tham số hình thức
Tham số biến
Tham số giá trị
Ví dụ:
Procedure Hoan_doi(var x,y: integer);
Procedure Ve_Hcn(chdai, chrong: integer);
Procedure HoanDoi ( Var a, b: integer);
Var Tam:integer;
Begin
Tam:=a;
a:=b;
b:=Tam;
End;
a:integer; Var b:integer
Cho a=5, b=10 sau khi thực hiện thủ tục hoán đổi thì a= ?, b= ?, Vì sao?
Var a:integer; b:integer
Cho a=5, b=10 sau khi thực hiện thủ tục hoán đổi thì a= ?, b= ?, Vì sao?
Vì a là tham trị nên không đổi, b tham biến vậy a=5, b=5
Vì a là tham biến, b tham trị nên không đổi vậy a=10, b=10
Vì a,b là tham biến nên cho phép thay đổi nên a=10, b=5
Cho a=5, b=10 sau khi thực hiện thủ tục hoán đổi thì a= ?, b= ?, Vì sao?
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
d. Một số ví dụ:
PROGRAM VIDU1;
Procedure Ve_HCN;
BEGIN
Writeln(‘* * * * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * * * *’);
END;
BEGIN {Chuong trinh chinh}
Ve_HCN;
Writeln; writeln;
Ve_HCN;
Readln
END.
Ví dụ 1:
BEGIN {Chuong trinh chinh}
For i:=1 to 5 do Ve_HCN;
Readln;
END.
d. Một số ví dụ:
Ví dụ 2: thủ tục vẽ hình chữ nhật với chiều dài và chiều rộng thay đổi được.
Program VD2;
Var a,b,i :integer;
Procedure Ve_HCN(cdai, crong :integer);
Var i,j: integer;
Begin
for i:= 1 to cdai do Write(‘*’);
writeln;
for j:= 1 to crong-2 do
begin
Write(‘*’);
for i:= 1 to cdai-2 do Write(‘ ‘);
writeln(‘*’);
End;
for i:= 1 to cdai do Write(‘*’);
Writeln;
End;
Begin
Ve_HCN(25,10);
Ve_HCN(5,10);
readln;
a:=2; b:=4;
For i:= 1 to 4 do
Begin
Ve_HCN(a,b);
readln;
a:=a*2; b:=b*2;
End; readln;
End.
d. Một số ví dụ:
Ví dụ 3: Phân biệt tham biến và tham trị
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.
d. Một số ví dụ:
Ví dụ 3: Phân biệt tham biến và tham trị
Program VD_thambien2;
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.
Câu 1: Phát biểu nào sau đây sai:
A. Danh sách tham số hình thức có thể có hoặc không.
B. Kết thúc thủ tục END;
C. Thủ tục được viết trong thân chương trình.
D. Tham số hình thức dùng khi khai báo, tham số thực sự dùng khi gọi thủ tục.
Câu 2 : Giả sử ta có dòng đầu thủ tục là
procedure P (Var A, B: Integer; C:integer);
Thì các tham số hình thức được hiểu như sau:
A. A, B, C đều là các tham biến
B. A, B là tham biến, C là tham trị
C. A, B, C đều là tham trị
D. A, B là tham trị, C là tham biến
Củng cố
Câu 3: Phần khai báo đầu thủ tục nào sau đây là đú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; và dòng đầu thủ tục
Procedure tong(n:byte; y: real);
Lời gọi nào sau đây đúng:
A. tong(a); B. tong(b,a); C. tong(a;b); D. tong(a,b);
Câu 5: Cho các biến A,B: byte; C:real;
Trong đó: A là tham trị, B và C là tham biến.
Khai báo dòng đầu thủ tục nào sau đây đú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 các biến x,z: byte; y:real;
Dòng đầu thủ tục như sau:
Procedure tang(a:byte; var b:byte;);
Lời gọi thủ tục nào sau đây sai?
A. tang(5,x); C. tang(1,y);
B. tang(5+2,z); D. tang(sqr(2),z);
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 quả xuất hiện trên màn hình là:
Lời gọi thủ tục nào sau đây là đúng:
A. Hoandoi(x,y);
B. Hdoi(x);
C. Hdoi(x,5);
D. Hdoi(5,y);
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
bài tập về nhà
1. Viết 2 thủ tục tính chu vi và diện tích của hình chữ nhật. Sau đó thực hiện lời gọi 2 thủ tục này trong chương trình chính với các kích thước khác nhau của hình chữ nhật.
2. Viết thủ tục để nhập vào mảng 1 chiều gồm 10 phần tử số nguyên.
Câu 1: Trong ngôn ngữ lập trình Pascal, chương trình con gồm mấy loại ? Có tên gọi là gì ? Hãy nêu cấu trúc của chương trình con?
Trả lời:
Chương trình con gồm có hai loại:
Hàm (Function) và Thủ tục (Procedure)
Cấu trúc của chương trình con gồm:
[
KIỂM TRA BÀ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?
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.
Thủ tục
Phần đầu
BÀI 18
CÁCH VIẾT VÀ SỬ DỤNG
CHƯƠNG TRÌNH CON
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
a. Cấu trúc của thủ tục
PROCEDURE
[
BEGIN
[
END;
- 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ể xác định các chương trình con khác.
- Phần thân: dãy các lệnh viết giữa Begin và end;
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
b. Sử dụng thủ tục
Lệnh gọi:
Quan sát chương trình, 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?
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.
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
c. Tham số hình thức
Tham số biến
Tham số giá trị
Khai báo:
Khai báo:
VAR
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.
Trong lệnh gọi thủ tục: các tham số thực sự là các giá trị cụ thể (hằng, biến, biểu thức…)
Giá trị của biến có thể thay đổi trong quá trình thực hiện chương trình.
Giá trị của biến không thay đổi trong quá trình thực hiện chương trình
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
c. Tham số hình thức
Tham số biến
Tham số giá trị
Ví dụ:
Procedure Hoan_doi(var x,y: integer);
Procedure Ve_Hcn(chdai, chrong: integer);
Procedure HoanDoi ( Var a, b: integer);
Var Tam:integer;
Begin
Tam:=a;
a:=b;
b:=Tam;
End;
a:integer; Var b:integer
Cho a=5, b=10 sau khi thực hiện thủ tục hoán đổi thì a= ?, b= ?, Vì sao?
Var a:integer; b:integer
Cho a=5, b=10 sau khi thực hiện thủ tục hoán đổi thì a= ?, b= ?, Vì sao?
Vì a là tham trị nên không đổi, b tham biến vậy a=5, b=5
Vì a là tham biến, b tham trị nên không đổi vậy a=10, b=10
Vì a,b là tham biến nên cho phép thay đổi nên a=10, b=5
Cho a=5, b=10 sau khi thực hiện thủ tục hoán đổi thì a= ?, b= ?, Vì sao?
VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG CTC
1. Cách viết và sử dụng thủ tục
d. Một số ví dụ:
PROGRAM VIDU1;
Procedure Ve_HCN;
BEGIN
Writeln(‘* * * * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * * * *’);
END;
BEGIN {Chuong trinh chinh}
Ve_HCN;
Writeln; writeln;
Ve_HCN;
Readln
END.
Ví dụ 1:
BEGIN {Chuong trinh chinh}
For i:=1 to 5 do Ve_HCN;
Readln;
END.
d. Một số ví dụ:
Ví dụ 2: thủ tục vẽ hình chữ nhật với chiều dài và chiều rộng thay đổi được.
Program VD2;
Var a,b,i :integer;
Procedure Ve_HCN(cdai, crong :integer);
Var i,j: integer;
Begin
for i:= 1 to cdai do Write(‘*’);
writeln;
for j:= 1 to crong-2 do
begin
Write(‘*’);
for i:= 1 to cdai-2 do Write(‘ ‘);
writeln(‘*’);
End;
for i:= 1 to cdai do Write(‘*’);
Writeln;
End;
Begin
Ve_HCN(25,10);
Ve_HCN(5,10);
readln;
a:=2; b:=4;
For i:= 1 to 4 do
Begin
Ve_HCN(a,b);
readln;
a:=a*2; b:=b*2;
End; readln;
End.
d. Một số ví dụ:
Ví dụ 3: Phân biệt tham biến và tham trị
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.
d. Một số ví dụ:
Ví dụ 3: Phân biệt tham biến và tham trị
Program VD_thambien2;
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.
Câu 1: Phát biểu nào sau đây sai:
A. Danh sách tham số hình thức có thể có hoặc không.
B. Kết thúc thủ tục END;
C. Thủ tục được viết trong thân chương trình.
D. Tham số hình thức dùng khi khai báo, tham số thực sự dùng khi gọi thủ tục.
Câu 2 : Giả sử ta có dòng đầu thủ tục là
procedure P (Var A, B: Integer; C:integer);
Thì các tham số hình thức được hiểu như sau:
A. A, B, C đều là các tham biến
B. A, B là tham biến, C là tham trị
C. A, B, C đều là tham trị
D. A, B là tham trị, C là tham biến
Củng cố
Câu 3: Phần khai báo đầu thủ tục nào sau đây là đú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; và dòng đầu thủ tục
Procedure tong(n:byte; y: real);
Lời gọi nào sau đây đúng:
A. tong(a); B. tong(b,a); C. tong(a;b); D. tong(a,b);
Câu 5: Cho các biến A,B: byte; C:real;
Trong đó: A là tham trị, B và C là tham biến.
Khai báo dòng đầu thủ tục nào sau đây đú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 các biến x,z: byte; y:real;
Dòng đầu thủ tục như sau:
Procedure tang(a:byte; var b:byte;);
Lời gọi thủ tục nào sau đây sai?
A. tang(5,x); C. tang(1,y);
B. tang(5+2,z); D. tang(sqr(2),z);
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 quả xuất hiện trên màn hình là:
Lời gọi thủ tục nào sau đây là đúng:
A. Hoandoi(x,y);
B. Hdoi(x);
C. Hdoi(x,5);
D. Hdoi(5,y);
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
bài tập về nhà
1. Viết 2 thủ tục tính chu vi và diện tích của hình chữ nhật. Sau đó thực hiện lời gọi 2 thủ tục này trong chương trình chính với các kích thước khác nhau của hình chữ nhật.
2. Viết thủ tục để nhập vào mảng 1 chiều gồm 10 phần tử số nguyên.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Trần Thị Ngọc Hiền
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)