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 [] 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 dù
Trang 1Các vị đại biểu, các thầy cô giáo
và các em học sinh
Trang 21 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 3Bµi 18
Gi¸o ¸n ®iÖn tö tin häc líp 11
Trang 4* * * * * * *
* * * * * * *
1 Cỏch viết và sử dụng thủ tục
Xột vớ dụ vẽ hỡnh chữ nhật cú dạng sau
Ta cú thể vẽ hỡnh chữ nhật trờn với ba cõu lệnh
Writeln(‘* * * * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * * * *’);
Theo em để vẽ đ
ợc hình chữ nhật trên ta viết câu lệnh thế nào trong ch ơng trình
Trang 51 Cỏch viết và sử dụng thủ tục
Xột vớ dụ vẽ 3 hỡnh chữ nhật cú dạng sau:
Theo em để vẽ đ
ợc 3 hình chữ
nhật trên ta viết câu lệnh thế nào trong ch ơng trình
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
Ta cú thể vẽ 3 hỡnh chữ nhật trờn với 9 cõu lệnh
Writeln(‘* * * * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * * * *’);
Writeln(‘* * * * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * * * *’);
Writeln(‘* * * * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * * * *’);
Trang 61 Cách viết và sử dụng thủ tục
program 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
Trang 71 Cỏch viết và sử dụng thủ tục
a Cấu trỳc của thủ tục
Procedure <tờn thủ tục>[<danh sỏch tham số>];
[<phần khai bỏo>]
begin
end ;
[<dóy cỏc lệnh>]
* Phần đầu thủ tục gồm tên dành riêng
Procedure, tiếp theo là tên thủ tục Danh sách
tham số có thể có hoặc không có.
*Phần khai báo dùng để xác định 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 đ ợc sử dụng trong thủ tục.
* Dãy câu lệnh đ ợc viết giữa cặp tên dành
riêng begin và end tạo thành thân của thủ tục.
program VD_thutuc1;
procedure Ve_hcn;
begin
end ;
writeln(‘* * * * * * *’); writeln(‘* *’); writeln(‘* * * * * * *’);
begin
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
End
{************************} {************************}
Trang 81 Cách viết và sử dụng thủ tục program VD_thutuc1;
procedure Ve_hcn;
begin
end ;
writeln(‘* * * * * * *’); writeln(‘* *’); writeln(‘* * * * * * *’);
begin
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
End
a Cấu trúc của thủ tục
Procedure <tên thủ tục>[<danh sách tham số>];
[<phần khai báo>]
begin
end ;
[<dãy các lệnh>]
{************************}
{************************}
Chú ý: - Sau tên dành riêng end kết thúc chương
trình chính là dấu (.), còn sau end kết thúc
thủ tục là dấu chấm phẩy (;)
- Các thủ tục, nếu có, phải được khai báo
và mô tả trong phần khai báo của chương
trình chính, ngay sau phần khai báo biến
- Khi cần thực hiện, ta phải viết lệnh gọi thủ tục tương tự như các thủ tục chuẩn.
Trang 91 Cách viết và sử dụng thủ tục program VD_thutuc1;
procedure Ve_hcn;
begin
end ;
writeln(‘* * * * * * *’); writeln(‘* *’); writeln(‘* * * * * * *’);
begin
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
end.
a Cấu trúc của thủ tục
{************************}
{************************}
* * * * * * *
* *
* * * * * * *
* * * * * * *
* *
* * * * * * *
* * * * * * *
* *
* * * * * * *
Trang 101 Cỏch viết và sử dụng thủ tục
a Cấu trỳc của thủ tục
b Ví dụ về thủ tục
Khi đó phần đầu của thủ tục đ ợc viết nh sau.
Procedure Ve_Hcn (chdai, chrong: integer);
* * * * * * … *
* * * * * * … *
Chdai Chrong - 2
Trang 11C¸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; ‘ ’
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; ‘ ’
Trang 12Program 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;
Ve_HCN(5,10);
a:=5 ; b:=10;
Ve_HCN(a,b);
readln;
Trang 13+ Thủ tục Ve_Hcn ở đây đã diễn đạt một thuật toán vẽ một hình chữ nhật có kích th ớc chiều dài và chiều rộng tuỳ theo giá trị của các tham số chdai và chrong Những tham số này
đ ợc gọi là tham số hình thức.
+ Trong lệnh gọi thủ tục các tham số hình thức đ ợc thay bằng các tham số thực sự t ơng ứng là các giá trị cụ thể đ ợc
gọi là tham số giá trị (gọi tắt là tham trị)
Trang 14Program vidu;
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;
Tham sè gi¸ trÞ (tham trị)
Tham số hình thức
Trang 15Program 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
Trang 16Program 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;
Trang 17Program 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 18- ở trong VD_thambien1 việc khai báo hai tham số x và y trong phần khai báo Procedure đ ợc đặt sau chữ Var nói lên
rằng hai tham số này đ ợc chuyền cho CTC d ới dạng tham số
biến (tham biến) nghĩa là ta có quyền thay đổi giá trị của hai biến x và y ở trong ch ơng trình con và khi ra khỏi CTC, các biến x và y vẫn giữ nguyên giá trị đã bị thay đổi trong ch ơng trình con
- ở VD_thambien2 tham số x không đ ợc đặt sau chữ Var
điều đó có nghĩa là tham số x đ ợc chuyển cho ch ơng trình
con d ới dạng tham số giá trị (tham trị) Khi này CTC chỉ đ ợc
phép dùng giá trị của tham trị mà không đ ợc quyền thay đổi giá trị của nó