Tin 10 tuan 07
Giaùo aùn Tin 10 Tuần: 07 Tiết: 13 Ngày soạn:24/09/2012 §4. BÀI TOÁN VÀ THUẬT TOÁN (tt) I. Mục tiêu Học sinh cần nắm: 1. Kiến thức : - Biết khái niệm bài toán và thuật toán, các tính chất của thuật toán. - Hiểu cách biễu diễn thuật toán bằng sơ đồ khối và bằng liệt kê các bước; - Hiểu một số thuật toán thông dụng. 2.Kĩ năng: Xây dựng được thuật toán giải một số bài toán đơn giản bằng sơ đồ khối hoặc liệt kê các bước. 3. Thái độ: Học sinh cần nhận thức được tầm quan trọng của môn học, vị trí của môn học trong hệ thống kiến thức phổ thông và những yêu cầu về mặt đạo đức trong xã hội tin học hóa. II. Phương pháp -Phương pháp của thầy: Gợi mở, vấn đáp, thảo luận. -Phương pháp của trò: Trả lời vấn đáp, nghe, ghi chép. III. Phương tiện dạy học -Chuẩn bị của giáo viên: SGK, SGV, Computer và projector (nếu có). -Chuẩn bị của học sinh: Sách giáo khoa, đọc trước bài ở nhà. III. Tiến trình bài học: 1. Ổn định lớp:Kiểm tra sĩ số. 2. Kiểm tra bài cũ: không có 3.Trình bày bài mới: HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG - Trong cuộc sống chúng ta, thường xảy ra việc tìm kiếm. Chảng hạn: tìm kiếm tên của 1 học sinh trong 1 lớp, tìm 1 quyển sách trong thư viện. Điều quan tâm ở đây là tìm kiếm như thế nào? - Ví dụ: 5 7 1 4 2 + k = 2 I = ? + k = 6 I = ? - Nêu các bước giải bài toán? - Ghi bài. - Cho ví dụ tìm kiếm 1 đối tượng nào đó. - Suy nghỉ + I = 5 + Không có i * Xác định bài toán: Input: Output: * Ý tưởng. * Thuật toán. * Thuật toán tìm kiếm tuần tự (Sequential sort) Bài toán: Cho dãy A gồm N số nguyên khác nhau: a 1 ,a 2 ,…,a N và mpptk số nguyên k. Cần biết hay không chỉ số I ( Ni ≤≤1 ) mà a i = k. Nếu có hãy cho biết chỉ số đó. Các bước giải bài toán: có 3 bước. * Xác định bài toán: Input: Dãy A gồm N số nguyên a 1 ,a 2 , …,a N và khóa k. Output: chỉ số I mà a i = k.hoặc không có số hạng nào. * Ý tưởng. Tìm kiếm tuần tự một cách tự nhiên. Lần lượt từ số hạng thứ 1, so sánh các số hạng đến khi gặp số hạng bằng khóa, hoặc không có giá trị nào bằng Trang 32 Giaùo aùn Tin 10 - Nêu các bước của thuật toán? - Những điều cần lưu ý. - Lần lượt vẽ sơ đồ khối. - Trong thuật toán trên giá trị biến i biến đổi từ giá trị nào đến giá trị nào? - Xem bài tập trang 7 SGK trang 44. Các nhóm thực hiên. - Gợi ý trình bày. * Lưu ý: B1: Các số khác nhau. B3 và B5 lưu ý các biểu thức điều kiện. - Học sinh thực hiện. - Từ 1 đến N + 1. - Các nhóm thực hiện lên bảng trình bày. - Nhận xét. khóa. * Thuật toán. B1: Nhập N, các số hạng khác nhau a 1 ,a 2 , …,a N và khóa k B2: i ß 1; B3: Nếu a i = k thì thông qua chỉ số i, rồi kết thúc B4: i ß i + 1; B5: Nếu i > N thì thông báo dãy A không có số hạng nào bằng k rồi kết thúc. B6: Quay lại bước 3. Vẽ sơ đồ: Dãy A có N = 7 khóa k = 10 Tìm chỉ số i để a i = k. i 1 2 3 4 5 6 7 a i 7 12 4 6 11 10 8 k = 10 i = 6 * Ghi chú: Trong thuật toán trên, i là biến chỉ số và nhận giá trị nguyên lần lượt từ 1 đến N + 1 * Bài tập thảo luận nhóm: Cho N và dãy số a 1 ,a 2 ,…,a N , hãy cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 0 * Gợi ý: Sử dụng thuật toán trong bài, sử dụng biến đếm để đếm số lần giá trị 0 xuất hiện trong dãy. IV. Củng cố và dặn dò: 1. Củng cố Cho N và dãy số a 1 ,a 2 ,…,a N , hãy cho bết có bao nhiêu số hạng trong dãy có giá trị bằng 0. 2. Dặn dò : - Xem lại bài đã học - Chuẩn bị phần tiếp theo của bài học “Thuật toán tìm kiếm nhị phân”. V. Rút kinh nghiệm: . . . Trang 33 Nhập N và a 1 ,a 2 ,…,a N và k i ß 1 a i = k ? Đúng Sai i ß i + 1 i > N ? Đúng Dãy A không có số hạng bằng k, rồi kết thúc Sai Giaùo aùn Tin 10 Tuần: 07 Tiết: 14 Ngày soạn:24/09/2012 §4. BÀI TOÁN VÀ THUẬT TOÁN (tt) I. Mục tiêu Học sinh cần nắm: 1. Kiến thức : - Biết khái niệm bài toán và thuật toán, các tính chất của thuật toán. - Hiểu cách biễu diễn thuật toán bằng sơ đồ khối và bằng liệt kê các bước; - Hiểu một số thuật toán thông dụng. 2. Kĩ năng: Xây dựng được thuật toán giải một số bài toán đơn giản bằng sơ đồ khối hoặc liệt kê các bước. 3. Thái độ: Học sinh cần nhận thức được tầm quan trọng của môn học, vị trí của môn học trong hệ thống kiến thức phổ thông và những yêu cầu về mặt đạo đức trong xã hội tin học hóa II. Phương pháp -Phương pháp của thầy: Gợi mở, vấn đáp, thảo luận. -Phương pháp của trò: Trả lời vấn đáp, nghe, ghi chép. III. Phương tiện dạy học -Chuẩn bị của giáo viên: SGK, SGV, Computer và projector (nếu có). -Chuẩn bị của học sinh: Sách giáo khoa, đọc trước bài ở nhà. III. Tiến trình bài học: 1. Ổn định lớp:Kiểm tra sĩ số. 2. Kiểm tra bài cũ: không có 3.Trình bày bài mới: HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG HS NỘI DUNG - Tìm Input và Output của bài toán? - Các em cho dãy số bất kỳ. k = 4 và N = 6 2 4 5 6 9 13 - Các em chia thành 2 dãy dãy con. - Chỉ số ở giữa dãy là bao nhiêu? So sánh a giua với khóa k? - Các em thảo luận để hình thành ý tưởng cho bài toán? - Trả lời - Cho dãy số tăng dần. - Chia: Dãy 1: 2 4 5 Dãy 2: 6 9 13 Ta thấy tìm kiếm trên dãy 1 có giá trị bằng k - Giữa = 3. - a giua = 5 > k nên ta tìm trên dãy 1. - Các nhóm thảo luận và trình bày. - Ghi ý tưởng của bài toán. Thuật toán tìm kiếm nhị phân (Binary Search) * Xác định bài toán: + Input: Dãy A gồm N số nguyên khác nhau và 1 số nguyên k; + Output: Chỉ số I mà a i = k hoặc thông báo không có số hạng nào của dãy có giá trị bằng k. * Ý tưởng: Sử dụng tính chất dãy A là dãy tăng, ta thu hẹp phạm vi tìm kiếm sau mỗi lần so sánh với số hạng được chọn. • Ta chọn a giua ở giữa dãy để so sánh với k, trong đó Giữa = + 2 1N * Xảy ra 1 trong 3 điều kiện sau: Trang 34 Giaựo aựn Tin 10 - Hc sinh tho lun trỡnh by cỏc bc cho thut toỏn v v s khi? - Gi 2 nhúm thc hin v s khi? - Chiu hỡnh nh cỏc hc sinh cũn li ghi bi. - Ly vớ d: K = 21 v N = 10 (SGK) minh ha chy theo thut toỏn s khi. + Mi 1 hc sinh cho 1 khúa k bt k chy thut toỏn vi cỏc s hng trờn? - Phỏt phiu hc tp (vớ d mụ phng vi dóy gm 10 s nguyờn cho trc), cỏc nhúm tho lun trỡnh by. - Ln lt cỏc hs lờn bng. - Cỏc nhúm thc hin. - Chỳ ý. - Ghi vớ d. - Hc sinh thc hin. - V s khi. - Cỏc nhúm thc hin v trỡnh by. - Nu a giua = k tỡm c ch s, kt thỳc; - Nu a giua > k do dóy A ó c sp xp tng nờn vic tỡm kim thu hp ch xột t a 1 a gua - 1; - Nu a giua < k do dóy A ó c sp xp tng nờn vic tỡm kim thu hp ch xột t a giua + 1 a N . * Thut toỏn: Bc 1: Nhp N, cỏc s hng v giỏ tr khoỏ k; Bc 2: u 1, Cui N; Bc 3: Gia [(u + Cui)/2]; Bc 4: Nu a giua = k thỡ thụng bỏo ch s Gia ri kt thỳc; Bc 5: Nu a giua > k thỡ t Cui = Gia - 1 ri chuyn sang bc 7 Bc 6: u Gia + 1; Bc 7: Nu u > Cui thỡ thụng bỏo dóy A khụng cú s hng cú giỏ tr bng k, ri kt thỳc Bc 8: Quay li bc 3. b) S khi SGK Trang 43 Dới đây là ví dụ mô phỏng các bớc thực hiện thuật toán trên. k = 21, N =10 k = 25, N =10 i 1 2 3 4 5 6 7 8 9 10 i 1 2 A 2 4 5 6 9 21 22 30 31 33 A 2 4 Dau 1 6 6 Dau 1 6 Cuoi 10 10 7 Cuoi 10 10 Giua 5 8 6 Giua 5 8 a Giua 9 30 21 a Giua 9 30 Lợt 0 1 2 Lợt 0 1 Ln lợt thứ hai thì a Giua = k. Vậy chỉ số cần tìm là i = Giua = 6. Tại lợt thứ t trong dãy A không có số hạng nào có giá trị là 25 cả. IV. Cng c v dn dũ: 1. Cng c : Cho N v dóy s tng dn a 1 ,a 2 ,,a N , hóy tỡm 1 khúa no ú 2. Dn dũ: - Xem li bi ó hc. Trang 35 Giaùo aùn Tin 10 - Chuẩn bị bài tập trang 44. V. Rút kinh nghiệm: . . . . . . . . . . . Trang 36 . trên. k = 21, N =10 k = 25, N =10 i 1 2 3 4 5 6 7 8 9 10 i 1 2 A 2 4 5 6 9 21 22 30 31 33 A 2 4 Dau 1 6 6 Dau 1 6 Cuoi 10 10 7 Cuoi 10 10 Giua 5 8 6 Giua. 3. Vẽ sơ đồ: Dãy A có N = 7 khóa k = 10 Tìm chỉ số i để a i = k. i 1 2 3 4 5 6 7 a i 7 12 4 6 11 10 8 k = 10 i = 6 * Ghi chú: Trong thuật toán