Chương trình con là các đoạn chương trình được lặp đi lặp lại thường được lập sẵn trong thư viện CTC. Và để hiểu rõ hơn về điều này mời các bạn tham khảo bài giảng Ngôn ngữ lập trình Pascal: Chương 9 - Chương trình con - Thủ tục và hàm (Procedure và Function) sau đây.
Trang 2Khái niệm về chương trình con
Các đoạn c/t được lặp đi lặp lại thường
được lập sẵn để trong thư viện CTC.
Chia thư viện thành các nhóm (UNIT)
Trang 3 Function là CTC trả lại một giá trị kết quả qua tên của nó và do đó nó được sử dụng trong các biểu thức.
Trang 4PROCEDURE Tên_Thủ_Tục(Các tham số);
Trang 5Tieu_de; Enter(A, B); Enter(C, D);
Z := Chia (A, B)*Chia(C, D);
Writeln('Ti so (A/B)*(C/D) la : ', Z);
Write(' Hay an Enter de tiep tuc !'); Readln;
End.
Trang 6writeln('*****************************'); writeln('* MINH HOA CHUONG TRINH CON *'); writeln('*****************************')
End;
Trang 8lại }
End;
End;
Bài tập: Tính Z = (A/B)/(C/D)
Trang 9Tham biến ? tham trị
Các tham số đóng vai trò cung cấp "tư liệu đầu vào" sẽ là các tham số giá trị Khi ra khỏi CTC, giá trị của tham trị không thay đổi so với lúc
vào Ví như mượn vật mẫu.
Tham số là các kết quả muốn thu lại được sau CTC: chắc chắn phải khai báo là tham biến
(xem tham số trong thủ tục tính x 2 ở ví dụ
trên) Ví như mượn xà phòng tắm.
Trang 10Program Tham_so;
Var
a, b: integer;
(* -*) Procedure Thidu_Thamso(x:integer; Var y:integer); Begin
x:=x+1; y:=y+1; writeln(x:6, y:6);
End;
(* -*) Begin
Trang 11Procedure ? Function
Chương trình con là Function khi và chỉ khi
thỏa mãn đồng thời ba yêu cầu sau:
Nếu ta muốn nhận lại một kết quả (và
Trang 135 giá trị của I toàn cục
7 giá trị của I địa phươ ng
5 giá trị của I toàn cục
Trang 16Tháp Hà nội
Hãy di chuyển chồng đĩa từ cọc 1 sang cọc 2 với điều kiện
Mỗi lần chỉ chuyển một đĩa
Có thể chuyển từ cọc này sang cọc khác
Đĩa bé bao giờ cũng phải nằm trên đĩa lớn
Với 64 đĩa, mỗi lần 1 giây, mất 58 tỉ năm
Trang 18Bài tập về tính đệ qui
4 Tạo dãy số Fibonacci
Dãy số Fibonacci là dãy số F1, F2, F3, Fn được tạo ra với công thức:
Fn=Fn-1 + Fn-2 Với F1=1, F2=1 Thí dụ: 1, 1, 2, 3, 5, 8, 13, 21
Hãy lập chương trình dùng chương trình con đệ qui để tạo ra dãy số đó.
Trang 19SYSTEM các CTC về hệ thống.
Các UNIT trên nằm trong file TURBO.TPL (TPL:
Turbo Pascal Library) nên sẽ không có các tệp như
CRT.TPU, SYSTEM.TPU
GRAPH UNIT về đồ hoạ, GRAPH.TPU.
Tham khảo ' Turbo PASCAL, cẩm nang tra cứu '
Trang 20 Chương trình của bạn đã quá lớn, có nhiều CTC
đã hoàn chỉnh, không phải dịch đi dịch lại nên nhóm các CTC lại thành UNIT theo nhóm chức
năng Thí dụ (nên tra cứu tài liệu):
KEYBOARD.PAS, UNIT chứa CTC bàn phím
Khi dịch các UNIT này sẽ nhận được *.TPU
(Turbo PASCAL Unit).
Dịch CT chính (Primary file) EDIT.PAS sẽ cho tệp EXE sau khi kết nối các modun, UNIT lại với nhau.
Trang 21KHOI1.TPU KHOI2.TPU TEST.OBJ
Soạn thảo (Editor) Primary file
Dịch (Compile)
Kết nối (Link)
+
VIDU1.EXE
Trang 22Procedure Sound(F) và Procedure NoSound;
Function KeyPressed: Boolean [CRT Unit]
Function ReadKey: Char; [CRT Unit]
Function Frac(X): real;
Function Int(X): integer;
Function Random: real;
Function Random(Number): real;
Procedure Randomize;
Function UpCase(ch);