Tải bản đầy đủ (.ppt) (17 trang)

Bài 18. Ví dụ về cách viết và sử dụng chương trình con

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 (294.16 KB, 17 trang )

BÀI CŨ
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?
Câu 1
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:
<Phần đầu>
[<Phần khai báo]>
<Phần thân>
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(m,n:integer;var max:integer);
Begin
If m>n then max:=m else max:=n;
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.
Bài 18
Ví dụ này ta sử
dụng bao nhiêu
câu lệnh để vẽ
hình chữ nhật?
Tìm hiểu ví dụ sau:
Procedure <tên thủ tục>[(<danh sách tham số>)];
[<phần khai báo>]
begin
[<dãy các lệnh>]
end;
Trong đó:
1. Cách viết và sử dụng thủ tục
Lệnh gọi thủ tục:
<tên thủ tục>[(<danh sách tham số thực>)];
- Phần đầu gồm procedure, tên thủ tục và danh sách
tham số (có thể có hoặc không).
- Dãy các lệnh được viết giữa begin và end; tạo thành
thân của thủ tục.
- Phần khai báo các hằng, kiểu, biến và các CT con
khác được sử dụng trong thủ tục.
a/ Cấu trúc của thủ tục
Trong ví dụ này ta vẽ được bao nhiêu
hình chữ nhật?

Vẽ được 6 hình chữ nhật
Tham số hình thức là các
biến được khai báo cho dữ liệu
vào/ra (các biến chưa có giá trị cụ
thể).
Tham số thực sự là các hằng
biến chứa dữ liệu vào/ra ( các hằng,
biến có giá trị cụ thể, xác định).
Em nào hãy nhắc lại khái niệm về
tham số hình thức và tham số thực?
Tham số biến

Khai báo:
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ữ
liệu ra.

Giá trị có thể bị thay đổi sau
khi thực hiện xong thủ tục.
Tham số giá trị

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.

Trong lệnh gọi thủ tục: các
tham số thực sự là các giá trị
cụ thể.
c/ Tham số giá trị và tham số biến
Program VD;
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;
Hoan_doi(5,10);
Writeln( a:6 , b:6);
Hoan_doi(a,b);
Writeln( a:6 , b:6);
readln;
END.
Biến cục bộ
Tham số biến
(tham biến)
Tham số biến
(tham biến)

Biến toàn cục
Tham số giá trị
(tham trị)
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.
VD2: Hãy xây dựng thủ tục tìm SLN của 2 số rồi viết chương
trình tìm số lớn nhất trong 5 số a, b, c, d, e
2. Cách viết và sử dụng hàm
a/ Cấu trúc của hàm
Function <tên hàm>[(<danh sách tham số>)]: <kiểu dữ liệu>;
[<khai báo các biến>]
Begin
<dãy các lệnh>
end;
Trong đó:
Kiểu dữ liệu là kiểu dữ liệu của giá trị trả mà hàm
trả về: integer, real, char, boolean, string.
** Chú ý:

Khác với thủ tục, trong thân hàm cần có lệnh gán
giá trị cho tên hàm
<tên hàm>:=<biểu thức>;
- Lệnh gọi hàm:
<tên hàm><danh sách tham số thực sự>;
b/ Sử dụng hàm
-
Lệnh gọi hàm có thể tham gia vào biểu thức như một toán
hạng
Ví dụ:
A:= 6*UCLN( Tuso, Mauso)+1;
Phân biệt hàm và thủ tục
- Trong thân hàm phải có lệnh gán giá trị cho tên
hàm.
* Giống nhau:
- Đều là chương trình con có cấu trúc giống chương
trình chính.
- Đều có thể chứa các tham số, cùng tuân theo qui
định khai báo.
** Khác nhau
- Tên hàm phải có kiểu dữ liệu.

×