1. Lợi ích của dùng chương trình con(CTC)– Chương trình có nhiều phân đoạn mỗi phân đoạn thực hiện một chức năng nào đó{ khi đó ta sử dụng ctc để làm các phân đoạn trên} Show
2. Khai báo CTC– Nhắc lại cấu trúc của một chươn trình PROGRAM Tên_chương_trình; { Tên chương trình} USES ...; {Khai báo thư viện} CONST ...;{Khai báo hằng} TYPE ...;{Khai báo kiểu} VAR ...;{Khai báo biến} Khai báo CTC BEGIN {Chương trình chính} <các lệnh>; END. Như vậy phần khai báo CTC nằm ở phần cuối
của phần khai báo FUNCTION <tên hàm>(Danh sách ác tham số):<Kiểu dữ liệu>; [Khai báo Const, Type, Var] BEGIN <các lệnh trong thân hàm>; <tên hàm>:=<Giá trị>; END; Chú ý luôn có phép gán tên hàm cho giá trị để hàm trả về giá trị khi được gọi Function tong(x,y:integer):integer; {Do có giá trị trả về} var s:integer; begin s:=x+y; tong:=s; end; – Lời gọi hàm <tên hàm>(danh sách các tham số thực); Ví dụ: b. Khai báo và lời gọi thủ tục PROCEDURE <tên thủ tục>(Danh sách các tham số);{không có giá trị trả về} [Khai báo Const, Type, Var] BEGIN <các câu lệnh>; END; Ví dụ: Procedure inso(n:integer); var i:inteher; Begin for i:=1 to n do write(i:5); end; – Lời gọi thủ tục <tên thủ tục>(danh sách các tham số thực); Ví dụ: 3. Biến toàn cục và biến cục bộ– Biến toàn cục là biến được khai báo trong chương trình chính. Các biến này co thẻ được dùng ở mọi nơi trong chương trình và tồn tại trong suốt thời gian làm việc của chương trình PROGRAM vidu; Var a,b,c:integer; {3 biến toàn cục} PROCEDURE thutuc(n:integer);{n là biến cục bộ} var i:integer; {i là biến cục bộ} begin for i:=1 to 10 do writeln(i); end; BEGIN a:=5;b:=6;c:=8; thutuc( a); thutuc( b); thutuc( c); readln; END. – Trong trường họp biến cục bộ trùng tên với biến toàn cục thì máy không bị nhầm lẫn mà sẽ thực hiện trên biến cục bộ. Biến toàn cục không bị ảnh hưởng. 4. Cách truyền tham số trong chương trình con– CTC không cần có tham số (sau tên ctc) nếu không dùng đến chúng hoặc dùng trực tiếp biến toàn cục Procedure inso(a:integer; ch:char); begin {các lệnh của CTC} end; {gọi} inso(13,'a'); {lời gọi đúng} inso('a',13); {loi goi sai} inso(13);{lời gọi sai} – Tham số hình thức (đối) là các tham số sau tên hàm và thủ tục trong khai báo. 5. Phân biệt cách sử dụng hàm và thủ tụcHàm khác thủ tục ở chỗ hàm trả về một giá trị cho lệnh gọi thông qua tên hàm còn thủ tục thì không. *Dùng hàm *Dùng thủ
tục Chú ý: Nếu một công việc có thể làm bằng hàm thì chắc chắn sẽ làm được bằng thủ tục {tuy nhiên sẽ phức tạp hơn khi dùng hàm} nhưng một chương trình làm bằng thủ tục thì chưa chắc ta đã làm được bằng hàm. Đối với Borland Pascal 7.0 ta có thể gọi hàm như gọi một thủ tục. Không nhất thiết phải lấy giá trị trả về. Để thực hiện được điều này trong menu Options >Compiler cần khai báo cú pháp mở rộng (Extended syntax), hoặc trong chương trình cần có dẫn hướng biên dịch {$ X+}. Nếu không, khi biên dịch (gõ F9) Pascal sẽ thông báo lỗi “Error 122: Invalid variable reference”. 6. Tính đệ quy của chương trình conMột CTC trong Pascal có thể gọi về chính nó. Một lời gọi như thế gọi là một lời gọi đệ quy Ta xét ví dụ sau: function giai_thua(n:integer):longint; begin if n=0 then giai_thua:=1 else giai_thua:=n*giai_thua(n-1); end; – Lưu ý:
Bài viết gốc: vietsource.net Tham số giá trị trong Pascal là gì?– Tham trị: là các tham số được khia báo mà không đứng sau từ khóa var. Các tham số thực có thể là các giá trị, hằng, biến. Tham trị có thể thay đổi trong ctc nhưng sau khi kết thúc ctc giá trị của nó trở về như ban đầu.
Tham số hình thức Pascal là gì?Tham số thực sự là các tham số sau tên hàm và thủ tục trong lời gọi. Tham biến: là các tham số được khai báo sau từ khóa var. Các tham số thực phải là các biến chứ không được là giá trị. Tham biến có thể được thay đổi trong chương trình con và sau khi ra khỏi chương trình con nó vẫn giữ giá trị thay đổi đó.
Tham số giá trị là gì?Các tham số được truyền bằng giá trị được gọi là tham trị. Do chỉ có giá trị được truyền vào chương trình con, tham số thực sự không nhất thiết phải là một biến thông thường mà có thể là hằng giá trị, hằng biến, biểu thức trả về giá trị,...
Truyện tham số là gì?Khi bạn gọi một phương thức với một đối số, giá trị của đối số được truyền tới tham số. Đây được gọi là truyền tham trị (pass-by-value). Nếu đối số là một biến thay vì một hằng giá trị, giá trị của biến được truyền tới tham số.
|