• I: Khái niệm chương trình con:• - Chương trình con là một dãy lệnh miêu tả 1 số thao tác nhất định và có thể được thực hiện được gọi từ nhiều vị trí trong chương trình.. • -Lợi ích của
Trang 2• I: Khái niệm chương trình con:
• - Chương trình con là một dãy lệnh miêu tả 1 số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.
• -Lợi ích của việc sử dụng chương trình con:
+đơn giản hóa công việc lập trình:
: tránh lặp đi lặp lại một thao tác nhất định
: hỗ trợ chương trình chính
: thuận tiện cho việc phát triển, nâng cấp CT
+mở rộng khả năng ngôn ngữ
+phục vụ cho quá trình trừu tượng hóa
Trang 3II:phân loại và cấu trúc chương trình con:
• -phân loại: gồm 2 loại
+ Hàm (function): trả về giá trị qua tên hàm
VD: hàm length(s), mod(a,b), …
+ Thủ tục (procedure):giá trị trả về nằm trong các tham số hình thức VD: delete,insert …
-cấu trúc chương trình con:
<phần đầu>
[<phần khai báo>]
<phần thân>
Bắt buộc phải có, gồm: tên chương trình, tham số hình thức
Có thể có hoặc không (các biến, hằng khai báo như chương trình đã học)
Là dãy câu lệnh thực hiện yêu cầu của CTC
Trang 4– Tham số hình thức: là các biến vào ra của 1 CTC.
– Biến cục bộ: là các biến khai báo riêng của 1CTC và chỉ có hiệu lực trong CTC đó
– Biến toàn cục: là các biến được sử dụng cho mọi chương trình con+chính, hay là các biến của 1 chương trình chính – Tham số thực sự: là các biến hoặc hằng của chương trình
khác chứa giá trị của tham số hình thức khi thực hiện
chương trình con
– Lưu ý lệnh exit:
khi dùng trong 1 CTC sẽ thoát khỏi cả CTC và trở về
vị trí đang truy xuất
Khi dùng trong chương trình chính thì chương trình
chính sẽ dừng lại tại vị trí được gọi
– Ví dụ: tính N!
Trang 5Var k:byte;
Function gthua(n:byte):longint;
Var i:byte;
Begin
Gthua:=1;
For i:=2 to n do
gthua:=gthua*I;
K:=0;
End;
Var m:byte;
Begin
Readln(m);
Writeln(gthua(m));
Writeln(k);
Readln;
End.
Vậy:
n: là tham số hình thức; i:biến cục bộ;
m:tham số thực sự;
k:biến toàn cục;
Trang 6• III: cách viết và sử dụng thủ tục (TT):
• Procedure <tên TT>(<danh sách Tham số>);
• <phần khai báo>;
• Begin
• <dãy câu lệnh>;
• End ;
Trong đó :
– Tên TT: tuân theo quy tắc đặït tên của pascal;
– Danh sách tham số, phần khai báo: có thể có hoặc
không;
Lưu ý: trong dach sách tham số, biến nào trả về sẽ có VAR phía trước.
Ví dụ: viết thủ tục tính diện tích hình chữ nhật với 2
cạnh a,b
Trang 7procedure dt (a,b:real;var s:real ); begin
s:=a*b;
end;
var a,b,s:real;
begin
readln(a,b);
dt(a,b,s);
writeln(s);
readln;
end
Trang 8• IV: cách viết và sử dụng hàm:
Function <tên hàm>(<danh sách Tham số>):<kiểu
dữ liệu> ;
• <phần khai báo>;
• Begin
• <dãy câu lệnh>;
• End ;
Trong đó :
– Tên hàm: tuân theo quy tắc đặït tên của pascal;
– Danh sách tham số, phần khai báo: có thể có hoặc
không;
Lưu ý: kiểu dữ liệu là kiểu giá trị cần trả về;
Ví dụ: viết hàm tính diện tích hình chữ nhật với 2 cạnh a,b
Trang 9Function dt (a,b:real): real;
begin
dt:=a*b;
end;
var a,b:real;
Begin
Readln(a,b);
writeln(dt(a,b));
readln;
end
Trang 10hàm Thủ tục
Tham số
thực sự
Có thể là hằng hoặc biến
Chỉ có thể là biến với tham số cần trả về
Số giá trị trả
về
Kiểu dữ liệu
trả về
Thường là các kiểu số, chuỗi Lưu ý không dùng mảng
Tất cả các kiểu dữ liệu đã học hoặc tự định
nghĩa