Bai 17 -Tin 11 - Tiet 39

9 284 0
Bai 17 -Tin 11 - Tiet 39

Đang tải... (xem toàn văn)

Thông tin tài liệu

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 . 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à. 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. 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

Ngày đăng: 30/06/2014, 16:00

Từ khóa liên quan

Mục lục

  • I. Mục đích yêu cầu

    • Học sinh cần biết:

    • II. Phương pháp, phương tiện giảng bài

      • 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.

      • Ngày tháng năm 2008

      • Giáo viên hướng dẫn

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan