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.. BiÕn côc bé Tham sè thùc sù tham trÞ Tham sè h×nh thøc BiÕn t
Trang 11 Chương trình con được chia ra làm mấy loại
2 Cấu trúc chung của chương trình con được chia làm mấy phần
Hàm (Function) và thủ tục (Procedure)
<Phần đầu>
[<Phần khai báo>]
<Phần thân>
3 Cấu trúc chung của chương trình chính được chia làm mấy phần
[<Phần khai báo>]
<Phần thân>
Trang 2Bµi 18
Trang 3Ví dụ 1: Lập ch ơng trình vẽ các hình chữ nhật bằng dấu * có kích th ớc khác nhau.
Ví dụ 1: Lập ch ơng trình vẽ các hình chữ nhật bằng dấu * có kích th ớc khác nhau.
Cách 2: Dùng ch ơng trình con thủ tục
Ve_HCN(dai,rong) để 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.
Ví dụ: Ve_HCN(25,20); Ve_HCN(3,7)
Cách 1: Sử dụng nhiều lần các câu lệnh:
Writeln(‘* * * * * * *’);
Writeln(‘* *‘);
Writeln(‘* * * * * * *’);
1 Cách viết và sử dụng thủ tục:
* * * * * * *
* * * * * * *
Hỡnh 1
* * * * * * * *
* * * * * * * *
Hỡnh 2
* * * * * * * * * * *
Hỡnh 3
*
*
*
* * * * * * * * * * **
1 Cách viết và sử dụng thủ tục:
Trang 4CÊu tróc cña thñ tôc:
Procedure <tªn thñ tôc> [(<ds tham sè>)]; [< PhÇn khai b¸o >]
Begin
[<D·y c¸c lÖnh>]
End;
<Tªn thñ tôc> [(Ds tham sè thùc sù)] CÊu tróc cña thñ tôc:
C©u lÖnh gäi cña thñ tôc:
Trang 5Để thủ tục Ve_Hcn có thể thực hiện đ ợc điều đó, cần có hai tham số cho dữ liệu vào là chiều dài và chiều rộng.
Khi đó phần đầu của thủ tục đ ợc viết nh sau.
Procedure Ve_Hcn (chdai, chrong: integer);
* * * * * * … *
* * * * * * … *
Chdai Chrong - 2
Ví dụ về thủ tục:
Viết một thủ tục
Ve_HCN bằng dấu * với chiều dài, rộng bất kì!
Trang 6C¸c em h·y viÕt
mét thñ tôc
Ve_HCN b»ng
dÊu * víi chiÒu
dµi, réng bÊt k×!
**********************************
* *
* *
* *
**********************************
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; ‘*’); WRITELN; ’); WRITELN;
FOR J:=1 to chrong -2 DO Begin
Write( * ); ‘*’); WRITELN; ’); WRITELN;
For i:=1 to chdai - 2 do Write( ); ‘*’); WRITELN; ‘*’); WRITELN;
Writeln( * ) ‘*’); WRITELN; ’); WRITELN;
end;
FOR i:=1 to chdai DO WRITE( * ); WRITELN; ‘*’); WRITELN; ’); WRITELN;
Trang 7Program VD;
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é
Tham sè thùc sù (tham trÞ)
Tham sè h×nh thøc BiÕn toµn côc
Trang 8* Tham số và cách truyền tham số:
Tham số tại nơi gọi:Tham số thực
Tham số tại nơi được gọi: Tham số hình thức
Kiểu tham số
hình thức Khai báo tương ứng sau khi thực thi Giá trị của tham số thực
chương trình con
Trang 9* Tham số và cách truyền tham số:
Tham số tại nơi gọi:Tham số thực
Tham số tại nơi được gọi: Tham số hình thức
Kiểu tham số
hình thức Khai báo tương ứng sau khi thực thi Giá trị của tham số thực
chương trình con
Tham số hình
thức trị Không có VAR trước khi gọi chương trình con.Giữ nguyên giá trị ban đầu như
Tham số hình
thức biến Có VAR trình con.Lấy giá trị kết quả của chương
Tham số hình thức trị -> tham số giá trị gọi tắt là tham trị
Tham số hình thức biến -> tham số biến gọi tắt là tham biến
Trang 10Program 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.
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.
Trang 11Program 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.
BiÕn côc bé
Tham sè thùc sù
Tham sè h×nh thøc biÕn BiÕn toµn côc
Trang 12Program 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.
BiÕn côc bé
Tham sè thùc sù
Tham sè h×nh thøc biÕn
BiÕn toµn côc
Tham sè h×nh thøc trÞ
Trang 13Uses crt;
Type Mang1c=array[1 10] of integer;
Var n:byte;
a:Mang1c;
{Đây là các Biến toàn cục}
(* - cac CT con -*)
{Chỗ này sẽ chứa các môđun của các thành viên}
(* - CT chinh -*)
BEGIN
ClrScr; Randomize;
Nhap(a,n); {Nhập dãy số nguyên (ai)}
Xuat(a,n); {Xuất dãy số (ai) ra màn hình}
SapXep(a,n); {Sắp xếp lại dãy sao cho các số hạng cứ
tăng dần theo các chỉ số}
Xuat(a,n); {Xuất dãy số (ai) ra màn hình}
END
Chương trình:
Nhập một dãy số khoảng 10 số nguyên Xuất chúng ra theo
hàng ngang Sắp xếp lại dãy theo thứ tự tăng dần Sau đó in dãy
đã sắp xếp ra màn hình
Trang 14H·y nhí!
BiÕn:
Tham sè
- Khai b¸o trong ch ¬ng tr×nh chÝnh lµ biÕn toµn côc
- Khai b¸o trong ch ¬ng tr×nh con lµ biÕn côc bé
- BiÕn khai b¸o cho d÷ liÖu vµo
ra trong ch ¬ng tr×nh con gäi lµ
tham sè h×nh thøc
- BiÕn chøa trong lêi gäi CTC ë
ch ¬ng tr×nh chÝnh lµ c¸c tham
sè thùc sù.
Trang 15program VD_thutuc1;
procedure Ve_hcn; {Bat dau thu tuc}
begin
end; {Ket thuc chuong trinh con}
writeln(‘* * * * * * *’);
writeln(‘* *’);
writeln(‘* * * * * * *’);
begin
Ve_Hcn; {Goi thu tuc Ve_Hcn}
writeln; writeln; {De cach hai dong}
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
end.
{=====================================}
{=====================================} Cấu trúc chương
trình chính:
[<Phần khai báo>]
<Phần thân>
? Vị trí của thủ tục nằm ở phần nào của chương trình chính
1 C¸ch viÕt vµ sö dông thñ tôc:
* * * * * * *