Về kiến thức: - Biết cách diễn tả thuật toán bằng một trong hai phơng pháp: Liệt kê và sơ đồ khối.. Về kĩ năng: - Diễn tả đợc thuật toán theo cách liệt kê hoặc bớc đầu thể hiện đợc thuật
Trang 1Tuần 7: Tiết 13: Ngày soạn: 10/10/2007
Bài 4: Bài toán và thuật toán
I- Mục tiêu:
1 Về kiến thức:
- Biết cách diễn tả thuật toán bằng một trong hai phơng pháp: Liệt kê và sơ đồ khối
- Nắm dợc các tính chất cơ bản của thuật toán
2 Về kĩ năng:
- Diễn tả đợc thuật toán theo cách liệt kê hoặc bớc đầu thể hiện đợc thuật toán bằng sơ đồ khối
- Hiểu và diễn tả đợc một số bài toán cơ bản
3 Về thái độ:
Rèn luyện lòng say mê nghiên cứu tìm hiểu và t duy khoa học
Tác phong làm việc độc lập sáng tạo, nâng cao lòng say mê học tập bộ môn
II- Chuẩn bị:
1 Giáo viên:
- Chuẩn bị tranh vẽ, máy tính và một số bài toán áp dụng để rèn luyện kỹ năng biểu diễn thuật toán
2 Học sinh:
- Sách giáo khoa và các ví dụ trong sách giáo khoa
III- Hoạt động dạy học:
Hoạt động của giáo viên Hoạt động của học sinh
1 ổn định lớp:
2 Bài cũ:
? Thuật toán là gì? Nêu các tính chất của
thuật toán?
? Hãy diễn tả thuật toán liệt kê đối với bài
toán kiểm tra N có phải là số nguyên tố hay
không?
3 Bài mới:
Hoạt động 1
Giới thiệu và hớng dẫncho học sinh mô tả
thuật toán của một số bài toán điển
hình-bài toán sắp xếp.
Trong cuộc sống ta thờng gặp những việc
liên quan đến sắp xếp nh xếp các học sinh
theo thứ tự từ thấp đến cao, xếp điểm trung
bình của học sinh theo thứ tự từ cao đến
thấp Nói một cách tổng quát cho một dãy
đối tợng, cần sắp xếp lại vị trí các đối tợng
theo một tiêu chí nào đó Sau đây ta chỉ xét
HS báo cáo sĩ số,
Suy nghĩ và trả lời
Ví dụ: Tìm giá trị lớn nhất của một dãy số nguyên
Nghiên cứu sách giáo khoa và thảo luận, suy nghĩ và trả lời:
Số nguyên tố là một số nguyên lớn hơn
và chỉ có hai ớc 1 và chính nó
a) 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 thành dãy không giảm
Trang 2bài toán sắp xếp dạng đơn giản.
Bài toán: Cho dãy A gồm N số nguyên a1,
a2, …, an Cần sắp xếp các số hạng để dãy A
trở thành dãy không giảm (tức là số hạng
tr-ớc không lớn hơn số hạng sau)
? Hãy xác định bài toán?
? Từ input và output của bài toán em hãy
nêu ý tởng giải bài toán?
nghĩa là ta lấy a1 so sánh với a2 nếu
a1>a2 thì ta tiến hành đổi chỗ hai vị trí này
cho nhau, lần lợt so sánh cho đến khi không
còn có sự đổi chỗ xảy ra nữa
? Từ ý tởng của bài toán em hãy viết thuật
toán dạng liệt kê?
Sau mỗi lần duyệt giá trị lớn nhất của
dãy A sẽ đợc chuyển về cuối dãy số và sau
lợt sắp xếp thứ nhất thì giá trị lớn nhất đợc
xếp đúng vị trí là ở cuối dãy Tơng tự nh vậy
cho các lợt tiếp theo Tóm lại, sau mỗi lần
duyệt có ít nhất một số hạng đợc sắp xếp
đúng vị trí và không còn tham gia vào quá
trình đổi chỗ nữa, giống nh các bọt nớc từ
đáy hồ đã lên mặt nớc ( cuối dãy) rồi tan
biến Có thể vì thế mà sắp xếp bằng tráo đổi
còn có tên gọi là sắp xếp nổi bọt
Thảo luận nhóm và trả lời:
b) ý tởng bài toán:
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 ta đổi vị trí 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
Thuật toán dạng liệt kê:
B1: Nhập N, các số hạng a1, a2,…, aN;
B2: M ơ N;
B3: Nếu M < 2 thì đa ra dãy A đã sắp xếp rồi kết thúc;
B4: M ơ M … 1; i ơ 0;
B5: i ơ i +1;
B6: Nếu i > M thì quay lại B3;
B7: Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau; B8: Quay lại B5.
- Ghi chú: Qua nhận xét trên ta thấy quá trình so sánh và đổi chỗ sau mỗi lợt chỉ thực hiện với dãy đã bỏ bớt số hạng cuối dãy Để thực hiện đợc điều đó trong thuật toán sử dụng biến nguyên M có giá trị khởi tạo là N, sau mỗi lần M giảm một đơn vị cho đến khi M < 2
- Trong thuật toán trên, i là biến chỉ số có giá trị nguyên thay đổi lần lợ từ 0 đến M +1
? Từ thuật toán liệt kê, em hãy viết thuật toán bằng sơ đồ khối?
Học sinh suy nghĩ, thảo luận và trình bày
40
Nhập N và
a 1 , a 2 , , a N
M ← N
M <
2 ?
M ← M - 1; i ←0
i ← i + 1
i >
M ?
a i > a i+1 ?
Tráo đổi
a i và a i+1
Đ a ra A đã sắp xếp rồi kết thúc
Đ
Đ
Đ
S
S
S
Trang 3Hoạt động 2: Mô phỏng thuật toán với N =6 dãy A gồm các số hạng sau:
Dãy A: 3 5 9 8 1 7
Lợt thứ nhất:
Lợt thứ hai:
7 1
8 9
5 3
7 1
9 8
5 3
7 9
1 8
5 3
9 7
1 8
5 3
9 7
1 8
5 3
9 7
8 1
5 3
Trang 4 Lợt thứ ba:
Lợt thứ t:
Cuối cùng ta đợc dãy số:
1 3 5 7 8 9 IV- Đánh giá cuối bài: 1 Nhắc lại những nội dung đã học: - Khái niệm thuật toán và các tính chất của thuật toán - Cách biểu diễn thuật toán bằng liệt kê và bằng sơ đồ khối - Biết cách mô phỏng thuật toán thông qua ví dụ cụ thể 2 Bài tập áp dụng: Câu 1: Cho một dãy A gồm N số nguyên dơng a1, …, an Hãy sắp xếp dãy số trên thanh dãy không tăng IV- Rút kinh nghiệm: ããã
ããã
ããã
ããã
42
9 8
7 1
5 3
9 8
7 5
1 3
9 8
7 5
1 3
Trang 5···
···
···
···
···
···
···
···
···