Tải bản đầy đủ (.pdf) (10 trang)

Bài 4BÀI TOÁN VÀ THUẬT TOÁN (tt) ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (214.58 KB, 10 trang )

Bài 4 BÀI TOÁN VÀ THUẬT TOÁN (tt)
I. MỤC TIÊU:
Kiến thức:
– Hiểu cách biểu diễn thuật toán bằng sơ đồ khối và bằng liệt kê các
bước.
– Hiểu một số thuật toán thông dụng.
Kĩ năng:
– Biết xây dựng thuật toán của 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
– Tổ chức hoạt động nhóm.
Học sinh: SGK, vở ghi. Đọc bài trước.
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 ý tưởng thuật toán sắp xếp bằng tráo đổi?
Đáp: Ý tưởng: Với mỗi cặp số hạng đứng liền kề trong dãy,
nếu số trước lớn hơn số sau thì ta đổi chỗ chúng cho nhau. Việc
đó được lặp lại, cho đến khi không có sự đổi chỗ nào xảy ra nữa
3. Bài mới
Hoạt động 1: Hướng dẫn tim thuật toán giải bài toán
Nội dung Hoạt động của Giáo viên Hoạt động của Học
sinh
III. Một số ví dụ: (tt)
3. Ví dụ 3: Bài toán tìm
kiếm
Cho dãy A gồm N số nguyên
khác nhau: a
1


, a
2
, …, a
N

một số nguyên k. Cần biết có
hay không chỉ số i ( 1 ≤ i ≤
N) mà a
i
= k. Nếu có hãy cho
biết chỉ số đó.
a) Thuật toán tìm kiếm
tuần tự
(sequential search)


Xác định bài toán
Đặt vấn đề: Tìm kiếm là một
việc thường xảy ra trong cuộc
sống.

Cho dãy A gồm: 5, 7, 1, 4, 2, 9,
8, 11, 25, 51. Tìm i với a
i
= 2 ?






 Tổ chức các nhóm thảo luận





 i = 5






 Các nhóm thảo luận,
- Input: Dãy A gồm N số
nguyên khác nhau a
1
, a
2
, …,
a
N
và số nguyên k;
- Output: Chỉ số i mà a
i
= 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:
- Tìm kiếm tuần tự là 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á.

Thuật toán:

H. Hãy xác định bài toán?







 GV hướng dẫn HS tìm thuật
toán giải bài toán.










đưa ra ý kiến

Đ. + Input: N, a
1
, a
2
,
…, a
N
, k
+ Output: i hoặc
thông báo không có i





 Cho các nhóm trình
bày ý tưởng.







* 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, 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.

 GV hướng dẫn HS trình bày
thuật toán tìm kiếm bằng cách
liệt kê.




 i là biến chỉ số và nhận giá trị
nguyên lần lượt từ 1 đến N+1.





 Các nhóm thảo luận
và đưa ra thuật toán.
Hoạt động 2: Diễn tả thuật toán tìm kiếm bằng sơ đồ khối
* Sơ đồ khối:










Hoạt động 3: Mô phỏng việc thực hiện thuật toán
Mô phỏng việc thực hiện thuật
toán với:
+ N = 10, k = 2
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.


Hoạt động 4: Hướng dẫn tìm thuật toán giải bài toán
Nội dung Hoạt động của Giáo viên Hoạt động của Học
sinh
b) Thuật toán tìm kiếm nhị
phân (Binary Search)
 Xác định bài toán
- Input: Dãy A là dãy tăng gồm
N số nguyên khác nhau a
1
, a
2
,
…, a
N
và một số nguyên k
- Output: Chỉ số i mà a
i
= k



 Nhấn mạnh dãy A là một dãy
tăng.
H. So sánh 2 bài toán tìm kiếm
trong 2 thuật toán?





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

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 lần so sánh khoá
với số hạng được chọn, ta chọn
số hạng a
Giữa
ở " giữa dãy" để
so sánh với k, trong đó Giưa =
1
2
N

 
 

 
. Khi đó:
- Nếu a
Giưa
= k thì Giưa là chỉ
số cần tìm.
- Nếu a
Giư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
a
1
, a
2
, …, a
Giưa-1
.
- Nếu a
Giưa
< k thì thực hiện
tìm kiếm trên dãy a
Giưa+1
,
 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.






 Các nhóm trình bày
cách làm

a
Giưa+2
, …, a
n
.
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 a
1
,
a
2
, …, a

N
và khoá k
- B2: Dau

1,Cuoi

N;
- B3: Giưa =
2
Dau Cuoi

 
 
 
;
- B4: Nếu a
Giưa
= k thì thông
báo chỉ số Giưa, rồi kết thúc;
- B5: Nếu a
Giư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
* Sơ đồ khối





Hoạt động 6: Mô phỏng việc thực hiện thuật toán
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 1
0
A 2 4 5 6 9 2 2 3 3 3
1 2 0 1 3
Da
u
1 6 6
Cu
oi
1
0
1
0
7
Giu
a

5 8 6
a
Giu
a

9 3
0
2
1


ợt
1 2 3
Lượt th ba thì a
Giua
= k. Vị trí cần tìm là i = Giua = 6.


Hoạt động 7: Củng cố các kiến thức đã học

 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.


*Rút kinh nghiệm:

×