Bài 4: Bàitoánvàthuậttoán I- Mục tiêu: 1. Về kiến thức: - Biết cách diễn tả thuậttoán bằng một trong hai phơng pháp: Liệt kê và sơ đồ khối. - Nắm dợc các tính chất cơ bản của thuật toán. 2. Về kĩ năng: - Diễn tả đợc thuậttoán theo cách liệt kê hoặc bớc đầu thể hiện đợc thuậttoán bằng sơ đồ khối. - Hiểu và diễn tả đợc một số bàitoán cơ bản. 3. Về thái độ: Rèn luyện lòng say mê nghiên cứu tìm hiểu và t duy khoa học. Tác phong làm việc độc lập sáng tạo, nâng cao lòng say mê học tập bộ môn. II- Chuẩn bị: 1. Giáo viên: - Chuẩn bị tranh vẽ, máy tính và một số bàitoán áp dụng để rèn luyện kỹ năng biểu diễn thuật toán. 2. Học sinh: - Sách giáo khoa và các ví dụ trong sách giáo khoa. III- Hoạt động dạy học: Hoạt động của giáo viên Hoạt động của học sinh 1. ổn định lớp: 2. Bài cũ: ? Thuậttoán là gì? Nêu các tính chất của thuật toán? ? Hãy diễn tả thuậttoán liệt kê đối với bàitoán kiểm tra N có phải là số nguyên tố hay không? 3. Bài mới: Hoạt động 1 Giới thiệu và hớng dẫn cho học sinh mô tả thuậttoán của một số bàitoán điển hình- bàitoán sắp xếp. Trong cuộc sống ta thờng gặp những việc liên quan đến sắp xếp nh xếp các học sinh theo thứ tự từ thấp đến cao, xếp điểm trung bình của học sinh theo thứ tự từ cao đến thấp. Nói một cách tổng quát cho một dãy đối tợng, cần sắp xếp lại vị trí các đối tợng theo một tiêu chí nào đó. HS báo cáo sĩ số, Suy nghĩ và trả lời Theo dõi, lắng nghe. 1 Sau đây ta chỉ xét bàitoán sắp xếp dạng đơn giản. Bài toán: Cho dãy A gồm N số nguyên a 1 , a 2 ,., a n . Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm (tức là số hạng trớc không lớn hơn số hạng sau). ? Hãy xác định bài toán? ? Từ input và output của bàitoán em hãy nêu ý tởng giải bài toán? nghĩa là ta lấy a 1 so sánh với a 2 nếu a 1 >a 2 thì ta tiến hành đổi chỗ hai vị trí này cho nhau, lần lợt so sánh cho đến khi không còn có sự đổi chỗ xảy ra nữa. ? Từ ý tởng của bàitoán em hãy viết thuậttoán dạng liệt kê? Sau mỗi lần duyệt giá trị lớn nhất của dãy A sẽ đợc chuyển về cuối dãy số và sau lợt sắp xếp thứ nhất thì giá trị lớn nhất đợc xếp đúng vị trí là ở cuối dãy. T- ơng tự nh vậy cho các lợt tiếp theo. Tóm lại, sau mỗi lần duyệt có ít nhất một số hạng đợc sắp xếp đúng vị trí và không còn tham gia vào quá trình đổi chỗ nữa, giống nh các bọt nớc từ đáy hồ đã lên mặt nớc ( cuối dãy) rồi tan biến. Có thể vì thế mà sắp xếp bằng tráo đổi còn có tên gọi là sắp xếp nổi bọt. a) Xác định bài toán: - INPUT: Dãy A gồm N số nguyên a 1 , a 2 , , a N . - OUTPUT: Dãy A đợc sắp xếp thành dãy không giảm. Thảo luận nhóm và trả lời: b) ý tởng bài toán: Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trớc lớn hơn số sau ta đổi vị trí chúng cho nhau. Việc đó đợc lặp lại cho đến khi không có sự đổi chỗ nào xảy ra nữa. Thuậttoán dạng liệt kê: B1: Nhập N, các số hạng a 1 , a 2 ,., a N ; B2: M ơ N; B3: Nếu M < 2 thì đa ra dãy A đã sắp xếp rồi kết thúc; B4: M ơ M - 1; i ơ 0; B5: i ơ i +1; B6: Nếu i > M thì quay lại B3; B7: Nếu a i > a i +1 thì tráo đổi a i và a i +1 cho nhau; B8: Quay lại B5. - Ghi chú: Qua nhận xét trên ta thấy quá trình so sánh và đổi chỗ sau mỗi lợt chỉ thực hiện với dãy đã bỏ bớt số hạng cuối dãy. Để thực hiện đợc điều đó trong thuậttoán sử dụng biến nguyên M có giá trị khởi tạo là N, sau mỗi lần M giảm một đơn vị cho đến khi M < 2. - Trong thuậttoán trên, i là biến chỉ số có giá trị nguyên thay đổi lần lợ từ 0 đến M +1. ? Từ thuậttoán liệt kê, em hãy viết thuậttoán bằng sơ đồ khối? Học sinh suy nghĩ, thảo luận và trình bày. 2 Hoạt động 2: Mô phỏng thuậttoán với N =6 dãy A gồm các số hạng sau: Dãy A: 3 5 9 8 1 7 Lợt thứ nhất: 3 718953 719853 791853 971853 Nhập N và a 1 , a 2 , ., a N M N M < 2 ? M M - 1; i 0 i i + 1 i > M ? a i > a i+1 ? Tráo đổi a i và a i+1 Đưa ra A đ sắp xếpã rồi kết thúc Đ Đ Đ S S S Lợt thứ hai: Lợt thứ ba: Lợt thứ t: Cuối cùng ta đợc dãy số: 1 3 5 7 8 9 IV- Đánh giá cuối bài: 1. Nhắc lại những nội dung đã học: - Khái niệm thuậttoánvà các tính chất của thuật toán. - Cách biểu diễn thuậttoán bằng liệt kê và bằng sơ đồ khối. - Biết cách mô phỏng thuậttoán thông qua ví dụ cụ thể. 2. Bài tập áp dụng: Câu 1: Cho một dãy A gồm N số nguyên dơng a 1 ,., a n . Hãy sắp xếp dãy số trên thanh dãy không tăng. IV- Rút kinh nghiệm: 4 987153 987513 987513 971853 978153 987153 . Bài 4: Bài toán và thuật toán I- Mục tiêu: 1. Về kiến thức: - Biết cách diễn tả. a N ; B2: M ơ N; B3: Nếu M < 2 thì đa ra dãy A đã sắp xếp rồi kết thúc; B4: M ơ M - 1; i ơ 0; B5: i ơ i +1; B6: Nếu i > M thì quay lại B3; B7: Nếu