1 Giáo án lý thuyết số Tổng số tiết Ngày giảng tháng năm 2008 BÀI 17. CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI A. Mục tiêu: 1. Kiến thức: Học sinh cần nắm vững khái niệm chương trình con, cách phân loại chương trình con dựa vào chức năng. Hiểu được tác dụng và việc cần thiết tổ chức chương trình thành các chương trình con. Nắm được cấu trúc cơ bản của chương trình con. 2. Kĩ năng: Học sinh cần rèn luyện kĩ năng phân tích chia nhỏ một bài toán lớn thành các bài toán nhỏ 3. Tư tưởng: Phát triển khả năng phân tích và giải quyết các vấn đề lớn bằng cách chia nhỏ công việc thành từng phần Tạo niềm say mê tin học và việc lập trình trên máy tính. B. Phương pháp, phương tiện: 1. Phương pháp: Thuyết trình Vấn đáp Liên hệ thực tế 2. Phương tiện: a) Giáo viên: giáo án, giáo trình, tài liệu tham khảo và các phương tiện giảng dạy khác b) Học sinh: sách vở và các đồ dùng học tập khác. C. Tiến trình lên lớp và tổ chức dạy học 1. Ổn định lớp(1’): yêu cầu lớp trưởng ổn định lớp và báo cáo sĩ số 2. Kiểm tra bài cũ và gợi động cơ(4’): a)Kiểm tra bài cũ: Câu hỏi: Tại sao ta cần kiểu dữ liệu tệp, tại sao phải dùng câu lệnh đóng tệp sau khi đã kết thúc việc ghi tệp? Đáp án: Kiểu dữ liệu tệp cho phép lưu tài liệu trên bộ nhớ ngoài, từ đó có thể lưu trữ tài liệu lâu dài ngay cả khi 2 chương trình ứng dụng kết thúc. Từ trước tới nay, tất cả mọi thao tác tính toán của chúng ta đều chỉ thực hiện trên bộ nhớ chính( RAM), tất cả dữ liệu sẽ mất khi chương trình kết thúc. Trong thực tế rất nhiều bài toán yêu cầu việc lưu trữ lâu dài dữ liệu, đặc biệt các bài toán quản lý, như vậy kiểu dữ liệu tệp là cần thiết. Câu lệnh đóng tệp sẽ nhắc hệ thống lưu lại những thay đổi do quá trình ghi dữ liệu lên tệp, trước đó có thể hệ thống chưa lưu lại. Hơn nữa câu lệnh này bảo vệ cho tệp không bị thay đổi sau đó. b)Gợi động cơ: Trong thực tế chúng ta gặp rất nhiều công việc lớn mà việc chia nhỏ công việc này thành từng phần và giao cho từng nhóm người giải quyết mang lại hiệu quả cao. Ví dụ: Để tham gia thiết kế một chiếc ôtô thì chúng ta sẽ cần thiết kế các bộ phận cấu thành lên nó, việc thiết kế từng bộ phận cụ thể sẽ được giao cho một người hoặc một nhóm người thực hiện. Điều này mang lại hiệu quả cho việc thiết kế một chiếc ôtô cụ thể. Tương tự như vậy, trong tin học chúng ta rất hay gặp các bài toán lớn, phức tạp. Việc chia nhỏ nó thành các bài toán lớn là rất cần thiết và mang lại nhiều lợi ích to lớn trong việc lập trình. Bài học hôm nay, thầy cùng các em sẽ đi tìm hiểu về chương trình con, một khái niệm đặc biệt trong lập trình( cấu trúc) 3 3. Bài mới: BÀI 17. CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI TT NỘI DUNG CƠ BẢN HOẠT DỘNG CỦA THẦY VÀ TRÒ TG 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. Xét ví dụ: Bài toán tính tổng bốn luỹ thừa: TLuythua = a m + b n + c p + d q Bài toán này bao gồm 4 bài toán con tính a n , b n , c n , d n , có thể giao cho bốn người thực hiện. Giá trị TLuythua là tổng của bốn kết quả trên. Chương trình thực hiện bài toán trên có mã như sau: program luy_thua; var TLuythua, lt1, lt2, lt3, lt4 : real; a, b, c, d : real; i, m, n, p, q : integer; begin write(‘ Nhap a,b,c,d,m,n,p,q:’); readln(a,b,c,d,m,n,p,q); { } lt1 := 1; for i := 1 to m do lt1 := lt1*a; { } lt2 := 1; for i := 1 to n do lt2 := lt2*a; { } lt3 := 1; for i := 1 to p do lt3 := lt3*a; { } lt4 := 1; for i := 1 to q do lt4 := lt4*a; { } TLuythua := lt1 +lt2+ lt3+ lt4; writeln(‘ Tong luy thua = ‘, TLuythua 8:4); GV: Thuyết trình 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. Một công việc nhỏ có thể còn phân tách thành các công việc con nhỏ hơn, và một chương trình con tương ứng có thể bao hàm trong nó nhiều chương trình con thực thi các nhiệm vụ nhỏ hơn. Đây chính là việc xây dựng chương trình con từ các chương trình con. Việc phân rã làm mịn dần bài toán được gọi là thiết kế từ trên xuống HS: Nghe hiểu và ghi bài GV: Đưa ra ví dụ và phân tích để học sinh thấy rõ việc cần thiết sử dụng chương trình con 4 readln end. chương trình trên có 4 đoạn mã tương tự nhau, lặp lại. Điều này làm chương trình dài hơn. Ta có thể xây dựng một chương trình con tính luỹ thừa với hai tham số là cơ số và số mũ. luythua(coso, somu) Ưu điểm của việc sử dụng chương trình con: Tránh việc viết lặp lại đoạn mã, làm chương trình dài khó kiểm soát. NNLT cho phép tổ chức đoạn mã này thành chương trình con. Mỗi khi chương trình cần thực thi đoạn mã này thì chỉ cần gọi chương trình con tương ứng Hỗ trợ việc xây dựng chương trình lớn: Phân tách bài toán thành nhiều phần, giao cho nhiều người viết các chương trình con khác nhau Phục vụ quá trình trừu tượng hoá: người sử dụng có thể sử dụng chương trình con đã xây dựng sẵn ( trong thư viện lập trình) mà không cần quan tâm cụ thể mã của nó Mở rộng khả năng của ngôn ngữ lập trình: việc xây dựng đóng gói các chương trình con, chúng được sử dụng như các lệnh mới của ngôn ngữ Thuận tiện cho việc nâng cấp và sửa chữa chương trình. Việc tổ chức chương trình thành các chương trình con sẽ cho một cái nhìn sáng sủa mạch lạc, dễ dàng nâng cấp phát triển chương trình GV: Theo các em ngoài việc làm giảm công sức viết mã thì việc sử dụng chương trình con còn mang lại lợi ích gì? HS: Trả lời câu hỏi GV: Chuẩn hoá lại câu trả lời và phân tích các tác dụng của việc sử dụng chương trình còn. HS: Đưa ra thắc mắc GV: Giải đáp các thắc mắc HS: Ghi bài 5 2 Phân loại và cấu trúc của chương trình con a) Phân loại: Trong Pascal có hai loại chương trình con: Hàm: Là chương trình con có nhiệm vụ thực thi các thao tác nào đó( thông thường là thao tác tính toán) và trả về một giá trị qua tên hàm đó. Ví dụ sin(x), sqrt(x) Thủ tục: thực hiện một số thao tác nhất định nhưng không cần trả về giá trị. Ví dụ: write, read, b) Cấu trúc chương trình con: Chương trình con có cấu trúc tương tự chương trình nhưng nhất thiết phải có tên và phần dùng để khai báo tên, nếu là hàm thì phải khai báo kiểu dữ liệu cho giá trị trả về của hàm: <phần đầu> [<phần khai báo>] <phần thân> Phần khai báo: Phần này khai báo biến cho dữ liệu vào ra, các hằng, biến địa phương Phần thân: Phần này là dãy các câu lệnh thực hiện cảu chương trình con Tham số hình thức: chính là các biến được khai báo cho dữ liệu vào/ ra. Các biến được khai báo riêng cho chương trình con được GV: Thuyết trình đưa ra hai loại chương trình con: +Trong ngôn ngữ Pascal người ta cho phép xây dựng hai loại chương trình con: hàm và thủ tục. Hàm trong Pascal có thể là hàm nhiều biến tức giá trị của hàm phụ thuộc vào nhiều tham số. Các hàm chuẩn như sin(x), sqrt(x) là những hàm chỉ có một tham số, đã được xây dựng sẵn. Chúng ta có thể đi xây dựng các hàm nhiều tham số như hàm luỹ thừa ở trên. Một điều quan trọng cần lưu ý là khi gọi hàm, hàm được thực thi và trả về giá trị cho tên hàm. Với thủ tục thì không trả về giá trị cho tên thủ tục, chúng ta đã biết về một số thủ tục chuẩn được xây dựng sẵn như write; writeln; read; readln; readkey; +Việc xây dựng, lời gọi thủ tục và hàm có đôi chút khác nhau chúng ta sẽ đi tìm hiểu cụ thể trong tiết sau. Đối với ngôn ngữ như C thì chỉ có một loại chương trình con là hàm. HS: nghe hiểu và ghi bài 6 gọi là biến cục bộ c) Việc thực hiện chương trình con: sẽ được thông qua lời gọi tên của nó. Đối với chương trình con hàm trong Pascal thì hàm phải được gọi từ nột biểu thức chứ không được gọi độc lập như một hàm. Ví dụ không được phép viết sin(x); Mà có thể viết x := sin(x) Tham số thực sự: đó là những giá trị cho các tham số , đó là những tham số thực sự GV: Nêu ra cấu trúc của chương trình con Giáo viên phân tích những thành phần cấu trúc của chương trình con, chức năng của từng thành phần. Phân tích khái niệm tham số hình thức HS: ghi bài GV: Phân tích cách thức gọi một chương trình con đồng thời đưa ra khái niệm tham số hình thức HS: đưa ra thắc mắc GV: giải đáp D. Củng cố bài học Bài học hôm nay các em cần nắm vững các vấn đề cơ bản về chương trình con: khái niệm, lợi ích, phân loại, cấu trúc của chương trình con. Đồng thời hiểu tham số, tham số hình thức, tham số thực sự, biến cục bộ. Trong tiết tiếp theo chúng ta sẽ đi tìm hiểu sâu hơn về chương trình con E. Bài tập về nhà Đọc trước bài mới. F.Tự rút kinh nghiệm qua giờ dạy . tháng năm 2008 BÀI 17. CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI A. Mục tiêu: 1. Kiến thức: Học sinh cần nắm vững khái niệm chương trình con, cách phân loại chương trình con dựa vào chức năng. . các thắc mắc HS: Ghi bài 5 2 Phân loại và cấu trúc của chương trình con a) Phân loại: Trong Pascal có hai loại chương trình con: Hàm: Là chương trình con có nhiệm vụ thực. các em sẽ đi tìm hiểu về chương trình con, một khái niệm đặc biệt trong lập trình( cấu trúc) 3 3. Bài mới: BÀI 17. CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI TT NỘI DUNG CƠ