• Hiểu cách biểu diễn thuật toán bằng sơ đồ khối và bằng các bước liệt kê.Hiểu một số thuật toán bằng các bước thông dung.. 2Kỹ năng: Xây dựng được thuật toán giải một số bài toán đơn g
Trang 1Bài soạn:
B ÀI TỐN VÀ THUẬT TỐN
Mục tiêu
Chuẩn bị của
GV & HS
Tiến trình
lên lớp
Oån định lớp
kiểm tra bài cũ
bài mới
Tiết 14:
Trang 2
B ÀI TỐN VÀ THUẬT TỐN
✓ Mục tiêu:
1)Kiến thức:
Biết khái niệm bài toán và thuật toán, các tính chất của thuật toán.
• Hiểu cách biểu diễn thuật toán bằng sơ đồ khối và bằng các bước liệt kê.Hiểu một số thuật toán bằng các bước thông dung.
2)Kỹ năng: Xây dựng được thuật toán giải một số bài toán đơn
giản bằng sơ đồ khối hoặc bằng các bước liệt kê.
Mục tiêu
Chuẩn bị của
GV & HS
Tiến trình
Lên lớp
Oån định lớp
kiểm tra bài cũ
bài mới
Mục tiêu
Chuẩn bị của
GV & HS
Tiến trình
lên lớp
Oån định lớp
kiểm tra bài cũ
bài mới
Tiết 14:
Trang 3
B ÀI TỐN VÀ THUẬT TỐN
✓ Chuẩn bị của GV và HS:
*GV:Máy chiếu
* HS: Chuẩn bị trước sơ đồ khối ở nhà
✓ Tiến trình lên lớp:
* Ổ n định lớp.
*GV:Bài mới.
Mục tiêu
Chuẩn bị của
GV & HS
Tiến trình
lên lớp
Oån định lớp
kiểm tra bài cũ
bài mới
Tiết 14:
Trang 4
B ÀI TỐN VÀ THUẬT TỐN
*Kiểm tra bài cũ :
Câu hỏi: Hãy mô tả thuật toán tìm kiếm
tuần tự bằng phương pháp liệt kê (hay sơ đồ khối) Cho dãy số A gồm: 5, 7, 1, 4, 2,
9, 8, 11, 25, 51.
Với k =1 xét xem trong dãy có số hạng nào bằng k, nếu có hãy cho biết chỉ số đó?
TRẢ LỜI
Mục tiêu
Chuẩn bị của
GV & HS
Tiến trình
lên lớp
Oån định lớp
kiểm tra bài cũ
bài mới
Tiết 14:
Trang 5
Tập soạn giáo án
B ÀI TỐN VÀ THUẬT TỐN
Thuật toán tìm kiếm tuần tự bằng phương pháp liệt kê:
B1: Nhập N, các số hạng a1, a2, a3, …, aN và khoá k B2: i←1;
B3:Nếu ai=k thì thông báo chỉ số i, rồi kết thúc;
B4: i←i+1;
B5: Nếu i>N thì thông báo dãy A không có số hạng nào có giá trị bằng k, rồi kết thúc B6: Quay lại bước 3.
Mục tiêu
Chuẩn bị của
GV & HS
Tiến trình
lên lớp
Oån định lớp
kiểm tra bài cũ
bài mới
với k=1 thì a =1
*Mô phỏng việc thực hiện thuật toán trên là:
Theo đề ta có k=1 và N=10
-Tiết 14:
Trang 6
Tập soạn giáo án
Nội dung
Tiết 5:
Tiết 14:
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Tiết 14:
Trang 7
Tiết 14:
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Ví dụ 4: Bài toán tìm kiếm
Cho dãy A được sắp xếp theo thứ tự tăng dần gồm N số nguyên khác nhau : a1, a2, a3,
… , aN và một số nguyên k Cần biết có hay không chỉ số i (1 ≤ i ≤ N) mà ai=k Nếu có hãy cho biết chỉ số đó?
Trang 8Bài tốn cho biết cái gì?
Và cần tìm cái gì?
Input: Dãy A là dãy tăng gồm N số nguyên khác nhau a1, a2, a3 ,…,
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.
Tiết 14:
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Trang 9
Tiết 14:
Ví dụ
chứa một ý tưởng và cách tư duy (“chia để trị”và đệ quy) có thể dùng khi giải nhiều bài toán trong tin học.
Tại mỗi bước, phạm vi tìm kiếm được thu hẹp chỉ còn một nửa ta chia đôi dãy thành hai dãy con, hơn kém nhau không quá một phần tử ) do đó sẽ tăng nhanh tốc độ tìm kiếm
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Trang 10
Tiết 14:
Hãy suy nghĩ và cho biết ý tưởng xây dựng thuật toán này như thế nào?
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Trang 11Ý tưởng:
Tiết 14:
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 vi 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 agiua ở “giữa dãy” để so sánh với k, trong đó
Ta có ba trường hợp xãy ra như sau:
-Nếu agiua=k thì Giua là chỉ số cần tìm Việc tìm kiếm kết thúc -Nếu agiua >k thì do dãy A là dãy đã được sắp xếp nên việc tìm kiếm tiếp theo chỉ xét trên dãy a1, a2, a3, …, agiua – 1.
-Nếu agiua < k thì thực hiện tìm kiếm trên dãy aGiua +1, agiua+2, …,
=
2
1
N Giua
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Trang 12
Tiết 14:
Nội dung
B1: Nhập N, các số hạng a1, a2, a3, … , aN và khoá k.
B2: Dau ← 1, Cuoi ← N;
B3:
B4: Nếu agiua=k thì thông báo chỉ số Giua, rồi kết thúc;
B5: Nếu agiua>k thì đặt Cuoi = Giua -1, rồi chuyển đến bước 7;
B6: Dau = Giua + 1;
B7: Dau > Cuoi thì 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;
THUẬT TOÁN:
a)Cách liệt kê:
;
2
+
← Dau Cuoi
Giua
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Trang 13
Tiết 14:
Nội dung
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
Nhập N và a1, a2, a3, … , aN; k
Dau 1; Cuoi N Giua ←[(Dau+Cuoi)/2]
Agiua=k?
Đưa ra Giua rồi kết thúc
Agiua > k? Cuoi←Giua - 1
Dau←Giua +1 Dau > Cuoi ?
sai
Đúng
sai Đúng
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Trang 14
Tiết 14:
Nội dung
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Mô phỏng thuật toán
K=21, N=10
Ở lần duyệt thứ ba thì agiua =k vậy chỉ số cần tìm là:
Trang 15
Tiết 14:
Nội dung
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán
Mô phỏng thuật toán
K=25, N=10
Dau
cuối Giau
a giua Lần duyệt
Bằng cách tương tự hãy duyệt thuật toán trên và cho biết trong dãy có số hạng nào bằng k nếu có hãy cho biết chỉ số đó?
Trang 16HDVN:
-So sánh việc tìm kiếm của thuật toán tìm kiếm tuần tự và tìm kiếm nhị phân.
-Cho ví dụ và mô phỏng lại các bài toán.
-Làm các bài tập SGK +SBT
Tiết 14:
Nội dung
Bài toán tìm kiếm
Nội dung
Yù tưởng
Xác định bài toán
Xây dựngThuật toán
Mô phỏng thuật toán