Giáo án Tin học 11 - Bài 17: Chương trình con và phân loại - Lê Thị Bích Liên

Giáo án Tin học 11 - Bài 17: Chương trình con và phân loại - Lê Thị Bích Liên

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ụ:

 

doc 9 trang Người đăng quocviet Lượt xem 5659Lượt tải 1 Download
Bạn đang xem tài liệu "Giáo án Tin học 11 - Bài 17: Chương trình con và phân loại - Lê Thị Bích Liên", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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=an. Với a là số thực, n là số nguyên nhập từ bàn phím.
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=an+bm+cp+dq
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=an + bm + cp + dq.
- 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.
- Để 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=xk, 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
 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), 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 a1, ..., an. Đư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 a1, ..., an
Output: Số lượng số nguyên tố.
* 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
Đá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);
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:
TLuyThua= 63+ 64+ 65+ 66
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à lưu trữ kết quả của an. Tương tự LuyThua2, LuyThua3, LuyThua4 dùng để tính toán và lưu trữ kết quả của bm, cp, dq.
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 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=xk, 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 an , bm, cp, dq 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=an. Ta sẽ gọi LuyThua(a,n)
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. 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ố ai 
(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ươ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ương trình con khác.
* Lưu ý: 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 lưu ý:
Chương trình con 
Dãy lệnh thực hiện 1 công việc nà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
Đượ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
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

Tài liệu đính kèm:

  • docBai 17 Tin 11 Tiet 39.doc