Đ4:Bài toán và thuật toán
Tiết 14: Bài toán tìm kiếm tuần tự
Ngày soạn:
Ngày dạy:
Ngời soạn: Phạm Đình Thanh
GVHD: Lê Bích Liên
I. Mục đích yêu cầu
1.Mục đích
Hiểu đợc thuật toán tìm kiếm tuần tự.
Hình thành phát triển t duy logic, t duy giải thuật.Góp phần phát
triển nhân cách con ngời trong xã hội tin học
2.Yêu cầu
Nắm bắt đợc các bớc của thuật toán tìm kiếm tuần tự.
Hiểu và thực hiện đợc thuật toán tìm kiếm tuần tự
II. Phơng pháp và đồ dùng học tập
1. Phơng pháp: Thuyết trình và đặt câu hỏi gợi ý cho học sinh
2. Đồ dùng học tập: Sách giáo khoa, sách giáo viên
III. Nội dung bài giảng
*Bảng phân phối :
Nội dung Thời gian
ổn định lớp
Kiẻm tra bài cũ
1
10
Đặt vấn đề
Xác định bài toán
ý tởng
Thuật toán
+ Liệt kê
+ Sơ đồ khối
Ví dụ mô phỏng
1
4
5
15
10
5
5
Củng cố
4
1
1. ổn định lớp
Lớp: Sí số: Vắng: Có phép: .Không phép:
2.Kiểm tra bài cũ:
Câu hỏi: Hãy xác định bài toán và nêu thuật toán bằng phơng pháp liệt
kê của thuật toán sắp xếp bằng tráo đổi.
Đáp án:
Xác định bài toán:
- Input: Dãy A gồm n số nguyên a1,a2, ,aN.
- Output: Dãy A đơc sắp xếp lại thành dãy không giảm.
Thuật toán bằng cách liệt kê:
B1: Nhập N, các số hạng a
1
,a
2
, ,a
N
;
B2: M N;
B3: Nếu M<2 thì đa ra dãy A đợc sắp xếp rồi kết thúc;
B4: M M-1, i0;
B5: i i+1;
B6: Nếu i>M thì quay lại bớc 3;
B7: Nếu a
i
> a
i+1
thì tráo đổi a
i
và a
i+1
cho nhau;
B8: Quay lại bớc 5.
3.Bài mới:
Đặt vấn đề:
Tìm kiếm là việc thờng xảy ra trong cuộc sống, chẳng hạn cần tìm
cuốn sách giáo khoa Tin học 10 trên giá sách, cần tìm một học sinh
trong danh sách một lớp học, Hôm nay chúng ta sẽ tìm hiểu một thuật
toán mới Thuật toán tìm kiếm tuần tự.
Nội dung Hoạt động của giáo viên và hoạt
động của học sinh
Bài toán
Cho dãy A gồm N số nguyên khác nhau
a
1
,a
2
, ,a
N
và một số nguyên k. Cần biết
có hay không chỉ số i (1 i N) mà
GV: Nêu ví dụ: Cho dãy số A gồm các
số:5,7,1,4,2,9,8,11,25,51.
GV: Với k=2 trong dãy trên số hạng
thứ mấy có giá trị bằng k? Chỉ số i cần
2
a
i
=k. Nếu có hãy cho biết chỉ số đó.
Số nguyên k đợc gọi là khóa tìm kiếm.
1.Xác định bài toán
- Input:Dãy số A gồm N số nguyên
khác nhau a
1
,a
2
, ,a
N
và số nguyên k.
- Output: Chỉ số mà a
i
=k hoặc thông
báo không có số hạng nào của A có
giá trị bằng k.
2. ý tởng
Tìm kiếm tuần tự đợc thực hiện một
cách tự nhiên. Lần lợt từ số hạng thứ
nhất, ta so sánh giá trị số hạng đang xét
với khoá cho đến khi hoặc gặp một số
hạng bằng khoá hoặc dãy đã đợc xét hết
và không có giá trị nào bằng khoá.
Trong trờng hợp thứ hai dãy A không
có số hạng nào bằng khoá.
tìm là bao nhiêu?
HS: a
5
=k; i=5.
GV: Với k=6 trong dãy trên số hạng
thứ mấy có giá trị bằng k? Chỉ số i cần
tìm là bao nhiêu?
HS: Không có số hạng nào; không có i
GV: Để hiểu đợc việc tìm một số hạng
trong dãy số nguyên bằng hay không
bằng khoá k hay không ta đi vào bài
hôm nay.
GV:Em nào có thể xác định Input và
Out put của bài toán trên
HS: ứng tại chỗ trả lời
GV: Nhận xét và viết lên bảng câu trả
lời.
GV: Chú ý k là khoá để tìm kiếm.
GV:Lấy ví dụ minh hoạ
+k=4 và N=5, dãy a: 5,7,1,4,6.
A 5 7 1 4 6
i 1 2 3 4 5
GV: Ta thấy với các giá trị với mỗi giá
trị của a tơng ứng với chỉ số i tơng ứng.
Ta lần lợt xét từ đầu với i=1 đến cuối
dãy i=5. Thì tại i=4 thì a
4
=k=4.
+k=6 và N=5,dãy a: 4,11,3,9,7.
A 4 11 3 9 7
i 1 2 3 4 5 6
GV: Ta làm tơng tự nh ví dụ trên thì
thấy với mọi i từ 1 đến 5 không có a
i
có
gá trị bằng 6.
3
3.Thuật toán
a) Cách liệt kê
- B1: Nhập N, các số hạng a
1
,a
2
, ,a
N
và
khoá k;
- B2: i 1;
- B3: Nếu a
i
=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.
Từ hai ví dụ trên em nào có thể nêu ý t-
ởng của bài toán.
HS: Trả lời
GV: Nhận xét câu trả lời học sinh và
đọc lại ý tởng cho học sinh ghi bài.
HS: Ghi ý tởng vào vở.
GV: Từ ý tởng và ví dụ ở trên em nào
có thể nêu đợc thuật toán bằng cách
liệt kê?
HS: Lên bảng trình bày
GV:Nhận xét và sửa lại lỗi cho học
sinh.
GV:Giải thích rõ hơn về thuật toán.
B1: Đầu tiên phải nhập N,dãy số,và
khoá k.
B2: Gán i 1 có nghĩa là xét số hạng
đầu tiên trong dãy.
B3: Kiểm tra xem a
i
có bằng k không.
Lúc này ta đang kiểm tra a
1
=k ? Nếu
bằng thì đã tìm thấy thông bó ra chỉ số
i và dừng thuật toán ngợc lài ta sang
B4.
B4: Ta kiểm tra số hang tiếp theo bằng
cách tăng i i+1;
B4: Nếu số hạng tiếp theo mà có chỉ số
lớn hơn N( i>N) tức là dãy đã đợc kiểm
tra hết mà không có phần tử nào bằng
khoá. Lúc này ta dừng thuật toá và
4
b)Sơ đồ khối
4.Ví dụ
+Với k=2; N=10 và dãy:
5,7,1,4,2,9,8,11,25,51
+Với k=6; N=10 và dãy:
5,7,1,4,2,9,8,11,25,51
thông báo không tìm thấy i để a
i
=k.
Ngợc lại i<N thì ta tiếp tục quay lại B3
để tiến hành tìm kiếm.
GV:Thuật toán sẽ dừng khi nào?
HS: Khi tìm thấy số hạng bằng khoá
hoặc khi xét hết dãy mà không có phần
tử nào bằng khoá.
GV:Treo bảng phụ sơ đồ khối biểu
diễn thuật toán:
GV: Giải thích sơ đồ khối
Chỉ ra sự giống nhau giữa sơ đồ khối
và cách biểu diễn thuật toán bằng cách
liệt kê.
GV: Đa ra ví dụ sách giáo khoa giúp
học sinh hiểu rõ về hai thuật toán.
k=2 và N=10
A 5 7 1 4 2 9 8 11 25 51
i 1 2 3 4 5
Với i=5 thì a
5
=2;
k=6 và N=10
A 5 7 1 4 2 9 8 1
1
25 5
1
i 1 2 3 4 5 6 7 8 9 10 11
Với mọi i từ 1 đến 10 không có giá trị
a
i
có giá trị bằng 6.
GV: Dựa vào sơ đồ khối (hoặc thuật
toán bằng cách liệt kê giải thích ví dụ
5
cho HS .
HS: Quan sát + lắng nghe .
4.Củng cố và bài tập về nhà
Củng cố: Nắm chắc các bớc của thuật toán tìm kiếm tuần tự.
Bài tập về nhà:làm bài 7 sách giáo khoa trang 44 và đọc trớc
thuật toán tìm kiếm nhị phân
IV.Nhận xét của GVHD
6