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

Chia sẻ bởi Bùi Văn Du | Ngày 10/05/2019 | 140

Chia sẻ tài liệu: Bài 18. Ví dụ về cách viết và sử dụng chương trình con thuộc Tin học 11

Nội dung tài liệu:

BÀI 18:

CÁCH VIẾT
VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
VD: Vẽ hình chữ nhật có dạng:
*******
* *
*******
Để vẽ hình chữ nhật như trên ta cần các lệnh sau.
Writeln(‘*******’);
Writeln(‘* *’);
Writeln(‘*******’);
Ta có thể đưa các lệnh này vào thủ tục có tên VE_HCN, mỗi lần gọi thủ tục này thì một HCN được in ra:
1. Cách viết và sử dụng thủ tục:
Program CT1;
Procedure VE_ HCN;
Begin
Writeln(‘*******’);
Writeln(‘* *’);
Writeln(‘*******’);
End;
Begin
VE_ HCN;
Writeln; writeln;
VE_ HCN;
Writeln; writeln;
VE_ HCN;
Readln;
End.
CHƯƠNG TRÌNH:
Cấu trúc của thủ tục:

Procedure < Tên thủ tục>[()];
[]
Begin
{… dãy các lệnh (thân của thủ tục)..}
End;
Trong đó:
Phần đầu thủ tục : trước hết là tên dành riêng Procedure, tiếp theo sau là Tên thủ tục. Danh sách tham số có thể có hoặc không.
Phần khai báo dùng để xác định các hằng, các kiểu, các biến và cũng có thể khai báo hàm và thủ tục khác sử dụng trong thủ tục.
Dãy câu lệnh đặt giữa cặp Begin …. End; tạo thành thân của thủ tục.
Procedure VE_HCN ( Dai, rong: integer);
Dòng khai báo trên có nghĩa là: vẽ HCN có kích thước khác nhau tùy theo giá trị Dai , rong.
Chương trình sau mô tả vẽ HCN với hai tham số Dai, rong trên.
b. Ví dụ về thủ tục:
VD: Vẽ hình chữ nhật có dạng:
*******
* *
*******
Sử dụng tham số dai va rong thể hiện cho chiều dài và rộng của hình chữ nhật.
Program CT2;
Procedure VE_HCN( dai, rong: integer);
Var i, j : integer;
Begin { ve canh tren cua hcn}
For i:=1 to dai do write (‘ * ’);
Writeln;
{ ve 2 canh ben }
For j:=1 to rong - 2 do
Begin
Write(‘ * ’ );
For i:=1 to dai - 2 do write(‘ ’);
Writeln( ‘ * ’ );
End;
{ ve canh duoi }
For i:=1 to dai do write(‘ * ’);
Writeln;
End;
{ chuong trinh chinh}
Begin
VE_HCN (25,10);
Writeln; writeln;
VE_HCN (5,10);
End.
*Chú ý:
Hai tham số trong dấu ngoặc đơn sau tên thủ tục khi khai báo là tham số hình thức, còn trong lời gọi thủ tục chúng được gọi là tham số thực tế.
Hai tham số dai, rong là tham số hình thức
-Tham số 25,10,5 trong lời gọi thủ tục là những tham số thực tế.

-Khi khai báo tham trị thì giá trị các tham số không thay đổi khi kết thúc thủ tục.
VD:
Chương trình có thủ tục Hoan_doi làm nhiệm vụ hoán đổi giá trị hai biến.
Trong chương trình sử dụng từ khóa Var trong tham số của thủ tục vì cả 2 biến đều chứa dữ liệu.
Procedure Hoan_Doi(var x,y :integer);
Program CT3
Var a,b :integer;
Procedure Hoan_Doi(var x,y :integer);
Var TG: integer;
Begin
TG : = x ;
x : = y ;
y : = TG ;
End;
{chuong trinh chinh}
Begin
A:=5; B:=10;
Writeln( A : 6, B : 6);
Hoan_Doi(A,B);
Writeln(A: 6, B:6);
Readln;
End.
Trong dòng đầu thủ tục :
Procedure Hoan_doi
(var x,y :integer);
Các tham số x, y là các tham số biến.
- Khai báo: VAR x,y : integer;
Xác định x, y là hai tham số biến kiểu nguyên.
- Để thấy được sự khác nhau giữa tham số biến và tham số trị ta xét chưong trình sau, một trong 2 tham số trở thành tham số giá trị
Kết quả
5 10 10 5
Program CT4
Var a,b :integer;
Procedure Hoan_doi(x: integer,
Var y: integer);
Var TG: integer;
Begin
TG : = x ;
x : = y ;
y : = TG ;
End;
{chuong trinh chinh}
Begin
A:=5; B:=10;
Writeln( A:6, B : 6);
Hoan_Doi(A,B);
Writeln(A: 6, B:6);
Readln;
End.
Trong chương trình này x khai báo tham trị, y khai báo tham biến nên sau khi thực hiện song thủ tục chỉ có y là thay đổi giá trị còn biến x không đổi.
Kết quả khi chạy chương trình:
5 10
5 5
Cấu trúc của hàm:
FUNCTION ( [ Danh sách tham số >] ) : ;
[< Phần khai báo> ]
BEGIN
(…Dãy các lệnh ( thân của hàm )…)
: =
END;

2. Cách viết và sử dụng hàm:
Sự giống nhau giữa Thủ Tục và Hàm:
1.Cả thủ tục và hàm đều là chương trình con, có cấu tạo giống như một chương trình trừ dòng đầu tiên và kết thúc bằng END;

2. Cả thủ tục và hàm đều có thể chứa các tham số ( tham số giá trị và tham số biến), cùng tuân theo các qui định về khai báo và sử dụng các lọai tham số này

PROCEDURE
[(< Danh sách tham số>)];
[]
BEGIN

(…Dãy các lệnh ( thân của thủ tục )…)

END;
FUNCTION ( [ Danh sách tham số >] ):;
[< Phần khai báo> ]
BEGIN

(…Dãy các lệnh ( thân của hàm )…)
: =

END;

Ví dụ: Viết thủ tục tính bình phương của một số thực
Procedure BinhPhuong(X: real; var X2 : Real);
Begin
X2: = X*X ;
End;
BinhPhuong(a,Temp);
c:=Temp;(* c:=a2 *)
BinhPhuong(b,Temp);
c: =c + Temp; (*c:=a2 + b2)
Cách tính c:=a2 + b2 trong chương trình chính

Ví dụ: Viết hàm tính bình phương của một số thực
Function BinhPhuong( X: Real) : Real;
Begin
BinhPhuong:=X*X ;
End;
c: = Binhphuong(a) +BinhPhuong(b);

Cách tính c:=a2+b2 trong chương trình chính

* Sự khác giữa Thủ tục và Hàm:
Procedure BinhPhuong(X: real;
var X2 : Real);
Begin
X2: = X*X ;
End;
Function BinhPhuong( X: Real): Real;
Begin
BinhPhuong:=X*X ;
End;
Đầu Hàm bắt đầu với từ khóa FUNCTION , sau tên hàm và phần khai báo danh sách tham số ( nếu có) phải chỉ ra giá trị kết quả của Hàm thuộc kiểu dữ liệu nào.
Kiểu của hàm là kiểu kết quả của Hàm và chỉ có thể là một trong các kiểu : Integer, Real, Char, Boolean, String.

Trong thân của hàm thường có câu lệnh gán giá trị cho tên hàm. : =
Sự khác giữa việc sử dụng Thủ tục và việc sử dụng hàm Hàm:
BinhPhuong(a,Temp);
c:=Temp;(* c:=a2 *)
BinhPhuong(b,Temp);
c: =c + Temp; (*c:=a2 + b2*)
c: = Binhphuong(a) +BinhPhuong(b);

Lời gọi thủ tục:
Tên_thủ_tục(Các tham số truyền vào nếu có)
Tương tự như sử dụng các hàm chuẩn của Pascal như SIN(x), SQRT(x), …Viết tên của hàm cần gọi và truyền các tham số thật sự cho hàm.
* 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ẻ: Bùi Văn Du
Dung lượng: | Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)