Tiết 11
Đ4. bài toán và thuật toán (tiết 2)
I. Mục tiêu bài dạy:
1. Kiến thức:
- HS hiểu đúng khái niệm bài toán và thuật toán;
- HS hiểu rõ khái niệm thuật toán là cách giải bài toán mà về nguyên tắc có thể giao cho máy thực hiện;
- HS cần hiểu và thực hiện đợc một số thuật toán đơn giản trong SGK;
2. Kĩ năng:
- HS xây dựng đợc thuật toán cho một số bài toán đơn giản. Qua đó hình thành một kĩ năng chuẩn bị tiếp thu việc học ngôn ngữ lập trình: Cách dùng biến, khởi tạo biến giá trị biến.
II. Phơng pháp, phơng tiện dạy học:
- Thuyết trình kết hợp vấn đáp. - Sách giáo khoa, giáo án tin 10. - Bảng trắng.
III. Nội dung.
Nội dung Hoạt động của GV và HS
* Kiểm tra bài cũ:
Câu hỏi 1: Các yếu tố nào cấu thành bài toán?
Câu hỏi 2: Thuật toán là gì?
2. Khái niệm thuật toán.
Ví dụ. Tìm giá trị lớn nhất của một dãy số nguyên.
+Xác định bài toán.
- Input: Số nguyên dơng N và dãy N số nguyên a1,..., aN.
- Output: Giá trị lớn nhất Max của dãy số.
+ ý tởng:
- Khởi tạo giá trị Max = a1.
- Lần lợt với i từ 2 đến N, so sánh giá trị số hạng ai với giá trị Max, nếu ai > Max thì Max nhận giá trị mới là ai
GV: Gọi học sinh lên bảng. HS: Lên bảng và trả lời câu hỏi. GV: Đánh giá nhận xét và cho điểm.
GV: Cho HS xác định bài toán.
GV: Nêu ý tởng và minh hoạ bởi một dãy cụ thể.
Hình 1 Đúng Đúng Sai Nhập N và dãy a1,..., aN Max ← ai ai > Max? i > N ? Max ← a1, i ← 2 Đưa ra Max rồi kết thúc i ← i + 1 + Thuật toán: Dạng 1: Liệt kê Bớc 1. Nhập N và dãy a1,..., aN; Bớc 2. Max ←a1, i← 2;
Bớc 3. Nếu i > N thì đa ra giá trị Max rồi kết thúc;
Bớc 4.
Bớc 4.1. Nếu ai > Max thì Max ←
ai;
Bớc 4.2. i←i + 1 rồi quay lại bớc 3;
Ghi chú
+) i là biến chỉ số các số hạng của dãy và có giá trị nguyên thay đổi từ 2 đến N + 1.
+) ← Phép gán giá trị của biểu thức bên phải cho biến ở bên trái mũi tên.
+) thể hiện thao tác so sánh; +) thể hiện các phép tính toán;
+) quy định trình tự thực hiện các thao tác;
+) thể hiện thao tác nhập, xuất dữ liệu.
GV: Gợi ý
HS: Nêu thuật toán.
GV: Chỉ dẫn cho HS từ dạng 1 chuyển sang dạng 2.
Dạng 2: Sơ đồ khối:
Ví dụ: Mô phỏng các bớc thực hiện thuật toán trên với N = 11 và dãy A: 5, 1, 4, 7, 6, 3, 15, 8, 4, 9, 12. Dãy A 5 1 4 7 6 3 15 8 4 9 12 i 2 3 4 5 6 7 8 9 10 11 12 Max 5 5 5 7 7 7 15 15 15 15 15 Vậy: max{A} = 15
- Tính dừng: Thuật toá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;
- Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để đợc thực hiện tiếp theo;
- Tính đúng đắn: Sau khi thuật toán kết thúc, ta phải nhận đợc Output cần tìm.
GV: Cho HS từ ví dụ tìm max của dãy a1, ..., an xác định các tính dừng, tính xác định và tính đúng đắn của bài toán.
III. Củng cố:
- Muốn giải một bài toán trớc tiên ta cần xác định đợc I/O. + Input?
+ Output?
- Thuật toán có 3 tính chất? Lấy ví dụ để minh hoạ 3 tính chất này. - Hớng dẫn học sinh thuật toán tìm min{aN}