I Mục Đích Và Yêu Cầu
- Giúp học sinh nắm được trình tự các bước tiến hành giải bài một toán trên máy tính
- Biết cách lựa chọn thuật toán tối ưu cho mỗi bài toán
- Phát triển năng lực tư duy của mỗi học sinh
II Phương Tiện
- giáo viên: sách giáo khoa, giáo án, bảng phụ
- học sinh: sách giáo khoa, sách tham khảo
Chương I: Một Số Khái Niệm Cơ Bản Về Tin Học Tiết 18, Bài 6: Giải Toán Trên Máy Tính I Mục Đích Và Yêu Cầu - Giúp học sinh nắm được trình tự các bước tiến hành giải bài một toán trên máy tính - Biết cách lựa chọn thuật toán tối ưu cho mỗi bài toán Phát triển năng lực tư duy của mỗi học sinh II Phương Tiện giáo viên: sách giáo khoa, giáo án, bảng phụ học sinh: sách giáo khoa, sách tham khảo II Nội Dung Tiết Dạy 1 Tổ chức lớp: ổn định lớp, kiểm tra sĩ số. Kiểm tra bài cũ: Câu hỏi: Câu1: Em hiểu thế nào là ngôn ngữ lập trình? Có mấy loại ngôn ngữ lập trình? Câu2: Tìm Input, Output của bài toánsau: Cho 2 số nguyên a,b. Tim max của 2 số đó? Tiến trình tiết dạy Hoạt động của giáo viên Hoạt động của học sinh - Đặt vấn đề: Chúng ta đã biết máy tính là công cụ giúp đỡ con người rất nhiều trong cuộc sống. Vì vậy chúng ta phải học cách sử dụng máy tính. Học cách sử dụng máy tính thực chất là học cách giao cho máy tính những việc ta muốn nó làm . Việc giải bài toán trên máy tính cũng là cách sử dụng máy tính. Để biết các bước để giải một bài toán trên máy tính là gì? và thực hiện như thế nào? ta cùng nhau tìm hiểu nội dung bài học hôm nay tiết 18, bài 6 “ Giải Toán Trên Máy Tính” - Học sinh nghe giảng Hoạt động của giáo viên Hoạt động của học sinh Các em đã học cách giải một bài toán thông thường baogiờ cũng gồm các bước như Xác định bài toán Nêu ý tưởng bài toán Giải bài toán Kiểm tra kết quả Cũng giống như vậy việc giải một bài toán trên máy tính cũng gồm có 5 bước sau: Xác định bài toán Lựa chọn hoặc thiết kế thuật toán Viết chương trình Hiệu chỉnh Viết tài liệu Để hiểu rõ hơn các bước thực hiện như thế nào ta đi vào tìm hiểu từng bước một như sau 1 Xác định bài toán - Đây là bước đầu tiên trong quá trình giải toán trên máy tính - Câu hỏi: Theo các em xác định bài toán là xác định những phần nào - Trước mỗi bài toán ta phải tiến hành xác định bài toán tức là xác định + input: các dữ liệu bài toán cho + Output: yêu cầu của bài toán nhằm mục đích lựa chọn ngôn ngữ lập trình và xây dựng thuật toán thích hợp - Chúng ta cùng nhau xét VD sau Câu hỏi: Xác định bài toán sau: Cho số nguyên dương a, b.Tìm UCLN của 2 số trên - Sau khi xác định bài toán ta phải lựa chọn hoặc thiết kế thuật toán thích hợp để giải bài đó. Ta xét mục 2 của bài học 2 Lựa Chọn Hoặc Thiết Kế Thuật Toán Đây là bước quan trọng nhất trong quá trình giải toán trên máy tính. Ta đi vào mục thứ nhất a- Lựa chọn thuật toán Câu hỏi: Nêu khái niệm thuật toán? Câu hỏi: Thuật toán của bài toán này có thể dùng để giải đựơc bài toán khác hay không? Câu hỏi: Vậy mỗi bài toán có phải chỉ có duy nhất một thuật toán giải bài toán hay không? - Đúng vậy mỗi bài toán không phải chỉ có duy nhất một thuật toán.Ta xét bài toán tìm kiếm ta có 2 thuật toán như sau: C1: thuật toán tìm kiếm tuần tự C2: thuật toán tìm kiếm nhị phân - Như vậy mỗi thuật toán chỉ giải1 bài toán duy nhất nhưng mỗi bài toán có thể có nhiều thuật toán giải khác nhau, do đó ta phải lựa chọn hoặc thiết kế thuật toán tối ưu. - Thuật toán tối ưu là thuật toán có các đặc điểm sau: + Dễ hiểu + Trình bày khoa học + Thời gian chạy nhanh + Tốn ít bộ nhớ - khi lựa chon thuật toán người ta thường quan tâm đến thời gian thực hiện, số lượng ô nhớ trong đó người ta quan tâm nhất là thời gian thực hiện Câu hỏi: Đối với 1 dãy đã được sắp xếp thì thuật toán Tìm kiếm nhị phân và tìm kiếm tuần tự thuật toán nào thực hiện ít thao tác hơn? - một tiêu chí khác mà nhiều người quan tâm khi lựa chọn hoặc thiết kế thuật toán là ít phức tạp - Sau khi lựa chọn hoặc thiết kế thuật toán ta phải biểu diễn thuật toán đó b- Diễn tả thuật toán - Câu hỏi: Có mấy cách để diễn tả 1 thuật toán? -Ta cùng nhau xét VD cụ thể sau: VD: Tìm UCLN của 2 số nguyên a, b xác định bài toán ta đã thực hiện ở bước1. Sau khi xác định bài toán ta cùng nhau xây dựng ý tưởng thuật toán như sau: Ta xét các trường hợp của a và b + nếu a=b thi ta có ngay UCLN(a,b)=a=b + nếu a>b thì UCLN(a,b)=UCLN(b,a-b) + nếu a<b thì UCLN(a,b)=UCLN(a,b-a) Dựa vào ý tưởng thuật toán ta có thể biểu diễn thuật toán bằng cách liệt kê như sau: B1: nhập 2 số nguyên a, b B2: nếu a=b thì đưa ra UCLN rồi kết thúc B3: nếu a>b thì a->a-b rồi quay lại bước 2 B4: nếu ab-a rồi quay lại bước 2 B5: đưa ra kết luận Để các em hiểu rõ hơn cô có bảng phụ sau Lần duyệt 1 2 a 10 10 5 b 15 5 5 =>UCLN(10,15)=UCLN(10,5)=UCLN(5,5)=5 -Sau khi biểu diễn thuật toán ta phải viết chương trình cho thuật toán đó.Đó là bước 3 của quá trình giải toán trên máy tính 3 Viết Chương Trình - Câu hỏi: Có mấy loại ngôn ngữ lập trình? Đó là những ngôn ngữ nào? - Viết chương trình là tổng hợp giữa việc lựa chọn cách tổ chức dữ liệu và sử dụng ngôn ngữ lập trình phù hợp để diễn tảđúng thuật toán -Lưu ý khi viết ngôn ngữ nào thì phải tuân theo đúng quy định của ngôn ngữ đó VD: trong Pascal và trong C +Lệnh bắt đầu chương trình begin { + Lệnh kết thúc chương trình end } - Trong phần viết thuật toán thì chương trình dịch chỉ có thể phát hiện lỗi ngữ pháp chứ không thể phát hiện lỗi thuật toán cho nên sau khi viết chương trình ta phải kiểm tra lại thuật toán. Công việc này được thực hiện trong bước 4 hiệu chỉnh 4 Hiệu Chỉnh - Chương trình được viết không phải khi nào cũng đảm bảo tính đúng đắn, có thể mắc sai sót cho nên sau khi viết xong phải thử lại với các bộ dữ liệu in/output tiêu biểu khác nhau. Các bộ in/output như vậy gọi là các test .Nếu có sai sót ta phải xem xét chương trình rồi sửa lại cho đúng. Quá trình này gọi là hiệu chỉnh VD để kiểm tra tính đúng đắn của thuật toán tìm UCLN như VD trên ta có thể thử với các bộ test sau a1, b=3 => UCLN(1,3)=1 a= 7, b=4 => UCLN(7,4)=1 a=7, b=14 => UCLN(7,14)= 7 - Sau khi đã hoàn thành thuật toán và sửa các lỗi chương trình, bước cuối cùng của quá trình giải toán trên máy tính là viết tài liệu 5 Viết Tài Liệu Viết tài liệu nhằm mô tả lại thuật toán, viết chương trình, và hướng dẫn sử dụng chương trình đó. Tài liệu đó rất có ích cho người sử dụng chương trình và cho việc đề xuất những khả năng hoàn thiện thêm - GV cho HS đọc SGK mục 5 và trả lời câu hỏi sau vào vở Câu hỏi: + Tài liệu này do ai viết? + Tài liệu mô tả cái gì? + Tài liệu viết cho ai? - Học sinh nghe giảng - Học sinh ghi bài -Trả Lời: Xác định input và output của bài toán - Học sinh nghe giảng trả lời: Input: 2 số nguyên dương a, b Output: UCLN của 2 số a, b Trả lời: Thuật toán là một dãy hữu hạn các thao tác được sắp xếp theo một trật tự nhất định sao cho sau khi thực hiện dãy các thao tác đó từ input ta thu được output của bài toán. Trả lời: Không Trả lời: Không - Học sinh nghe giảng - Học sinh ghi bài - Học sinh ghi bài Trả lời: thuật toán tìm kiếm nhị phân Trả Lời: Có 2 cách, đó là + Liệt kê + Sơ đồ khối - Học sinh nghe giảng kết hợp ghi bài - Học sinh tự viết cách biểu diễn bằng sơ đồ khối vào vở Trả Lời: Có 3 loại ngôn ngữ lập trình là: + ngôn ngữ máy + hợp ngữ + ngôn ngữ bậc cao - Học sinh ghi bài - Học sinh ghi bài - Học sinh nghe giảng - Học sinh ghi bài - Đọc SGK và thảo luận trả lời câu hỏi vào vở Trả lời: + Tài liệu do người lập trình viết + Tài liệu mô tả thuật toán, thiết kế chương trình, kết quả thử nghiệm và hướng dẫn sử dụng + Tài liệu viết cho người sử dụng chương trình Củng cố Qua bài học hôm nay các em cần nắm vững các bước để giải một bài toán trên máy tính gồm có: B1: Xác định bài toán B2: Lựa chọn hoặc thiết kế thuật toán B3: Viết chương trình B4: Hiệu chỉnh B5: Viết tài liệu Trong đó đặc biệt chú ýđến bước lựa chọn hoặc thiết kế thuật giải Bài tập về nhà Yêu cầu học sinh làm bài tập SGK trang 51 và sách BT trang 23,24 Rút kinh nghiệm tiết dạy sau Nhận Xét của Giáo viên hướng dẫn chuyên môn Ngày tháng năm 2007 GVHD (Kí ghi rõ họ tên)
Tài liệu đính kèm: