So sánh 2 bài toán tìm kiếm

Một phần của tài liệu Giáo án tin học 10 (kỳ 1) (Trang 32 - 35)

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?

• 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

Đ. Dãy A ở đây là dãy tăng

tìm cách thu hẹp nhanh 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.

từ điển. Từ đó rút ra thuật toán.

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: Tiết dạy: Tuần: Ngày dạy: 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ũ: 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

• Hướng dẫn HS liệt kê các bước của thuật toán và vẽ sơ đồ khối.

Một phần của tài liệu Giáo án tin học 10 (kỳ 1) (Trang 32 - 35)

Tải bản đầy đủ (DOC)

(153 trang)
w