Gi¸o ¸n Tin Häc Líp 10 Trêng THPT Hnh Thóc Kh¸ng Tn 1 -> 10 Ch ¬ng 1 : MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA TIN HỌC TiÕt 1-> 20 Bài 4 BÀI TOÁN VÀTHUẬTTOÁN (Tiết 10-14) I. Mơc §Ých & Yªu CÇu : + Hiểu đúng khái niệm bài toán trong Tin học. + Hiểu rõ khái niệm thuậttoán là cách giải bài toán mà về nguyên tắc có thể giao cho máy tính thực hiện. + Hiểu và thực hiện được một số thuậttoán đơn giản trong SGK như tìm giá trò lớn nhất của một dãy số, tìm UCLN của hai số nguyên dương, sắp xếp dãy số, tìm một giá trò cho trước trong dãy số. + Xây dựng thuậttoán cho một số bài toán đơn giản. Qua đó, hình thành một số kỷ năng chuẩn bò tiếp thu việt học Ngôn ngữ lập trình : Cách dùng biến, khởi tạo giá trò biến… + Các vấn đề trên góp phần phát triển khả năng tư duy khi giải quyết vấn đề trong khoa học, cũng như trong cuộc sống. II. PHỈÅNG TIÃÛN DẢY HC : + Giạo ạn. III. CẠC BỈÅÏC LÃN LÅÏP : 1. ỉ n §Þnh Tỉ Chøc: + ÄØn âënh vë trê. + Âiãøm danh, kiãøm tra sé säú. 2. Néi Dung Bµi Míi Trong toán học ta nhắc nhiều đến khái niệm “bài toán” và ta hiểu đố là những việc con người cần phải thực hiện sao cho từ những dữ kiện đã có phải tìm ra hay chứng minh một kết quả nào đó. Vậy khái niệm “bài toán ” trong tin học có gì khác không? Để biết được điều này hôm nay ta học bài số 4: Bài 4 BÀI TOÁN VÀTHUẬTTOÁN Thêi gian Néi Dung Bµi Míi Ho¹t ®éng cđa ThÇy & Trß Ph¬ng TiƯn I.Bài Toán : 1) Khái Niệm : Bài toán là những việc con người muốn máy tính thực hiện. VD: Tính giá trò của các biểu thức : a+b, a.b Hiển thò danh sách học sinh của lớp 10A 3 -> Đây là những Bài toán. • GV: Thật ra thì khái niệm bài toán trong Tin học cũng tương tự như bài toán trong toán học. • GV: Em nào có thể cho thầy một vài ví dụ về bài toán? Gi¸o Viªn : Lê Quốc Hoà Trang :1 Gi¸o ¸n Tin Häc Líp 10 Trêng THPT Hnh Thóc Kh¸ng Thêi gian Néi Dung Bµi Míi Ho¹t ®éng cđa ThÇy & Trß Ph¬ng TiƯn 2. Các yếu Tố: Khi máy tính giải 1 bài toán ta cần quan tâm tới 2 yếu tố: Thông tin đưa vào máy : Input. Thông tin muốn máy tính đưa ra :Output. VD1: Tìm ƯCLN của hai số nguyên dương. VD2: Kiểm tra tính nguyên tố của số nguyên dương N. VD3: Cho một dãy 10 số : a 1, a 2, … a 9, a 10, tìm số lớn nhất trong dãy. II. Thuật Toán: • HS trả lời : • GV: Đứng trước một bài toán công việc đầu tiên ta cần làm là gì? • HS: Công việc đầu tiên là đi xác đònh đâu là giữ liệu đề cho đâu là điều cần đật được. • GV: Rất đúng, khi giải 1 bài toán ta cần xác đònh đâu là giả thiết, đâu là kết luận cần đạt được. Vậy trong Tin học khi đưa cho máy tính giải 1 bài toán ta cần quan tâm đến các yếu tố nào? • GV: Ghi đề lên bảng, hỏi: Input? Output? • HS trả lời: • GV: Ghi đề lên bảng, hỏi: Input? Output? • HS trả lời: • GV: Ghi đề lên bảng, hỏi: Input? Output? • HS trả lời: • GV: Trong toán để đi từ GT-> KL chúng ta cần biết gì? • HS trả lời: Biết cách giải hay p 2 giải. • GV: Đúng, vậy quá trình đi từ Input -> Output được gọi là gì? • GV: Quá trình đi từ Input -> Output được gọi là thuật toán. Mà vì sao lại gọi là thuật toán? • GV: Từ thuậttoán (Algorithm) xuất phát từ tên một nhà toán học Al Khwarizmi sống ở Trung Á ở thế kỷ IX, ông là tác giả 1 cuốn sách số học trong đó ông đã dùng phương pháp mô tả rất rõ ràng mạch lạc cách giải 1 bài toán. Các nhà khoa học thế hệ sau đều học theo như thế. Gi¸o Viªn : Lê Quốc Hoà Trang :2 Gi¸o ¸n Tin Häc Líp 10 Trêng THPT Hnh Thóc Kh¸ng Thêi gian Néi Dung Bµi Míi Ho¹t ®éng cđa ThÇy & Trß Ph¬ng TiƯn VD1: Mô tả quá trình “Nấu cơm” : Input : Gạo, Nước, Nồi, Lửa Output : Nồi cơm chín. B1: Vo gạo, để nước vừa phải. B2: Nổi lửa, bắc nồi lên. B3: Đợi sôi, chắt nước, hạ lửa. B4: Được nồi cơm chín. Quá trình mô tả như trên người ta gọi là thuậttoán “Nấu cơm”. Vậy thuậttoán là gì? 1) Khái Niệm: Thuậttoán là một dãy hữu hạn các thao tác được sắp xếp theo một thứ tự xác đònh, sao cho sau khi thực hiện xong thuậttoán thì từ Input của bài toán ta thu được Output cần tìm. VD2 Tìm ƯCLN của 2 số nguyên dương a, b: Input : a, b. Output :ƯCLN(a, b) Ta có thuậttoán Ơclid để tìm ƯCLN: B1: Nhập giá trò cho a, b (cho a, b 1 giá trò). B2: Nếu a =b Tbáo ƯCLN(a,b)=a, dừng. B3: Nếu a> b thì a = a-b, Quay lại B2. B4: Nếu a< b thì b = b-a, Quay lại B2. VD3: Tìm ƯCLN của 2 số nguyên dương 12,9: Input : 12, 9. Output :ƯCLN(12, 9) Bước A B 1 12 9 2 3 3 9 2 3 4 3 6 2 3 4 3 3 2 TB ƯCLN(12,9)=3. Dừng 2. Các Đặc trưng Của ThuậtToán : a) Tính hữu hạn: • Việc nghiên cứu về thuật tooancs vai trò rất quan trọng trong khoa học máy tính, vì máy tính chỉ giải quyết vấn đề khi đã có hướng dẫn giải rõ ràng và đúng. Nếu hướng dẫn sai hoặc không rõ ràng thì máy tính không thể giải đùng được bài toán. • Trong khoa học máy tính, thuậttoán được đònh nghóa là một dãy hữu hạn các bước không mập mờ và có thể thực thi được, quá trình hành động theo các bước này phải dừng và cho kết quả như mong muốn. • GV: Tìm ƯCLN của 2 số nguyên dương 51, 68: • HS: Lên bảng làm. Gi¸o Viªn : Lê Quốc Hoà Trang :3 Gi¸o ¸n Tin Häc Líp 10 Trêng THPT Hnh Thóc Kh¸ng Thêi gian Néi Dung Bµi Míi Ho¹t ®éng cđa ThÇy & Trß Ph¬ng TiƯn Thuậttoán phải kết thúc sau một số hữu hạn lần thực hiện các thao tác. b) Tính xác đònh : Sau khi thực hiện một thao tác thì hoặc là thuậttoán kêt thúc hoặc là có đúng 1 thao tác xác đònh để được thực hiện tiếp. c) Tính đúng đắn: Sau khi thuậttoán kết thúc ta phải thu được Output cần tìm. d) Đầu vào và Đầu ra: Mọi thuật toán, dù có đơn giản đến mấy cũng phải nhận dữ liệu vào, xử lý nó và đưa ra kết quả cuối cùng. e) Tính hiệu quả : Dễ hiểu, dễ thực hiện và thực hiện nhanh. f) Tính phổ dụng: Một thuậttoán phải áp dụng được cho mọi trường hợp của bài toán chứ không phải áp dụng cho một vài trường hợp cụ thể. • GV: Số bước hữu hạn và tính chất dừng của thuậttoán gọi chung là tính hữu hạn. • GV: Tính chất hữu hạn của thuậttoán là một tính chất khá hiển nhiên. Ta có thể tìm ở đau ra một lời giải vấn đề- bài toán có vô số bước giải? • GV: Tính “Không mập mờ” và “có thể thực thi được” gọi chung là tính xác đònh. • GV: Tính đúng đắn cũng là một tính chất khá hiển nhiên nhưng là tính chất khó đạt tới nhất. Thật vậy, khi giải quyết 1 vấn đề- bài toán ta luôn mong muốn lời giải của mình sẽ cho kết quả đúng nhưng không phải lúc nào cũng đạt được. • Mọi học sinh khi làm bài kiểm tra điều muốn bài làm của mình có kết quả đúng, nhưng thực tế trong lớp chỉ có một số em làm đúng. • GV: Đây cũng là một tính chất khá hiển nhiên vì ta phải có GT , có thông tin gì đó thì ta mới có thể biết mình cần làm gì. • Sau khi làm một việc gì đó thì ta phải thu được một kết quả nào đó, nếu làm mà không có kết quả gì thì làm làm gì cho mệt. • GV: Tính hiệu quả của thuậttoán được đánh giá dựa trên một số tiêu chuẩn như: khối lượng tình toán, không gian, thời gian… Gi¸o Viªn : Lê Quốc Hoà Trang :4 Gi¸o ¸n Tin Häc Líp 10 Trêng THPT Hnh Thóc Kh¸ng Thêi gian Néi Dung Bµi Míi Ho¹t ®éng cđa ThÇy & Trß Ph¬ng TiƯn 3. Các Cách Biểu Diễn ThuậtToán : Ngoài cách liệt kê như trên người ta còn dùng sơ đồ khối để biểu diễn thuật toán. Trong sơ đồ khối người ta dùng một số khối để biểu diễn. Hình : Biểu diễn nhập / xuất dữ liệu. Hình : Thể hiện thao tác so sánh (điều kiện). Hình : Thể hiện các phép toán. Mũi tên : Quy đònh trình tự thực hiện các thao tác. III. Một Số Ví Dụ : Ví Dụ 1: Kiểm tra tính nguyên tố của một số nguyên dương. Bài toán : số 31 là nguyên tố hay không nguyên tố? Ví Dụ 2: Bài toán sắp xếp. Bài toán : Sắp xếp dãy: 3, 1, 5, 2, 4 theo thứ tự tăng dần. Ví Dụ 3: Bài toán tìm kiếm tuần tự. Bài toán : Tìm xem số 5 có trong dãy số : 1 7 4 5 6 9 8 không? Nếu có thì ở vò trí thứ mấy? Ví Dụ 4: Bài toán tìm kiếm nhò phânï. Bài toán : Tìm xem số 8 có trong dãy số : 1 4 5 6 8 9 12 14 không? Nếu có thì ở vò trí thứ mấy? VD: Tìm ƯCLN của 2 số a, b : • GV: Bây giờ lớp chúng ta sẽ tiến hành thảo luận nhóm trong 15 phút, để tìm hiểu về các ví dụ. • GV: Chia lớp thành 5 nhóm mỗi nhóm có nhiệm vụ nghiên cứu và thảo luận về ý tưởng vàthuậttoán của 2 ví dụ, sau đó thầy sẽ gọi bất kỳ 1 thành viên của 3 trong 5 nhóm lên trình bày thuậttoán và làm bài tập minh hoạ của 1 ví dụ bất kỳ của 1trong 2 ví dụ mà nhóm đảm trách. Chúng ta có tối đa là 10 phút để trình bày. • GV: Nếu nhóm nào có nhu cầu đổi đề sẽ trừ 2 điểm, đổi người trình bày trừ 3 điểm trong tổng số điểm đạt được. 4. Cđng Cè H íng DÉn Häc ë Nhµ : Thế nào là bài toán trong Tin học. Xác đònh Input và Out put của một bài toán. Thuậttoán là gì? Các cách mô tả thuật toán, mô tả một số thuậttoán đơn giản. Xem lại các ví dụ minh hoạ để hiểu rõ hơn về thuật toán. 5. Chn bÞ bµi cho tiÕt sau : Gi¸o Viªn : Lê Quốc Hoà Trang :5 Nhập a, b a = b Đ ƯCLN(a, b)=b a > b Đ a = a- b S S b = b- a Nhập a, b a = b Đ ƯCLN(a, b)=b a > b Đ a = a- b S S b = b- a Gi¸o ¸n Tin Häc Líp 10 Trêng THPT Hnh Thóc Kh¸ng Tìm hiểu khái niệm ngôn ngữ là gì? Ngôn ngữ lập trình là gì? Gi¸o Viªn : Lê Quốc Hoà Trang :6 . nào là bài toán trong Tin học. Xác đònh Input và Out put của một bài toán. Thuật toán là gì? Các cách mô tả thuật toán, mô tả một số thuật toán đơn giản -> Output được gọi là thuật toán. Mà vì sao lại gọi là thuật toán? • GV: Từ thuật toán (Algorithm) xuất phát từ tên một nhà toán học Al Khwarizmi sống