Tải bản đầy đủ (.doc) (9 trang)

Bai 17 -Tin 11 - Tiet 39

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (105.84 KB, 9 trang )

Ngời soạn: Hà Trung Hòa. Lớp: SP Tin 40
Giáo viên hớng dẫn: Lê Thị Bích Liên
Ngày soạn : 30/09/2008
Ngày giảng : / /2008
Chơng VI: Chơng trình con và lập trình có cấu trúc
Bài 17: Chơng trình con và phân loại
I. Mục đích yêu cầu
Học sinh cần biết:
Chơng trình con thực chất là một khối lệnh (tập các lệnh) nhằm giải quyết một
bài toán con để góp phần giải quyết một bài toán lớn hơn bằng một chơng trình.
Khi phải viết chơng trình dài, phức tạp, việc sử dụng chơng trình con là hết sức
cần thiết.
II. Phơng pháp, phơng tiện giảng bài
Phơng pháp: Thuyết trình, giảng giải
Phơng tiện: SGK, SGV
Bảng phụ:
III. Tiến trình bài giảng
Nội dung Hoạt động GV v HS
Kiểm tra bài cũ: Viết chơng trình tính
LuyThua=a
n
. Với a là số
thực, n là số nguyên nhập từ
bàn phím.
Đáp án:
Program TinhLuyThua;
Var a,LuyThua:real;
i,n:integer;
BEGIN
Write(Nhap a=);readln(a);
Write(Nhap n=);readln(n);


LuyThua:=1.0;
For i:=1 to n do
LuyThua:=LuyThua*a;
Write(Luy thua ,a:2:2,^,n,
=,LuyThua:8:4);
1
Chơng VI: Chơng trình
con và lập trình có
cấu trúc
Bài 17: Chơng trình con và
phân loại
1. Khái niệm chơng trình con.
Bài toán 1: Tính tổng bốn luỹ thừa:
TLuythua=a
n
+b
m
+c
p
+d
q
Với a, b, c, d là các số thực, n, m, p, q là
các số nguyên.
Input: a, b, c, d kiểu thực; m, n, p, q kiểu
nguyên.
Output: Đa ra màn hình kết quả
TLuythua=a
n
+ b
m

+ c
p
+ d
q
.
Readln;
END.
GV: Các chơng trình giải các bài
toán phức tạp thờng rất dài, có thể
gồm rất nhiều lệnh. Khi đọc những
chơng trình dài rất khó nhận biết đợc
chơng trình thực hiện các công việc
gì và hiệu chỉnh chơng trình cũng
khó khăn. Vậy phải cấu trúc chơng
trình nh thế nào để cho chơng trình
dễ đọc, dễ hiệu chỉnh, nâng cấp? Tr-
ớc tiên chúng ta đi xét bài toán sau.
GV: Đa ra bài toán 1
GV: Theo toán học để giải đợc bài
toán này ta làm nh thế nào?
HS: Ta sẽ tính từng luỹ thừa, sau đó
cộng tổng các luỹ thừa đó lại ta đợc
kết quả TLuythua.
GV: Giả sử có bài toán sau:
2
- Việc chia nhỏ các bài toán thành các
bài toán con đợc gọi là cách thiết kế từ
trên xuống.
TLuyThua= 6
3

+ 6
4
+ 6
5
+ 6
6
Khi em là nhóm trởng (nhóm gồm 4
ngời ) và nhóm em nhận đợc bài toán
thì làm cách nào để có kết quả nhanh
nhất.
HS: Trả lời.
GV: Nhận xét và khẳng định: Có thể
giao cho 4 ngời mỗi ngời thực hiện
một bài. Giá trị TluyThua là tổng kết
quả của bốn bài toán con đó.
GV: áp dụng ý tởng đó trong lập
trình ta sẽ dùng các biến LuyThua1
để tính toán và lu trữ kết quả của a
n
.
Tơng tự LuyThua2, LuyThua3,
LuyThua4 dùng để tính toán và lu trữ
kết quả của b
m
, c
p
, d
q
.
GV: Cả lớp theo dõi chơng trình

tinh_tong trang 92 SGK.
GV: Hãy quan sát và cho biết có mấy
khối lệnh đợc viết tơng tự nhau?
HS: Có 4 khối lệnh đợc viết tơng tự
nhau.
GV: Bằng trực quan một em cho cô
biết khi viết nh vậy em có nhận xét gì
không ?
HS: ở đây có 4 khối lệnh tơng tự
nhau đợc lặp đi lặp lại làm cho chơng
trình vừa dài, vừa khó theo dõi.
GV: Để nâng cao hiệu quả lập trình,
các ngôn ngữ lập trình bậc cao đều
3
- Để nâng cao hiệu quả lập trình, các
ngôn ngữ lập trình bậc cao đều cung cấp
khả năng xây dựng chơng trình con dạng
tổng quát đại diện cho nhiều đoạn lệnh
tơng tự nhau. Ví dụ: tính luỹ thừa
luythua=x
k
, trong đó lũy thừa và x là giá
trị kiểu thực còn k thuộc kiểu nguyên. Ta
có thể đặt tên cho chơng trình con này là
luythua và tham số cần thiết là x và k .
Khi cần tính luỹ thừa cụ thể ta chỉ cần
viết tên chơng trình con và thay thế (x,k)
bằng giá trị cụ thể tơng ứng.
program Tinh_tong;
var TLuyThua,a,b,c,d:real;

m,n,p,q:integer;
Function LuyThua(x:real;k:integer):real;
var i:integer;
Tich:real;
begin
Tich:=1.0;
For i:=1 to k do
Tich:=Tich*x;
LuyThua:=Tich;
end;
BEGIN
write('Nhap du lieu theo thu tu
cung cấp khả năng xây dựng chơng
trình con dạng tổng quát đại diện
cho nhiều đoạn lệnh tơng tự nhau.
Chẳng hạn, tính luỹ thừa luythua=x
k
,
trong đó lũy thừa và x là giá trị kiểu
thực còn k thuộc kiểu nguyên. Ta có
thể đặt tên cho chơng trình con này là
luythua và tham số cần thiết là x và k
. Khi cần tính luỹ thừa cụ thể ta chỉ
cần viết tên chơng trình con và thay
thế (x,k) bằng giá trị cụ thể tơng ứng
chẳng hạn để tính a
n

, b
m

, c
p
, d
q
ta
viết luythua(a, n), luythua(b, m),
luythua(c, p), luythua(d,q).
GV:Sau đây thầy sẽ giới thiệu cho
các em chơng trình tính TLuyThua
có sử dụng chơng trình con đợc viết
bằng ngôn ngữ Pascal.
GV: Treo bảng phụ.
GV: Bảng phụ sử dụng một chơng
trình con là hàm LuyThua kiểu thực
với các tham số hình thức là x kiểu
thực, k kiểu nguyên. Khi cần tính các
giá trị cụ thể ta chi việc gọi tên chơng
trình. Ví dụ: Tính LuyThua=a
n
. Ta sẽ
gọi LuyThua(a,n)
4
a, b, c, d, m, n, p, q:');
readln(a,b,c,d,m,n,p,q);
TLuyThua:=LuyThua(a,m)+LuyThua(b,n)
+LuyThua(c,p)
+LuyThua(d,q);
write('Tong luy thua=',TLuyThua:2:2);
readln;
END.

* Nhận xét: Sử dụng chơng trình con ch-
ơng trình ngắn gọn, dễ theo dõi hơn ch-
ơng trình không sử dụng chơng trình con.
- Khi lập trình giải toán, ta có thể phân
chia chơng trình thành các khối (môđun),
GV: Một em cho thầy biết chơng
trình có sử dụng chơng trình con có
ngắn gọn và dễ theo dõi hơn so với
chơng trình không sử dụng chơng
trình con không?
HS: Trả lời
GV: Nhận xét và khẳng định: Chơng
trình có sử dụng chơng trình con
ngắn gọn, dễ theo dõi hơn chơng
trình không sử dụng chơng trình con.
GV: Theo em, để sản xuất ra đợc một
chiếc xe máy, có phải chỉ cần qua tay
một ngời thợ ? Hay phải qua một dây
chuyền sản xuất ?
HS: Trả lời
GV: Đúng vậy, để sản xuất ra một
chiếc xe máy ngời ta phải phân thành
nhiều công đoạn nh sản xuất ra
khung xe, yên xe, Mỗi công đoạn
đợc giao cho các tổ lao động chuyên
làm một bộ phận. Và có một bộ phận
chuyên lắp ráp sản phẩm từ các bộ
phận nhỏ.
GV: Đối với lập trình cũng vậy, khi
lập trình giải toán, ta có thể phân chia

chơng trì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 nào đó. Mỗi khối lệnh sẽ đ-
ợc xây dựng thành một chơng trình
con. Sau đó, chơng trình chính sẽ đợc
xây dựng từ các chơng trình con này.
5
mỗi khối bao gồm các lệnh giải một bài
toán nào đó. Mỗi khối lệnh sẽ đợc xây
dựng thành một chơng trình con. Sau đó,
chơng trình chính sẽ đợc xây dựng từ các
chơng trình con này. Chơng trình con
cũng có thể đợc xây dựng từ các chơng
trình con khác. Cách lập trình nh vậy dựa
trên phơng pháp lập trình có cấu trúc và
chơng trình đợc xây dựng gọi là chơng
trình có cấu trúc.
* Chú ý: Chơng trình con đôi khi chỉ đợc
dùng đúng một lần xong khi đó nó vẫn có
tác dụng làm sáng sủa chơng trình.
Bài toán 2: Viết chơng trình nhập vào số
nguyên dơng N (0 < N < 50) và
dãy số nguyên dơng a
1
, , a
n
. Đa ra số l-
ợng số nguyên tố.
Input: Số nguyên dơng ( 0 < N < 50) và
dãy số nguyên dơng a

1
, , a
n
Output: Số lợng số nguyên tố.
Chơng trình con cũng có thể đợc xây
dựng từ các chơng trình con khác.
Cách lập trình nh vậy dựa trên phơng
pháp lập trình có cấu trúc và chơng
trình đợc xây dựng gọi là chơng trình
có cấu trúc.
GV: Cần chú ý là chơng trình con đôi
khi chỉ đợc dùng đúng một lần xong
khi đó nó vẫn có tác dụng làm sáng
sủa chơng trình.
GV: Để hiểu rõ hơn về việc cần thiết
phải sử dựng chơng trình con chúng
ta đi xét bài toán 2.
GV: Đa ra bài toán
GV: Từ bài toán trên một em xác
định Input, Output?
HS: Trả lời.
GV: Để giải đợc bài toán trên ta cần
phải làm gì?
HS: Trả lời
GV: Tạo 1 biến: đếm số lợng số
nguyên tố. Lần lợt với mỗi số a
i

(với i=1, ,n) ta kiểm tra số đó có là
số nguyên tố hay không. Nếu là số

nguyên tố thì tăng biến đếm lên 1
đơn vị. Nh vậy với N = 50 thì ta phải
viết đi viết lại 50 lần dãy lệnh tơng tự
nhau để kiểm tra một số nguyên d-
6
* Khái niệm chơng trình con (SGK)
* Lợi ích của việc sử dụng chơng trình
con.
- Tránh đợc việc phải lặp đi lặp lại cùng
một dãy lệnh nào đó. VD: Bài toán 1, 2
- Hỗ trợ việc thực hiện các chơng trình
lớn. VD: Bài toán quản lý điểm
- Phục vụ cho quá trình trừu
tợng hoá. Ví dụ khi sử dụng các hàm
toán học nh sin(x), cos(x), ta không cần
xem nó đợc xây dựng nh thế nào. Trừu t-
ợng hoá là t tởng chủ đạo để xây dựng
chơng trình nói chung và chơng trình có
cấu trúc nói riêng.
-Mở rộng khả năng ngôn ngữ. Ví dụ:
Trong bài toán 1 ta xây dựng thêm đợc ch-
ơng trình con luỹ thừa.
- Thuận tiện cho phát triển, nâng cấp ch-
ơng trình
ơng có phải là số nguyên tố hay
không?
GV: Nh vậy chúng ta thấy đợc việc
cần thiết phải sử dụng chơng trình
con trong chơng trình.
GV: Qua các ví dụ trên ta có khái

niệm chơng trình con. Vậy mời 1 em
đọc khái niệm chơng trình con.
HS: Đọc khái niệm chơng trình con
trong SGK.
GV: Qua hai ví dụ trên một em cho
biết sử dụng chơng trình con có
những lợi ích gì?
GV (Giải thích): Do chơng trình đợc
tạo thành từ các chơng trình con nên
dễ đọc, dễ hiểu, dễ kiểm tra và hiệu
chỉnh. Việc nâng cấp, phát triển chơng
trình con nào đó, thậm chí bổ sung
thêm các chơng trình con mới nói
chung không gây ảnh hởng tới các ch-
7
ơng trình con khác.
* Lu ý: Nếu còn thời gian thì yêu cầu
học sinh suy nghĩ và đa ra các bài toán
cần thiết phải sử dụng chơng trình con.
III. Củng cố
Tóm lại qua bài học hôm nay chúng ta cần lu ý:
Chơng trình con
o Dãy lệnh thực hiện 1 công việc nào đó
o Xây dựng nên chơng trình chính và có thể đợc xây dựng từ các chơng
trình con khác
o Đợc gọi từ nhiều vị trí khác nhau
Khi nào thì cần thiết phải sử dụng chơng trình con: Khi chơng trình lặp đi lặp
lại các đoạn lệnh tơng tự nhau.
Lợi ích của việc sử dụng chơng trình con
IV. Dặn dò

Học bài cũ và đọc trớc mục 2.Phân loại và cấu trúc của chơng trình con
V. Rút kinh nghiệm
8
NhËn xÐt cña gi¸o viªn híng dÉn

































Ngµy th¸ng n¨m 2008
Gi¸o viªn híng dÉn
9

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×