Pascal - Hàm (function) - pdf 20

Download miễn phí Pascal - Hàm (function)



Kiểu dữ liệu của tham số trong hàm và thủ tục thì không hạn chế.
Nhưng nếu là kiểu chuỗi (trừ kiểu String) hay kiểu tự xây dựng thì phải
được định nghĩa trước bằng từ khóa Type.
Ví dụ, khai báo sau là sai:
Function F( x : array[1.10] of Real) : Integer ;
Function F( St : String[20]) : Char ;



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

HÀM (Function)
12.2.1. Các đặc trưng của hàm:
Các yếu tố đặc trưng cho một hàm gồm có:
Tên hàm
Kiểu dữ liệu của các tham số
Kiểu dữ liệu của gía trị hàm
Ví dụ :
Hàm Sqrt(x): cho căn hai của x. Tên hàm là Sqrt, tham số x là nguyên
hay thực còn gía trị hàm kiểu thực, ví dụ Sqrt(4)=2.0.
Hàm Chr(k): cho ký tự có mã là k. Tên hàm là Chr, tham số k kiểu
nguyên còn gía trị hàm kiểu ký tự, ví dụ Chr(65)=‘A’.
Hàm Odd(k): cho True hay False tùy theo k là lẻ hay chẵn. Tên hàm là
Odd, tham số k kiểu nguyên và gía trị hàm kiểu lôgic? ví dụ Odd(4)=False.
Hàm Copy( St, k, n): cho chuỗi con gồm n ký tự của St tính từ vị trí k.
Tên hàm là Copy, có ba tham số là St kiểu chuỗi, k và n kiểu nguyên, và gía
trị hàm kiểu chuỗi? ví dụ Copy(‘ABCD’, 2, 3) = ‘BCD’.
Hàm Readkey : không có tham số, gía trị hàm kiểu ký tự, hàm nhận một
ký tự được gõ từ bàn phím.
Tóm lại, hàm có thể không có tham số hay có một đến nhiều tham số,
nhưng hàm luôn trả về một gía trị duy nhất.
Các tham số luôn luôn phải để trong cặp nháy đơn ( ), nếu có nhiều tham
số thì chúng phải phân cách nhau bằng dấu phẩy. Mỗi khi gọi hàm (call) ta
phải cho các tham số các gía trị cụ thể phù hợp với kiểu dữ liệu của tham số.
Ví dụ:
For k:=1 to 10 do S := S+ Sqrt(k);
y:= 3* Sqr(2) - Sin(pi/4) ;
Write( Chr(65) );
Cần phân biệt hai trạng thái của các tham số: trạng thái dùng để mô tả
hàm và trạng thái để gọi hàm. Khi khai báo hàm, các tham số chỉ mang tính
tượng trưng, nên gọi là tham số hình thức, còn khi gọi hàm, các tham số phải
là các biến hay các gía trị cụ thể nên gọi là các tham số thực sự.
Ví dụ, khi viết Sqrt(x) thì x là tham số hình thức, nó thay mặt cho một gía
trị nào đó. Còn khi gọi hàm y:=Sqrt(4); thì 4 là tham số thực sự.
12.2.2. Khai báo hàm tự viết:
Tất cả các hàm có sẵn trong Turbo Pascal gọi là các hàm chuẩn, chúng có
thể được sử dụng mà không cần khai báo. Tuy nhiên số lượng các hàm
chuẩn thường không đáp ứng được yêu cầu đa dạng của người sử dụng, cho
nên khi thảo chương, ta thường phải tự xây dựng thêm các hàm mới.
Các hàm tự viết cần được khai báo, theo cú pháp sau:
Function Tênhàm(tênthamsố: kiểuthamsố : kiểugíatrị ;
{ Các khai báo dùng trong hàm }
Const ...
Type ...
Var ...
Begin
{Các lệnh của hàm}
End;
Tên hàm và tên tham số phải được đặt theo đúng quy tắc của một tên.
Thông thường tên hàm nên đặt sao cho gợi nhớ gía trị mà nó chứa. Tên tham
số ở mức khai báo này chỉ mang tính tượng trưng nên mới gọi là tham số
hình thức.
Nếu có nhiều tham số hình thức thuộc cùng một kiểu dữ liệu thì chúng
được viết phân cách nhau bằng dấu phẩy, ví dụ:
Function F(x, y : Integer) :Real;
ở đây hai tham số x và y cùng kiểu Integer.
Nếu các tham số có kiểu dữ liệu khác nhau thì phải khai báo riêng ra và
dùng dấu chấm phẩy để phân cách, ví dụ:
Function F( x: Integer ; y: Real): Real;
ở đây tham số x có kiểu Integer, còn tham số y có kiểu Real.
Như đã nói, hàm là một chương trình con nên nó cũng có đầ? đủ các thành
phần như một chương trình bình thường, tức là cũng có thể có khai báo hằng
(Const), khai báo kiểu dữ liệu mới (Type) và khai báo biến (Var). Thân của
hàm là các lệnh được đặt giữa hai từ khóa Begin và End , kết thúc bằng dấu
chấm phẩy ";" chứ không phải là dấu chấm.
Chú ý Trong hàm không có khai báo sử dụng thư viện chuẩn (Uses).
12.2.3. Cấu trúc chương trình Pascal có hàm tự viết:
Một chương trình có chứa hàm tự viết gọi là chương trình chính, còn hàm
gọi là chương trình con. Khai báo hàm tự viết phải được để sau phần khai
báo biến VAR và trước BEGIN của thân chương trình chính.
Tóm lại cấu trúc của một chương trình có chứa hàm tự viết là như sau:
PROGRAM TênCtchính;
Uses ... { khai báo dùng thư viện chuẩn}
Const ... { khai báo hằng}
Type .... { khai báo kiểu dữ liệu mới}
Var .... { khai báo biến của ctrình chính}
Function Tênhàm(tênthamsố: kiểuthamso? : kiểugíatrị;
{ Các khai báo Const, Type, Var dùng trong hàm }
Begin
{Các lệnh của hàm}
End;
BEGIN
{ Các lệnh của chương trình chính}
END.
12.2.4. Kiểu dữ liệu của tham số và gía trị hàm:
Kiểu dữ liệu của kết qủa của hàm không the?là mảng (array), bản ghi
(record), tập hợp (set) hay tập tin (file).
Khai báo hàm như dưới đây là sai:
Function F( x: Integer) : array[1..10] of Real;
Kiểu dữ liệu của kết qủa của hàm có thể là các kiểu đơn giản, chuỗi,
hay con trỏ. Nếu là kiểu liệt kê, đoạn con hay chuỗi (trừ kiểu String) thì phải
định nghĩa trước thông qua từ khóa Type.
Ví dụ, các khai báo như sau là sai:
Function F( x: Real) : String[20];
Function F( x: Real) : 1..31;
Mà phải định nghĩa kiểu trước :
Type
Str20= String[20];
Ngay = 1..31;
rồi mới khai báo:
Function F( x: Real) : Str20;
Function F( x: Real) : Ngay;
Tuy nhiên, với kiểu String thì khai báo sau là đúng:
Function F( x: Real) : String;
Kiểu dữ liệu của tham số trong hàm và thủ tục thì không hạn chế.
Nhưng nếu là kiểu chuỗi (trừ kiểu String) hay kiểu tự xây dựng thì phải
được định nghĩa trước bằng từ khóa Type.
Ví dụ, khai báo sau là sai:
Function F( x : array[1..10] of Real) : Integer ;
Function F( St : String[20]) : Char ;
Mà phải định nghĩa kiểu trước :
Type
Kmang =Array[1..10] of Real;
Kstr20= String[20];
rồi mới khai báo:
Function F( x : Kmang) : Integer ;
Function F( St : Kstr20) : Char ;
Tuy nhiên, với kiểu String thì khai báo sau là đúng:
Function F( St : String) : Boolean ;
12.2.5. Các ví dụ :
Ví dụ 12.1: Nhập dãy các số thực x1, x2, ..., xn, tính tổng :
Phân tích: Giả sử đã có hàm Canba(z) tính căn bậc ba của z, tức là :
khi đó, tổng S được tính như sau:
S:=0;
For i:=1 to N do S:=S + Canba( x );
Ở đây hàm Canba được tính N lần ứng với các tham số thực sư?là các gía
trị x, i=1,..., N.
Vấn đề còn lại là phải viết hàm tính căn ba của z. Hàm này có tên là
Canba, tham số z kiểu thực, và gía trị hàm cũng kiểu thực, nó được xây dựng
như sau:
FUNCTION Canba( z: Real) :Real;
{ Hàm tính căn bậc ba của z}
Var
F: Real;
Begin
If z=0 then F:= 0;
If z>0 then F:= exp( 1/3*Ln(z) );
If z<0 then F:= - exp( 1/3*Ln(-z) );
Canba:=F ;
End;
Ðặt đoạn khai báo hàm trên đây vào ngay trước phần thân của chương
trình chính, ta được chương trình đầy đủ sau đây:
PROGRAM VID12_1;
Var
x : Array[1..20] of Real;
S : Real;
N, i : integer;
FUNCTION Canba( z: Real) :Real;
{ Hàm tính căn bậc ba của z}
Var
F: Real;
Begin
If z=0 then F:= 0;
If z>0 then F:= exp( 1/3*Ln(z) );
If z<0 then F:= - exp( 1/3*Ln(-z) );
Canba:=F ;
End;
BEGIN { vào chương trình chính}
Repeat
Write(‘ nhap N: ‘);
Readln(N);
Until ( N>0) and ( N<21);
S:=0;
For i:=1 to N do
begin
Write(‘nhap x[‘, i, ‘]:’);
Readln(x);
S:=S + Canba( x );
end;
Writeln(‘ S= ‘, S:8:2);
Readln;
END.
Chạy
Chép tập tin nguồn
Ví dụ 12.2: Nhập chuỗi St, đổi tất cả các ký tự của chuỗi thành chữ
thường, chẳng hạn St=‘ABcdE2’ thì đổi thành ‘abcde2’.
Giả sử đã có hàm Chuthuong(ch) đổi ký tự ch từ chữ hoa ra chữ thường,
ví dụ Chuthuong(‘A’)=‘a’, khi đó để đổi tất cả các ký tự của chuỗi St ra chữ
thường ta dùng lệnh:
Fo...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status