II. Khái niệm thuật toán: Ví dụ: Tìm giá trị lớn nhất
H. So sánh 2 bài toán tìm kiếm trong 2 thuật toán?
trong 2 thuật toán?
• GV hướng dẫn HS tìm thuật toán giải bài toán.
• Minh hoạ qua việc tra từ điển Cho các nhóm thảo luận việc tra từ điển. Từ đó rút ra thuật toán.
Đ. Dãy A ở đây là dãy tăng
phạm vị tìm kiếm sau mỗi lần so sánh khoá với số hạng được chọn, ta chọn số hạng aGiữa ở " giữa dãy" để so sánh với k, trong đó Giưa = N2+1
. Khi đó: - Nếu aGiưa = k thì Giưa là chỉ số cần tìm.
- Nếu aGiưa> k thì do dãy A là dãy đã sắp xếp nên việc tìm kiếm tiếp theo chỉ xét trên dãy a1, a2, …, aGiưa-1 . - Nếu aGiưa < k thì thực hiện tìm kiếm trên dãy aGiưa+1, aGiưa+2, …, an.
Quá trình trên sẽ được lặp lại một số lần cho đến khi hoặc đã tìm thấy khoá k trong dãy A hoặc phạm vi tìm kiếm bằng rỗng. • Thuật toán: * Cách liệt kê: - B1: Nhập N, các số hạng a1, a2, …, aN và khoá k - B2: Dau ¬ 1,Cuoi ¬ N;
- B3: Giưa = Dau Cuoi+2
;
- B4: Nếu aGiưa = k thì thông báo chỉ số Giưa, rồi kết thúc;
- B5: Nếu aGiưa > k thì đặt Cuoi = Giưa - 1, rồi chuyển đến bước 7;
- B6: Dau ¬ Giưa +1;
- B7: Nếu Dau > cuoi thì thông báo dãy A không có số hạng nào có giá trị bằng k, kết thúc;
- B8: Quay lại bước 3.
Hoạt động 5: Mô tả thuật toán bằng sơ đồ khối
5
Hoạt động 6: Mô phỏng việc thực hiện thuật toán
5
Mô phỏng việc thực hiện
thuật toán với N = 10,k= 21 k = 21, N =10
i 1 2 3 4 5 6 7 8 9 10 A 2 4 5 6 9 21 22 30 31 33 Dau 1 6 6 Cuoi 10 10 7 Giua 5 8 6 aGiua 9 30 21 Lỵt 1 2 3 lỵt th ba th× aGiua = k. Vy ch s cÇn t×m lµ i = Giua = 6. Hoạt động 7: Củng cố các kiến thức đã học 3 • GV cho HS nhận xét điểm
khác biệt cơ bản của 2 thuật toán • Các nhóm thảo luận và trình bày
4. BÀI TẬP VỀ NHÀ:
– Mô phỏng việc thực hiện thuật toán với dãy số khác. – Bài 3, 7 SGK.
IV. RÚT KINH NGHIỆM, BỔ SUNG:
... ... ...
Ngày soạn: 07/2008 Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA TIN HỌC
Tiết dạy: 15 Bài 4: BÀI TẬP BÀI TOÁN VÀ THUẬT TOÁN
Tuần: 08 I. MỤC TIÊU:
Kiến thức:
– Hiểu một số thuật toán đã học như sắp xếp, tìm kiếm.
Kĩ năng:
– Biết cách tìm thuật toán giải một số bài toán đơn giản.
Thái độ:
– Luyện khả năng tư duy lôgic khi giải quyết một vấn đề nào đó.
II. CHUẨN BỊ:
Giáo viên: Giáo án + bảng vẽ sơ đồ khối Học sinh: SGK + vở ghi. Làm bài tập
III. HOẠT ĐỘNG DẠY HỌC:
1. Ổn định tổ chức: Kiểm tra sĩ số lớp.
2. Kiểm tra bài cũ:
Hỏi: Nêu thuật toán giải bài toán: Tìm giá trị lớn nhất của một dãy số nguyên ?
Đáp: 3. Giảng bài mới:
TL Nội dung Hoạt động của Giáo viên Hoạt động của Học sinh
Hoạt động 1: Luyện tập cách xác định bài toán
10 Bài 1: Hãy xác định các bài toán sau:
a) Tính chu vi hình chữ nhật khi cho biết chiều dài và chiều rộng của hình chữ nhật đó.
b) Tìm giá trị lớn nhất của 2 số a, b.
• Cho các nhóm thảo luận, gọi 1
HS bất kì trong nhóm trả lời. • HS trả lời
a) Input: chiều dài, ciều rộng Output: chu vi
b) Input: a, b
Output: GTLN của a và b.
Hoạt động 2: Mô tả thuật toán giải các bài toán bằng cách liệt kê hoặc bằng sơ đồ khối.
10 Bài 2: Cho N và dãy số a1, a2, …, aN. Hãy tìm thuật toán cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 0.
• Cho các nhóm thực hiện lần lượt các bước để tìm thuật toán. Gọi 1 HS bất kì trong nhóm trả lời.
H1. Xác định bài toán?
H2. Nêu ý tưởng thuật toán?
• HS trả lời
Đ1. Input: N, a1, a2, …, aN
Output: số Dem cho biết số lượng số 0 có trong dãy số trên.
Đ2.
– Ban đầu Dem = 0
– Lần lượt duyệt qua dãy số, nếu gặp số hạng nào bằng 0 thì tăng giá trị Dem lên 1.
20 •Thuật toán: a) Liệt kê:
B1: Nhập N, a1, a2, …, aN
B2: i ← 0; Dem ← 0
B3: i ← i + 1
B4: Nếu i > N thì thông báo giá trị Dem, rồi kết thúc.
B5: Nếu ai = 0 thì Dem ←
Dem + 1.
B6: Quay lại B3.
Mô phỏng việc thực hiện thuật toán:
a) N = 10, dãy A: 1, 2, 0, 4, 5, 0, 7, 8, 9, 0 → Dem = 3 b) N = 10, dãy A: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 → Dem = 0
Hoạt động 3: Củng cố
2 • Cho HS nhắc lại các bước tìm
thuật toán giải 1 bài toán. • HS nhắc lại
4. BÀI TẬP VỀ NHÀ:
– Xem lại các thuật toán đã học. – Chuẩn bị kiểm tra 1 tiết.
IV. RÚT KINH NGHIỆM, BỔ SUNG:
... ... ...
Ngày soạn: Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA TIN HỌC
Tiết dạy: 16 BÀI KIỂM TRA 1 TIẾT
Tuần: 08 I. MỤC TIÊU:
Kiến thức:
– Củng cố các kiến thức đã học về: thông tin và dữ liệu, cấu trúc máy tính, bài toán và thuật toán.
Kĩ năng:
– Biết mã hoá thông tin, mô phỏng việc thực hiện một thuật toán.
Thái độ:
– Rèn luyện tính nghiêm túc trong khi làm bài.
II. CHUẨN BỊ:
Giáo viên: Đề bài kiểm tra. Học sinh: Ôn lại kiến thức đã học.
III. HOẠT ĐỘNG DẠY HỌC:
1. Ổn định tổ chức: Kiểm tra sĩ số lớp.