- Khai báo trực tiếp trong khai báo biến
a- Cấu trúc của hàm( Function) và lời gọi hàm
Ớ Hàm có cấu trúc ựầy ựủ như sau:
Function Tên_hàm(Tham_số1 : kiểu; Tham_số2: kiểu; Var tham_số3: kiểu;. . .): kiểu; Label {Khai báo các nhãn } Const { Khai báo các hằng } Type {định nghĩa các kiểu dữ liệu của người sử dụng } Var { Khai báo các biến cục bộ} . . . Begin
. . . { Thân chương trình con } Tên_hàm:= Giá_trị ; End;
Các phần nếu có thì theo ựúng thứ tự ựã nêu.
Kiểu của tham số là các kiểu cơbản, kiểu có cấu trúc như kiểu xâu kắ tự và kiểu mang, nếu
là kiểu mảng thì phải khai báo bằng ựịnh nghĩa kiểu ở phần ựịnh nghĩa khiểu ở ựầu chương
trình chắnh, không ựược khai báo trực tiếp.
Kiểu của hàm có thể là các kiểu cơbản, kiểu xâu kắ tự.
Các tham số khai báo trong hàm ựược gọi là tham số hình thức. Ớ Lời gọi hàm
Trong thân chương trình chắnh sử dụng hàm phải có lời gọi hàm. Lời gọi hàm ựược viết như sau:
Tên_hàm( danh sách các tham số thực sự)
Các tham số thực sự tương ứng cả về số lượng và cả về kiểu dữ liệu với các tham số hình thức khai báo trong hàm.
Lời gọi hàm ựược coi như 1 biến, có thể tham gia vào biểu thức, tham gia vào các thủ tục
vào/ ra.
Vắ dụ1: Chương trình có xây dựng Function
Chương trình
Program Tinh_dien_tich; uses crt;
var a,b,c : real;
Function DT(x,y,z : real) : real; var s,p : real; begin p:=(x+y+z)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); DT:=s; end;
begin { than chuong trinh chinh } clrscr;
a:=2;b:=3;c:=2;
writeln(' dien tich tam giac 1 = ', DT(a,b,c):8:2); write('Nhap 3 canh của tam giac a,b,c: '); readln(a,b,c);
writeln(' dien tich tam giac 2 = ', DT(a,b,c):8:2); readln;
end.
- Hàm ựặt ở vị trắ sau khai báo biến trong chương trình chắnh và trước thân chương trình
chắnh.
- Chỉ ựược gọi tới hàm sau khi ựã khai báo hàm.
- Ơ vắ dụ 1 ta khai báo hàm có tên là DT có kiểu real, các tham số hình thức của hàm là: x,y,z. Trong thân chương trình có 2 lời gọi hàm, chúng ựều nằm trong lệnh Writeln. Trong lời gọi hàm thứ nhất, 3 tham số thực sự là a=2, b=3, c=2. Trong lời gọi hàm thứ hai, 3 tham số
thực sự là a,b,c có giá trị ựược nhập vào từ bàn phắm.