LOGO
Nguyễn Đức Cảnh
Nguyễn Đức Cảnh
Nhắc lại kiến thức :
Cách viết một chương trình cơ bản gồm các bước nào?
Tên chương trình: ProGram chuong_trinh;
Khai báo biến: Var x,y:Integer;
a,b:Real;
f1,f2:Text;
Thân chương trình: Begin
{Các lệnh của chương trình}
End.
Nguyễn Đức Cảnh
Là lá la!
Hôm nay là
ngày trực
vệ sinh…
Ta sẽ làm
vệ sinh ở
lớp nào đây
nhỉ?
11A1 11A2 11A3 11A4
Hơ… Hơ.
Sao nhiều
thế!
Continue…
Nguyễn Đức Cảnh
30 phút sau…
Ôi… Mệt…
quá!
Phải làm
sao bây
giờ…!
Àh. Mình
có ý này.
He he!
Nguyễn Đức Cảnh
Cậu
dọn lớp
này…!
Mình
biết rồi!
Còn
cậu dọn
lớp
kia…!
Dạ!
Nguyễn Đức Cảnh
Câu hỏi: Để làm tốt công việc như tình huống ở trên chúng
ta cần phải làm gì?
Trả lời: Cần phải phân chia công việc cho nhiều người.
Nguyễn Đức Cảnh
Nguyễn Đức Cảnh
- 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
Nguyễn Đức Cảnh
Vd: Tính lũy thừa = a
n
+b
m
+c
p
+d
q
.
- 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 a
n
, tính b
m
, tính c
p
, tính d
q
.
- 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
.
Nguyễn Đức Cảnh
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óm
Việc A
Việc B
Nguyễn Đức Cảnh
1. Khái niệm chương trình con.
Viết chương trình tính tổng: a
n
+b
m
+c
p
+d
q
Program
Var
Tluythua,luythua1, luythua2,l uythua3, luythua 4: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);
Var j:integer
Tich:=1.0;
For j:=1 to n do
Tich:=Tich*a;
Nguyễn Đức Cảnh
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.
Nguyễn Đức Cảnh
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á. Người lập trình có
thể sử dụng kết quả của chương trình con mà ko cần
quan tâm đến chương trình đó đã được cài đặt như thế
nào.
- 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.
Nguyễn Đức Cảnh
Phương pháp dùng chương trình con
Program Tinh_tong;
Var Tluythua:real;
a,b,c,d:real;
n,m,p,q:integer;
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;
Nguyễn Đức Cảnh
Phần thân của chương trình chính:
Begin
write('hay nhap du lieu theo thu tu a,b,c,d,n,m,p,q');
readln(a,b,c,d,n,m,p,q);
Tluythua:=luythua(a,n)+luythua(b,m)+luythua(c,p)+luythua(d,q);
writeln('Tong luy thua:=',Tluythua);
readln;
end.
Nguyễn Đức Cảnh
2. Phân loại và cấu trúc của chương trình con.
a. Phân loại
Chương trình con thường gồm hai loại
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ó
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ó
VD: Sin(x), Cos(x), Sqrt(x) … Length(x)
VD: Writeln, Readln, Delete, …
Nguyễn Đức Cảnh
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
<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ề
Nguyễn Đức Cảnh
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
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.
Nguyễn Đức Cảnh
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:
o
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.
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.
Nguyễn Đức Cảnh
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
Tham số thực:
o
Để 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ó) là
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)