2. Đặt vấn đề
Yêu cầu: Xác định input, ouput và viết (cài đặt)
chương trình tính:
a. Nhóm 1: an
b. Nhóm 2: bm
c. Nhóm 3: cp
d. Nhóm 4: dq
( a, b, c, d, m, n, p, q đều là số nguyên dương)
3. Chương trình tính tổng: an+bm+cp+dq
Program
Var Tluythua, luythua1, luythua2, luythua3, luythua4:Real;
a, b, c, d : Real;
i, n, m, p, q : integer;
Tinh_tong;
Begin
Write(‘Hay nhap du lieu theo thu tu a,b,c,d,m,n,p,q’);
Readln(a,b,c,d,m,n,p,q);
4. Var j:integer
Tich:=1.0;
For j:=1 to n do
Tich:=Tich*a;
luythua1:=1.0;
For i:=1 to n do
luythua1:=luythua1*a;
luythua2:=1.0;
For i:=1 to m do
luythua2:=luythua2*b;
luythua3:=1.0;
For i:=1 to p do
luythua3:=luythua3*c;
luythua4:=1.0;
For i:=1 to q do
luythua4:=luythua4*d;
Write(‘Tong luy thua = ’,Tluythua: 8:4);
Tluythua := luythua1 + luythua2 + luythua3 + luythua4;
Readln;
End.
5. Function luythua(x : real; k : integer) : real;
Var Tich : real;
J : integer;
Begin
End;
Tich := 1.0;
For j := 1 to k do
Tich := Tich*x;
Luythua := Tich;
Program chuongtrinhcon;
Tluythua := luythua(a,m) + luythua(b,n) + luythua(c,p) + luythua(d,q);
END.
BEGIN
Write(‘Hay nhap du lieu theo thu tu a,b,c,d,m,n,p,q’);
Readln(a,b,c,d,m,n,p,q);
6.
7. NỘI DUNG
Khái niệm chương trình con
Lợi ích của chương trình con
Phân loại chương trình con
1
2
3
Khái niệm hàm và thủ tục4
8. - Các chương trình giải các bài toán phức tạp
thường rất dài.
+ Khó đọc, khó hiểu và khó hiệu chỉnh.
+ Đặt ra vấn đề làm sao dễ đọc, dễ hiểu và dễ
hiệu chỉnh hơn.
Một bài toán thường có thể phân tích thành
nhiều bài toán con nhỏ hơn.
M
A B C D
9. 1. Khái niệm chương trình con.
- Chương trình con là một dãy lệnh mô tả một
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.
Trưởng
nhómViệc A
Việc B
10. Lợi ích của việc sử dụng chương trình con:
- Tránh được sự lặp lại cùng một dãy lệnh. Khi cần dùng
có thể gọi lại chương trình con đó.
- Hỗ trợ việc thực hiện các chương trình lớn và phức tạp
- Phục vụ quá trình trừu tượng hoá
- Mở rộng khả năng ngôn ngữ lập trình thành thư viện
cho nhiều ngừơi dùng.
- Thuận tiện cho phát triển và nâng cấp chương trình.
11. a. Phân loại
2. Phân loại và cấu trúc của chương trình con.
o Hàm (Function): Là chương trình con thực hiện một
số thao tác nào đó và trả về một giá trị qua tên của nó.
Sin(x) nhận giá trị thực x và trả về giá trị sinx.
Cos(x) nhận giá trị x và trả về giá trị cosx.
Sqrt(x) nhận giá trị x và trả về giá trị căn bậc 2
của x.
length(x) nhận xâu x và trả về độ dài của sâu x.
Hàm (Function)
Thủ tục (Procedure)
12. o Thủ tục (Procedure): Là chương trình con thực
hiện một số thao tác nhất định nhưng không trả về
giá trị qua tên của nó.
2. Cấu trúc và phân loại chương trình con.
writeln,
readln,
delete,
insert,...
b. Phân loại
Hàm (Function)
Thủ tục (Procedure)
13. 2. Cấu trúc và phân loại chương trình con.
a. Cấu trúc chương trình con
<phần đầu>
[<phần khai báo>]
<phần thân>
Cấu trúc chương trình con tương tự chương trình chính,
nhưng nhất thiết phải có phần đầu để khai báo tên, nếu là
Hàm thì phải có khai báo kiểu dữ liệu trả về.
14. 2. Cấu trúc và phân loại chương trình con.
a. Cấu trúc chương trình con
Phần khai báo: có thể khai báo cho dữ liệu vào và ra,
các hằng được sử dụng trong chương trình con.
Phần thân: Là các dãy lệnh được thưc hiện trong
chương trình con từ dữ liệu vào và được kết quả như
mong muốn.
Phần đầu: dùng để khai báo tên, nếu là hàm phải khai
báo kiểu dữ liệu cho giá trị trả về của hàm.
15. CHƯƠNG TRÌNH CON
HÀM (Function)
- Là chương trình con
thực hiện dãy lệnh.
- Trả về giá trị cụ thể
qua tên của nó.
THỦ TỤC (Procedure)
- Là chương trình con
thực hiện dãy lệnh.
- Không trả về giá trị nào
qua tên của nó.
Ví dụ hàm:
3! = 6
32= 9
Sin(30o) = 0.5
Ví dụ thủ tục:
Readln;
Delete;
Writeln;
16. 17
Function <TÊNHÀM>[(<ds tham sỐ>)]
: Kiểu của hàm;
[< Phần khai báo >]
Begin
[<Dãy lệnh>];
TÊNHÀM := Giá trị;
End;
Procedure <TÊNTHỦTỤC> [(<ds tham số>)];
[< Phần khai báo >]
Begin
[<Dãy lệnh>];
End;
HÀM(Function) THỦ TỤC (Procedure)
17. 18
1. Hoán đổi hai số a và b: Hoandoi(a,b)
Các bài toán sau dùng hàm hay thủ tục:
2. Tìm ước chung lớn nhất của a và b: UCLN(a,b)
3. Tính độ dài của 1 xâu a: Length(a)
4. Kiểm tra a,b,c có là ba cạnh của một tam giác: KT(a,b,c)
Function Dodai(a:string;n:integer;): integer;
Function tamgiac (a,b,c: word): Boolean;
Procedure Hoandoi (a,b:real)
Function UCLN (a,b: integer): integer;
18. Khái niệm
chương trình
con
Phân loại CTC
CỦNG CỐ
Lợi ích của
chương trình
con
TRỌNG TÂM
Phân biệt hàm
và thủ tục
Là 1 dãy lệnh
mô tả 1 số thao
tác nhất định.
Có thể được
gọi từ nhiều vị
trí trong
chương trình.
Tránh được sự
lặp lại cùng một
dãy lệnh.
Hỗ trợ việc thực
hiện chương
chình lớn.
Phục vụ cho quá
trình trừu tượng
hóa.
Mở rộng ngôn
ngữ, dễ nâng
cấp.
Hàm: trả
về một giá
trị qua tên
của nó
Thủ tục:
không trả về
giá trị nào đó
qua tên của
nó.
19.
20. KIỂM TRA BÀI CŨ
1. Nêu khái niệm chương trình con và
những lợi ích của CTC?
2. Phân loại chương trình con? Sự khác
biệt giữa hàm và thủ tục?
21. NỘI DUNG
Cấu trúc của chương trình
Biến cục bộ, biến toàn cục, TSHT
Củng cố bài hoc4
1
2
3 TS thực sự và thực hiện CTC
23. SỰ KHÁC NHAU GIỮA CHƯƠNG TRÌNH
CHÍNH VÀ CHƯƠNG TRÌNH CON
Trong cấu trúc CTC phần đầu và phần
thân nhất thiết phải có, phần khai báo có
thể có hoặc không.
Sau End kết thúc thân chương trình con
phải là dấu chấm phẩy (;).
24. 2. Phân loại và cấu trúc của chương trình con.
b. Cấu trúc chương trình con
Tham số hình thức:
- Các biến được khai báo cho dữ liệu vào/ra được gọi là
tham số hình thức của chương trình con.
Tham số thực sự:
- Các hằng số hoặc biến chứa dữ liệu tương ứng với các
tham số hình thức đặt trong cặp ngoặc ( ). Các hằng và
biến này được gọi là các tham số thực sự.
25. Function luythua(x : real; k : integer) : real;
Var Tich : real;
J : integer;
Begin
End;
Tich := 1.0;
For j := 1 to k do
Tich := Tich*x;
Luythua := Tich;
Program chuongtrinhcon;
BEGIN
Writeln(‘Luy thua cua 2 mu 3 la:’, luythua(2,3));
END.
Tính 2 lũy thừa 3 Tham số
hình thức
Tham số
thực sự
26. BIẾN CỤC BỘ VÀ BIẾN TOÀN CỤC
o Các biến được khai báo dùng riêng cho chương trình
con được gọi là biến cục bộ. Chương trình chính và
các chương trình con khác không thể sử dụng được
các biến này.
o Các biến được khai báo ở chương trình chính là biến
toàn cục và các chương trình con đều sử dụng được
các biến này.
27. program binhphuong;
var a, x: real;
procedure binhphuong1 (b: real; var y: real);
begin
y:=b*b;
Writeln(‘ Binh phuong cua so do la’,y:4:2);
end;
BEGIN
binhphuong1(4,x);
Write(‘ Nhap so can tim a=’); readln(a);
binhphuong1(a,x);
readln;
END.
Biến cục bộ
Biến toàn cục
28. Uses crt;
Var T, a, b, c, d:real;
N,m,p,q : integer;
Begin
write(‘nhap a, b, c, d: ‘); readln(a,n,b,m,c,p,d,q);
Write(‘Luy thua cua 2 mu 3 la:’, luythua(2,3));
T:=Luythua(a,n)+Luythua(b,m)+Luythua(c,p)+Luythua(d,q);
Writeln(‘Tong cac luy thua la: ‘,T);
Readln;
End.
Function Luythua ( x, k : integer) : integer ;
Var i, LT : integer;
begin
LT:=0;
for i:=1 to k do
LT:=LT * x;
Luythua:=LT;
End;
Biến toàn cục
Biến cục bộ
Tham số
hình thức
Tham số
hình thức
Xác định biến toàn cục và biến cục bộ, TSHT,
TSTS trong đoạn code bên dưới:
Tham số
thực sự
29. 2. Phân loại và cấu trúc của chương trình con.
c. Thực hiện chương trình con
Cách thực hiện chương trình con
- Để thực hiện gọi một chương trình con, ta cần phải có
lệnh gọi, bao gồm tên chương trình con với các tham số(nếu
có) và các hằng số hoặc biến chứa dữ liệu tương ứng với
các tham số hình thức đặt trong cặp ngoặc ( ). Các hằng và
biến này được gọi là các tham số thực.
VD: Sqr(225);
Luythua(a,n);
HCN(Chieudai,Chieurong);HCN(5,4)
30. Cấu trúc của
CTC
Đ/N biến cục
bộ, biến toàn
cục và TSHT
CỦNG CỐ
Sự khác nhau
giữa chương
trình chính và
CTC
TRỌNG TÂM
Đ/N TSTS và
cách thực
hiện CTC
<phần đầu>
[<phần khai báo>]
<phần thân>
CTC: phần đầu
và phần thân
nhất thiết phải
có, phần khai
báo có thể có
hoặc không.
Sau End kết
thúc thân
chương trình
con phải là dấu
chấm phẩy (;).
<Tên chương
trình con>
(<tham số thực
sự>);
Các biến
được khai
báo để dùng
riêng trong
CTC là BCB.
Biến mà tất
cả các CTC
đều dung
được là BTC.
31. Vd: Tính lũy thừa = an+bm+cp+dq .
- Bài toán trên có thể phân tích thành những bài toán
nhỏ hơn là: Bài toán tính an , tính bm, tính cp, tính dq.
- Với 4 bài toán nhỏ ở trên ta có thể giao cho 4 người giải,
như thế công việc sẽ nhẹ nhàng hơn.
- Mỗi bài toán con lại chia thành những bài toán con nhỏ hơn.
- Quá trình làm “Mịn” như thế được gọi là cách thiết kế từ
trên xuống.
Vd: Tính = (Sin (a))n + (Cos(b))n .