Chào mừng thầy cô và các bạn
Tham dự tiết học hôm nay
Giáo viên: Nguyễn Thị Trang
1
Trường THPT chuyên Biên Hòa
Bài 17: Chương trình con và phân loại
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
Giáo sinh: Nguyễn Thị Trang
2
Giới thiệu
11A1
11A2
Là lá la! Hôm nay là ngày trực vệ
Continue…
11A3
11A4
sinh…
Ta sẽ làm vệ sinh ở lớp
nào đây nhỉ?
Hơ… Hơ. Sao
nhiều thế!
3
Giới thiệu
phút
sau…
Phải làm sao30bây
giờ…!
Ôi… Mệt… quá!
Àh. Mình có ý này.
He he!
4
Giới thiệu
Cậu dọn lớp này…!
Còn cậu dọn lớp kia…!Mình biết rồi!
Dạ!
5
Giới thiệu
Bạnbiết
ấy đã
chiatình
công
việc cho
người.
Đố các bạn
trong
huống
trênnhiều
bạn Khỉ
đã làm thế nào đã thực hiện công
việc của mình một cách hiệu quả?
6
Giáo sinh: Nguyễn Thị Trang
Giới thiệu
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.
7
Giới thiệu
Bài toán: tính tổng các lũy thừa sau:
n m p q
Tluythua = a + b + c + d
Nhận xét:
n m p
q
Bài toán có thể chia thành 4 bài toán con. Đó là 4 bài toán để tính a , b , c , d có thể
giao cho 4 người thực hiện. Giá trị Tluythua là tổng kết quả của 4 bài toán đó.
8
Giới thiệu
BÀI TOÁN
Bài toán nhỏ
Bài toán nhỏ
Bài toán nhỏ
Bài toán nhỏ
Bài toán nhỏ
Bài toán nhỏ
Nhóm trưởng
Việc
A
Vi ệc B
9
Giới thiệu
Khi lập trình để giải bài toán trên máy tính có thể phân chia chương trình
CT chính
chính thành các khối (môđun), mỗi khối bao gồm các lệnh giải một bài toán
CTC 1
con nào đó.
CTC 2
Mỗi khối lệnh sẽ được xây dựng thành một chương trình con.
CTC 3
Chương trình con cũng có thể được xây dựng từ các chương trình con khác
CTC 4
CTC 4.1
CTC 4.2
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.
Việc A
Trưởng nhóm
Việc B
11
Vậy sử dụng chương trình con có lợi
ích gì?
Lợi ích chương trình con
Program
Var
tinh_tong;
TLuythua, Luythua1,
Luythua2, Luythua3,
real;
a,b,c,d:real;
Luythua4:
i,n,m,p,q:integer;
Begin
Write('Nhap theo thu tu
a,b,c,d,m,n,p,q‘);
Readln(a,b,c,d,m,n,p,q);
Luythua1 : =
For i:= 1 to
Quan sát chương trình
1.0;
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;
TLuythua:=Luythua1+
Luythua2+Luythua3+Luythua4;
Writeln(‘Tong luy thua =',
TLuythua:8:4);
Readln;
End.
13
Lợi ích chương trình con
Bốn đoạn lệnh tương tự nhau trong chương trình là
Nếu muốn tính tổng của 50 lũy
Luythua1:= 1.0;
1
For i:=1 to n do
Luythua1:= Luythua1 * a;
thừa thì sao? Đây là chương trình con đại diện đặt tên là
trình dài và khó theo dõi
Luythua2:= 1.0;
2
For i:=1 to m do
Luythua2:= Luythua2 * b;
Luythua3:= 1.0;
3
For i:=1 to p do
Var j : integer;
Tich:= 1.0;
For j:=1 to k do
Tich := Tich* x;
Luythua3:= Luythua3 * c;
Luythua4:= 1.0;
4
For i:=1 to q do
Luythua4:= Luythua1 * d;
k
biến x, k( tương ứng là x
Nhiều đoạnluythua(x,k),
lệnh lặp với
lại hai
nhau
làm cho chương
14
Lợi ích chương trình con
Luythua1:= 1.0;
1
For i:=1 to n do
n
Tính a : Luythua(a,n)
Luythua1:= Luythua1 * a;
Luythua2:= 1.0;
2
For i:=1 to m do
Luythua2:= Luythua2 * b;
Luythua3:= 1.0;
3
m
Tính b : Luythua(b,m)
For i:=1 to p do
p
Tính c : Luythua(c,p)
Luythua3:= Luythua3 * c;
Luythua4:= 1.0;
4
For i:=1 to q do
q
Tính d :Luythua(d,q)
Luythua4:= Luythua1 * d;
TLuythua:=Luythua(a,n)+Luythua(b,m)+Luythua(c,p)+Luythua(d,q)
15
Lợi ích chương trình con
Chương trình sử dụng chương trình con
Program tinh_ tong;
Var
Đây là chương trình con
Tluythua : real;
Chương trình con được gọi
Begin
thực hiện
Writeln(‘ Hay nhap du lieu theo thu tu a, b, c, d, n, m, p,
a, b,c ,d : real;
q’);
n, m ,p, q: integer;
Readln(a, b, c, d, m, n, p , q);
Function luythua(x: real; k: integer): real;
Tluythua:= luythua(a,n) + luythua(b,m)+ luythua(c,
var Tich: real; J: integer;
p) + luythua(d, q);
begin
Tich:=1.0;
For j:=1 to k do
Writeln(‘Tong luy thua la: ’, Tluythua:8:4);
Tich:= Tich*x;
Readln;
Luythua: = Tich;
End.
end;
Giáo sinh: Nguyễn Thị Trang
16
Lợi ích chương trình con
Tránh được việc phải viết lặp đi lặp lại cùng một dãy lệnh nào đó
tương tự.
Hỗ trợ thực hiện các chương trình lớn lên đến hàng nghìn, hàng vạn
lệnh.
Phục vụ cho quá trình trừu tượng hóa
17
Chương trình con có mấy loại
18
Đưa ra câu trả lời của các lệnh sau:
1.
2.
3.
4.
5.
1.
2.
3.
4.
Sqr(3) .....
9
Abs(-5) ......
?
4
Sqrt(16) …..
Trả về 1 giá trị
5
Length(‘abc’) .....
3
Eof(f) ……………………True/False
Clrscr; ………………. Lau màn hình
Nhập a,b
Readln(a,b); ……………
Writeln(‘Hello’); ………….....
Close(f); ……………...
In chữ Hello
?
Không trả về
1 giá trị
Đóng tệp f
Giáo sinh: Nguyễn Thị Trang
19
Phân loại chương trình con
Hàm (Function)
Thủ tục (Procedure)
Hàm là chương trình con thực hiện một số
Thủ tục là chương trình con thực hiện các
thao tác nào đó và trả về một giá trị qua tên
thao tác nhất định nhưng không trả về giá trị
của nó.
nào qua tên của nó.
Ví dụ :
Ví dụ:
Sin(x): nhận giá trị thực x và trả về giá trị sinx.
Writeln, readln, delete,…
Sqrt(x): nhận giá trị x và trả về giá trị căn bậc
hai của x
20
Phân loại chương trình con
VÍ DỤ
- Nhập vào hai số tự nhiên a.
- Kiểm tra xem hai số vừa nhập có phải số nguyên
dương không?
- Tính ước chung lớn nhất của hai số đó.
Củng cố
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.
Khi dùng chương trình con sẽ giúp giải quyết những bài toán lớn và phức tạp, chương trình chính sẽ được
cấu trúc bởi các chương trình con nên trở nên dễ nhìn và dễ hiệu chỉnh hơn.
Có hai loại chương trình con là hàm và thủ tục:
Khi giải quyết một vấn đề mà có giá trị trả về thì dùng hàm
Khi nhập, xuất dữ liệu hoặc kiểm tra một vấn đề nào đó không trả về giá trị thì dùng thủ tục.
22
THE END!!!
23