Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (747 KB, 18 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=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?
<b>Trả lời: </b>
<sub> Chương trình con gồm có hai loại: </sub>
<b>Hàm</b> (Function) và <b>Thủ tục</b> (Procedure)
<sub> Cấu trúc của chương trình con gồm:</sub>
<b> <Phần đầu></b>
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
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;
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);
<b> PROCEDURE</b> <tên_thủ_tục>[<(DS các tham số hình thức)>];
[<Phần khai báo>]
<b>BEGIN</b>
[<dãy các lệnh >]
<b>END;</b>
<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>
<b>- Phần đầu: gồm Procedure, tên thủ tục và các tham số hình thức.</b>
<b>- Phần khai báo: các hằng, kiểu, biến và cũng có thể các chương </b>
trình con.
<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>
<b>b. Sử dụng thủ tục:</b>
Lệnh gọi:
<b><TÊN_THỦ_TỤC>[<(Danh sách tham số thực sự)>];. </b>
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)
<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>
<b>c. Tham số hình thức:</b>
<b>* Ví dụ:</b>
<b>Tham số biến</b>
<sub> Khai báo:</sub>
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ữ
• Giá trị có thể bị thay đổi sau
khi thực hiện xong thủ tục.
<b>Tham số giá trị</b>
• 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.
<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>
<b>d. Các Ví dụ:</b>
* * * * *
* *
* * * * *
<b>VD1: Viết Ct vẽ 5 hình chữ nhật có dạng:</b>
<b>PROGRAM VIDU1;</b>
<b> Procedure Ve_HCN;</b>
<b> BEGIN</b>
Writeln(‘* * * * *’);
Writeln(‘* *’);
<b> </b>
BEGIN <i><b>{Chuong trinh chinh}</b></i>
<b> For i:=1 to 5 do Ve_HCN;</b>
<b> Readln;</b>
<b> END.</b>
<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>
<b>VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dài và </b>
<b>chiều rộng thay đổi được.</b>
Cho biết phần đầu của thủ tục
Ve_HCN sẽ thay đổi như thế nào?
<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>
<b>Program VD2;</b>
Var a,b,i :integer;
<b>Procedure Ve_HCN(cdai, crong :integer);</b>
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;
<b>VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dà và </b>
<b>chiều rộng thay đổi được.</b>
<b>Begin</b>
Ve_HCN(25,10);
Ve_HCN(5,10);
readln;
a:=2; b:=4;
<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>
<b>Program VD_thambien1;</b>
Var a,b, :integer;
<b>Procedure Hoan_doi (Var x,y :integer);</b>
Var TG: integer;
Begin
TG: = x;
x: = y;
y: = TG;
End;
<b>Begin</b>
a:=5; b:=10;
Writeln(a:6, b:6);
Hoan_doi(a,b);
Writeln( a:6, b:6);
<b>End.</b>
<b>VD3: Phân biệt tham biến, tham tri.</b>
Cho biết kết quả
hiện trên màn hình
khi thực hiện
chương trình?
<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>
<b>Program VD_thambien2;</b>
Uses crt;
Var a,b, :integer;
<b>Procedure Hoan_doi (x: integer; Var y :integer);</b>
Var TG: integer;
Begin
TG: = x;
x: = y;
y: = TG;
End;
<b>Begin</b>
clrscr;
a:=5; b:=10;
Writeln(a:6, b:6);
Hoan_doi(a,b);
Writeln( a:6, b:6);
<b>End.</b>
<b>VD3: Phân biệt tham biến, tham tri.</b>
Cho biết kết quả
hiện trên màn hình
khi thực hiện
chương trình?
<b>Câu 1: Phát biểu nào sau đây sai:</b>
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.
<b>Câu 2 : Giả sử ta có dịng đầu thủ tục là</b>
<b> procedure P (Var A, B: Integer; C:integer);</b>
<b> Thì các tham số hình thức được hiểu như sau:</b>
<b> Lời gọi nào sau đây đúng:</b>
<b>Câu 5: Cho các biến A,B: byte; C:real; </b>
<b>Trong đó: A là tham trị, B và C là tham biến.</b>
<b>Khai báo dòng đầu thủ tục nào sau đây đúng:</b>
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);
<b>Câu 7: Cho ch ơng trình sau: </b>
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.
<b>KÕt qu¶ xt hiƯn trên màn hình là:</b>
<b>Li gi th tc no sau õy là đúng:</b>
A. Hoandoi(x,y);
B. Hdoi(x);
<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>
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.