Chương 9: Chương trình con (thủ tục và hàm).

Một phần của tài liệu Giáo trình lập trình cấu trúc pascal (Trang 41 - 43)

9.1 Khái niệm về chương trình con: (Sub-program)

Trong khi lập trình chúng ta thường gặp những đoạn chương trìnhđược lặp đi

lặp lại nhiều lần ở những chỗ khác nhau. Để tránh r ườm rà, những đoạn chương

trình này được thay thế bằng một ch ương trình con và khi cần ta chỉ việc gọi chương trình con đó với các tham số tương ứng cần thiết. Nếu một ch ương trình rất dài, sẽ khó khăn cho việc gỡ rối, hiệu chỉnh. Ta có thể phân chia bài toán thành các bài toán con, mỗi bài toán con ứng với một chương trình con và như

vậy sẽ dễ dàng kiểm tra gỡ rối. Việc chia nhỏ ch ương trình thành các Modul nhỏ

có thể ví như nguyên tắc " Chia để trị".

Chương trình con được dùng rất phổ biến. Vì vậy chúng ta cần nắm vững các

kỹ thuật lập chương trình con.

9.2 Procedure và Function (Thủ tục và hàm T)

Có hai loại chương trình con: Procedure (thủ tụct)

• Function (hàmh).

Sự khác nhau cơ bản của hai loại này là Function trả lại kết quả cho tên của

Function, còn Procedure không trả lại kết quả thông qua tên của nó.

Cấu trúc chung của một ch ương trình trong đó có phần khai báo chương trình

con như sau:

Program TenChuongTrinh; (*Tiêu đề *)

Label (*Khai báo các nhãn *); ...

Const (*Khai báo các hằng *);

...

Type (*Mô tả kiểu M *);

...

Var (*Khai báo các biếnK *);

...

Procedure TenThuTuc (khai báo các tham sốk, nếu cần);

(*Khai báo Label, Const, Type, Var của riêng Procedure, nếu cần *).

...

Begin

... (*Thân chương trình conT *).

End;

Function TenHam(khai báo các tham sốk, nếu cần): kiểu _dữ _liệu;

(*Khai báo Label, Const, Type, Var của riêng Procedure, nếu cần *).

Begin

End; Begin

...(* Thân chương trình*)

End.

Theo qui định này, LABEL trước, rồi đến CONST, TYPE, VAR cuối cùng là các PROCEDURE, các FUNCTI ON. Phần nào không có thì bỏ đi, đương nhiên

không thể thiếu phần thân chương trình chính.

Để minh hoạ, chúng ta xét một ch ương trình sau: Ví dụ 1: Program PhuongTrinhBacHai; Uses Crt; Var A,b,c,dx,x1,x2: Real; Procedure Vao; Begin

Write(' Vào hệ số a ='); Readln(a);

Write(' Vào hệ số b ='); Readln(b);

Write(' Vào hệ số c ='); Readln(c);

End;

Procedure TinhDelta; Begin

Dx:=b*b-4*a*c;

If dx>=0 Then DeltaKhongAm Else DeltaAm;

End; Procedure DeltaKhongAm; Begin x1:=(-b+Sqrt(dx))/(2*a); x2:=(-b-Sqrt(dx))/(2*a); End; Procedure DeltaAm; Begin

Writeln('Phương trình vô nghiệm');

End; Begin

Vao; TinhDelta;

End.

Trong chương trình trên, tất cả các biến đều được khai báo ở chương trình chính, các biến ấy được gọi là biến toàn cục, biến toàn cục có ý nghĩa trong toàn bộ chương trình (nghĩa là các chương trình conđều dùng được). Trong chương trình con cũng có phần khai báo riêng của nó, các biến đó gọi là biến cục bộ. Biến cục

Cấu trúc chung của procedure v à function như sau:

Procedure <Tên thủ tục > (Khai báo các tham số hình thứcK);

<Khai báo: Label, Const, Type, Var và thậm chí cả các procedure và function > ...

Begin

.... (*Thân chương trình conT *)

End;

Function như sau:

Function <Tên hàm > (khai báo các tham số hình thứck): kiểu_dữ_liệu_của

_hàm;

<Khai báo: Label, Const, Type, Var và thậm chí cả các procedure và function > ...

Begin

.... (*Thân chương trình conT *)

End;

Kết thúc chương trình con bằng dấu chấm phẩy (;)không phải là dấu chấm k (.)như chương trình chính.n

9.3 Chuyển tham số cho chương trình con.

Chương trình con có thể được tính toán trực tiếp với các biến toàn cục hoặc tự

khai báo biến cục bộ của nó và khi khai báo cục bộ thì phải truyền tham số cho chương trình con. Có hai cách truyền tham số: truyền tham biến (variable

parameter) và truyền tham trị (value parameter). Sau đây là nội dung cụ thể.

Một phần của tài liệu Giáo trình lập trình cấu trúc pascal (Trang 41 - 43)

Tải bản đầy đủ (PDF)

(91 trang)