II. Khái niệm thuật tốn: Ví dụ: Tìm giá trị lớn nhất
b) Thuật tốn tìm kiếm nhị phân (Binary Search)
nhị phân (Binary Search)
Xác định bài tốn
- Input: Dãy A là dãy tăng gồm N số nguyên khác nhau a1, a2, …, aN và một số nguyên k
- Output: Chỉ số i mà ai = k hoặc thơng báo khơng cĩ số hạng nào của dãy A cĩ giá trị bằng k.
Ý tưởng: Sử dụng tính chất dãy A là dãy tăng, ta tìm cách thu hẹp nhanh phạm vị tìm kiếm sau mỗi
Nhấn mạnh dãy A là một dãy tăng. H. So sánh 2 bài tốn tìm kiếm trong 2 thuật tốn? GV hướng dẫn HS tìm thuật tốn giải bài tố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 tốn.
Đ. Dãy A ở đây là dãy tăng
lần so sánh khố 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 = 1 2 N . 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 khố k trong dãy A hoặc phạm vi tìm kiếm bằng rỗng. Thuật tốn: * Cách liệt kê: - B1: Nhập N, các số hạng a1, a2, …, aN và khố k - B2: Dau 1,Cuoi N; - B3: Giưa = 2 Dau Cuoi ; - 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 tốn bằng sơ đồ khối
5
* Sơ đồ khối
Dau 1; Cuoi N Nhập N và a1, a2, …, aN; k
Giua (Dau + Cuoi)/2 aGiua = k
Đưa ra Giua rồi kết thúc
aGiua > k
Dau Giua + 1
Cuoi Giua - 1 Dau > Cuoi
Thơng báo dãy A khơng cĩ số hạng cĩ giá trị bằng k rồi kết thúc Đ S Đ S S Đ
Hoạt động 6: Mơ phỏng việc thực hiện thuật tốn
5
Mơ phỏng việc thực hiện
thuật tố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 tố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 tố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 TỐN VÀ THUẬT
I. MỤC TIÊU:
Kiến thức:
– Hiểu một số thuật tốn đã học như sắp xếp, tìm kiếm.
Kĩ năng:
– Biết cách tìm thuật tốn giải một số bài tố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 tốn giải bài tố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 tốn
10
Bài 1: Hãy xác định các bài tố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 tốn giải các bài tố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 tố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 tốn. Gọi 1 HS bất kì trong nhĩm trả lời.
H1. Xác định bài tốn?
H2. Nêu ý tưởng thuật tố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 tố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.
Hướng dẫn HS liệt kê các bước của thuật tốn và vẽ sơ đồ khối.
Ngày soạn: 26/8/2016 Tiết dạy: 15
Tuần: 8
Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA TIN HỌC Bài Tập
B5: Nếu ai = 0 thì Dem Dem + 1. B6: Quay lại B3. Nhập N, a1, a2, …, aN i 0; Dem 0 i > N ai = 0 Dem Dem + 1 i i + 1
Thơng báo giá trị Dem, rồi kết thúc Đ
S
ĐS S
Mơ phỏng việc thực hiện thuật tố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 tốn giải 1 bài tốn. HS nhắc lại
4. BÀI TẬP VỀ NHÀ:
– Xem lại các thuật tốn đã học. – Chuẩn bị kiểm tra 1 tiết.
IV. RÚT KINH NGHIỆM, BỔ SUNG:
... ... ...
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 tốn và thuật tốn.
Kĩ năng:
– Biết mã hố thơng tin, mơ phỏng việc thực hiện một thuật tố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.