tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10tin hoc 10
Trang 1Câu 1: Các em lấy máy tính cầm tay giải phương trình: 3x2 + 7x - 4=0.
Câu 2: Em đã cung cấp cho máy tính thông tin gì? máy tính trả lại cho em
thông tin gì?
Câu 3: Theo em bài toán trong toán học có khác bài toán trong tin học
không? Nếu có thì khác như thế nào?
Trang 2BÀI TOÁN VÀ THUẬT TOÁN
(5 tiết)
BÀI 4:
Trang 3BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN
1 BÀI TOÁN : KHÁI NIỆM VÀ CÁC YẾU TỐ CỦA BÀI TOÁN
2 THUẬT TOÁN: KHÁI NIỆM, CÁC CÁCH BIỂU DIỄN THUẬT TOÁN, TÍNH CHẤT
3 KỸ NĂNG TRÌNH BÀY MỘT SỐ THUẬT TOÁN ĐƠN GIẢN
Trang 4BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 1)
1 Khái niệm bài toán
?1: Bài toán là gì?
?2: Khi xác định một bài toán cần quan tâm đến các yếu tố nào?
Bài 1: Tìm UCLN của hai số nguyên dương N,M
Bài 2: Tìm nghiệm của phương trình bậc hai
Ax2 + Bx + C = 0
Bài 3: Tìm giá trị lớn nhất của dãy số nguyên A gồm N phần tử a1 an
- Là việc nào đó ta muốn máy thực hiện để từ thông tin đưa vào (INPUT) tìm được
thông tin ra (OUTPUT)
+ Input: Các thông tin đã có
+ Output: Thông tin cần tìm.
?3: Hãy xác định các thành phần của các bài toán sau?
Input: M, N nguyên dương Output: UCLN (M, N)
Input: Hệ số a,b,c là các số thực.
Output: Mọi x thoả mãn phương trình ax2 + bx + c = 0
Input: N nguyên dương, dãy A1 An.
Output: Số lớn nhất của dãy A
Trang 5BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 1)
2 Khái niệm thuật toán
?1 Nêu các bước giải phương trình x2 – 2x +1 =0
?2 Điền từ vào chỗ trống để được phát biểu về thuật toán?
Thuật toán là dãy ……… được sắp xếp theo một
……… sao cho sau khi thực hiện dãy các thao tác đó, từ ……… của bài toán, ta nhận được ……… cần tìm.
?3: Nêu cách biểu diễn thuật toán.
Bằng liệt kê:
………
Bằng sơ đồ khối.
………
* Thuật toán là dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi
thực hiện dãy các thao tác đó, từ Input của bài toán, ta nhận được Output cần tìm. B1: Tính ∆=22 – 4.1.1 = 0
B2: So sánh ∆ với 0 (∆ = 0) B3: Phương trình có nghiệm kép x1 = x2 = 1;
B4: Kết luận nghiệm.
- Phương pháp liệt kê: Mô tả thuật toán bằng ngôn ngữ tự nhiên
Bước 1, bước 2, … bước n.
* Cách biểu diễn thuật toán
- Sơ đồ khối: mô tả việc nhập (input) và xuất (output) và luồng xử lý thông tin
qua các kí hiệu hình học
+ Hình thoi : Thao tác so sánh
+ Hình chữ nhật : Thao tác tính toán
+ Hinh Oval : Thao tác nhập xuất
+ Mũi tên : Qui trình thực hiện các thao tác.
Trang 6BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 1)
Đ
2 Giải phương trình bậc nhất tổng quát: ax + b = 0.
?2: Trình bày các bước thuật toán bài 1 bằng liệt kê
?3: Điền thêm thông tin vào sơ đồ để được thuật toán bài 2 bằng sơ đồ khối
?1: Xác định Input, Output các bài toán sau:
1: Tìm chu vi và diện tích hình chữ nhật
Input: Chiều dài (a), chiều rộng (b) nguyên dương.
Output: Chu vi ( C ), diện tích (S)
2: Giải phương trình bậc nhất tổng quát: ax + b = 0.
Input: a và b thực.
Output: Mọi x thoả mãn phương trình ax + b = 0
?2: Trình bày các bước thuật toán bài 1 bằng liệt kê
Trang 7BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 1)
2 Khái niệm thuật toán
Đ
2 Giải phương trình bậc nhất tổng quát:ax + b = 0.
?2: Trình bày các bước thuật toán bài 1 bằng liệt kê
?3: Điền thêm thông tin vào sơ đồ để được thuật toán bài 2 bằng sơ đồ khối
Trang 8THUẬT TOÁN TÌM MAX
3
• Người ta đặt 5 quả bóng có kích thước khác nhau trong hộp đã được đậy nắp như hình bên Chỉ dùng tay hãy tìm
ra quả bóng có kích thước lớn nhất
Trang 10BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 2)
3 Một số ví dụ về thuật toán
•ý tưởng:
- Khởi tạo giá trị Max = a1
- Lần lượt với i từ 2 đến N, so sánh giá trị số hạng ai với giá trị Max, nếu ai > Max thì Max nhận giá trị mới là ai.
•Thuật toán
• Thuật toán giải bài toán này có thể đ ược mô tả theo cách liệt kê như sau:
B ước 1 Nhập N và dãy a1, , aN;
B ước 2 Max a1, i 2;
B ước 3 Nếu i > N thì đ ưa ra giá trị Max rồi kết thúc;
B ước 4.
B ước 4.1 Nếu ai > Max thì Max ← ai;
B ước 4.2 i ← i + 1 rồi quay lại b ước 3;
Bài toán : Cho dãy A gồm N số nguyên A1 An Tìm giá trị lớn nhất của dãy số trên.
•Xác định bài toán
- Input: Số nguyên dư ơng N và dãy N số nguyên a1, , aN.
- Output: Giá trị nhỏ nhất Max của dãy số.
Trang 11S
Đ S
• 4.2: i ← i + 1 rồi quay lại B3.
Cách 2: Sơ đồ khối
Trang 12S
Đ S
5
5 4
3 2
6 7
4 1
Trang 13BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 2)
?1/ Thuật toán tìm max dừng khi nào.
?2/ Sau khi gán i:=2 thì ta bắt buộc phải thực hiện bước nào?
?3/ Thuật toán tìm max nhận được gì với dãy sau: 5 1 4 7 6
C1: Thuật toán tìm max dừng khi nào
i > N , i = 6 C2: Sau khi gán i:=2 thì ta bắt buộc phải thực hiện bước nào?
So sánh i với N.
C3: Thuật toán tìm max nhận được: 7
* Tính chất của thuật toán.
- Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện
- Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuất toán kết thúc hoặc
có đúng một thao tác tiếp theo cần thực hiện
- Tính đúng đắn: Sau khi thuật toán kết thức ta phải thu được Output cần tìm.
Trang 14BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 2)
Bài tập thảo luận:
Xác định bài toán, xây dựng thuật toán các bài toán sau bằng một trong hai phương pháp liệt kê hoặc sơ đồ khối
Câu 1: Xây dựng thuật toán tìm chu vi và diện tích hình tam giác
Câu 2: Xây dựng thuật toán so sánh 2 số a và b
Trang 15BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN
B2: Nếu a > b thì thông báo “a là số lớn hơn” và qua bước 4; B3: Nếu a < b thì thông báo “b là số lớn hơn”
Nếu a = b thì thông báo “hai số bằng nhau”;
B4: Kết thúc thuật toán.
Trang 16BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 3)
Câu 1: Em hãy nêu định nghĩa số nguyên tố trong toán học?
Câu 2: Số 1 là số nguyên tố hay hợp số? Tại sao?
Câu 3: Số 2, số 3 là nguyên tố hay là hợp số? tại sao?
Câu 4: Trong toán học, Với N > 4 để kiểm tra xem N có phải là số nguyên tố không ta làm thế nào?
Câu 5: Xác định bài toán kiểm tra tính nguyên tố của một số nguyên dương N?
Câu 6: Nêu lên ý tưởng giải quyết bài toán kiểm tra tính nguyên tố của số nguyên dương N?
Phiếu Bài tập :
Trang 17BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 3)
3 Một số ví dụ về thuật toán
a Bài toán kiểm tra tính nguyên tố của một số nguyên dương dương N.
+ Xác định bài toán
- Input: N là một số nguyên dương
- Output: “N là số nguyên tố” hoặc “N không phải là số nguyên tố”
+ Ý tưởng giải quyết bài toán
- Nếu N = 1 thì N không là số nguyên tố
- Nếu N = 2 hoặc N = 3 thì N là số nguyên tố
- Nếu N >= 4 thì xét các số từ 2 đến xem có ước của N không? Nếu không có thì N là số nguyên tố, ngược lại thì N không là số nguyên tố
Trang 18
i 2 3 4 5
Chia hết Không
Chia hết không?
45/3 45/2
N/i
3 2
29 là số nguyên tố
Tr ường hợp 2: N = 29 ([ √ 29 ] = 5)
Tr ường hợp 1: N = 45 ([ √ 45 ] = 6)
Mô phỏng thuật toán kiểm tra tính nguyên tố
Trang 19BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 3)
3 Một số ví dụ về thuật toán
a Bài toán kiểm tra tính nguyên tố.
+ Thuật toán
Bước 1: Nhập số nguyên dương N
Bước 2: Nếu N = 1 thì thông báo N không là số nguyên tố rồi kết thúc
Bước 3: Nếu N < 4 thì thông báo N là số nguyên tố rồi kết thúc
Bước 4: i 2
Bước 5: Nếu i>[ ] thì thông báo N là số nguyên tố rồi kết thúc
Bước 6: Nếu N chia hết cho i thì thông báo N là số không nguyên tố rồi kết thúc
Bước 7: i i + 1 rồi quay lại bước 5
Trang 20
BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 3)
Câu 1: Mô phỏng việc thực hiện thuật toán kiểm tra tính nguyên tố của một số nguyên dương để kiểm tra các số sau?
Trang 21Đ
S S
Đ Đ
Trang 22BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 4)
3 Một số ví dụ về thuật toán
b Bài toán sắp xếp
Trang 23BÀI TOÁN SẮP XẾP
Hãy tìm cách sắp xếp các học sinh đang chào cờ (hình a) theo thứ tự thấp trước đến cao sau (hình b)
Trang 24Thuật toán sắp xếp bằng tráo đổi
Xác định bài toán:
Input: Dãy A gồm N số nguyên a1, a2,…, aN.
Output: Dãy A sắp xếp thành dãy không giảm.
Ý 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 ta đổi vị trí chúng cho nhau Việc đó được lặp lại cho đến khi không còn có sự đổi chỗ nào xảy ra nữa.
Trang 25 Với N = 6 và dãy A gồm 6 số hạng như sau:
Trang 26Cách 1: Liệt kê các bước
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.
Trang 27Nhập N và dãy a1, a2, , aN
Trang 28a/ N=10;
Thuật toán sắp xếp bằng tráo đổi
Bài tập áp dụng: Mô phỏng việc thực hiện thuật toán sắp xếp với các dãy số sau?
Trang 29Câu 1 Trong thuật toán sắp xếp :
a Có khi nào M = 1 không?
b Có thể không dùng biến M được không? Nếu được hãy mô tả thuật toán bằng một trong hai cách: liệt kê hoặc
sơ đồ khối?
Câu 2 Trình bày thuật toán giải các bài toán sau: Hoán đổi giá trị của hai biến thực A và C.
BÀI TẬP VỀ NHÀ
Trang 30BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 5)
3 Một số ví dụ về thuật toán
c Bài toán tìm kiếm
Cho dãy A gồm N số nguyên khác nhau a1, a2,…, aN và 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ố i đó
Trang 31Thuật toán tìm kiếm tuần tự
Xác định bài toán:
Input: Dãy A gồm N số nguyên a1, a2,…, aN đôi một khác nhau và 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 A bằng k
Trang 325 4
3 2
1 I
51 25
11 8
9 2
4 1
7 5
A
Mô phỏng thuật toán tìm kiếm tuần tự
Với k = 2 và dãy A gồm 10 số hạng như sau:
Trang 33Ý t ưởng:
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á (k) cho đến khi có sự trùng nhau, nếu đã xét tới số hạng cuối cùng mà không có sự trùng nhau thì có nghĩa là dãy A không có số hạng nào có giá trị bằng k
BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN (Tiết 5)
Trang 34Cách 1: Liệt kê các bước
B ước 1: Nhập N, các số hạng a1, a2,…, aN và giá trị khoá k;
B ước 2: i ← 1;
B ước 3: Nếu ai = k thì thông báo chỉ số i, rồi kết thúc;
Bước 4: i ← i+1;
B ước 5: 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;
Bước 6: Quay lại B3.
Trang 36Câu 1: Thuật toán tìm kiếm tuần tự trên dừng khi nào?
Câu 2: Có thể chuyển điều kiện i > n (bước 5) lên sau bước 2 được không ?
Nếu được cần thay đổi lại thuật toán liệt kê hoặc sơ đồ khối như thế nào ?
Luyện tập kiến thức:
Trang 37Câu 1: Sửa thuật toán trên thành thuật toán đếm số lượng số k trong dãy A?
Câu 2: Trong trường hợp dãy A có một số phần tử có giá trị bằng k Có thể tìm được nhiều vị trí xuất hiện số k được không ?
Nếu được cần thay đổi lại cách liệt kê và sơ đồ khối như thế nào ?
Câu 3: Nhà An ở trong căn hộ có 8 tầng, mỗi tầng có 8 căn hộ, các căn hộ được đánh số từ 1 đến 64 Một hôm các bạn trong lớp hỏi
An:
“Nhà An ở căn hộ số mấy”.
An nói: Các bạn hãy thử hỏi một số câu, mình sẽ trả lời tất cả các câu hỏi của các bạn nhưng chỉ nói “đúng” hoặc “không” thôi Qua các câu hỏi đó bạn hãy đoán xem An ở căn hộ bao nhiêu?
Trong lớp có nhiều bạn mỗi bạn có các câu hỏi khác nhau để tìm ra nhà An ở căn hộ nào? Cô giáo sẽ trao phần thưởng cho ai hỏi
số câu hỏi ít nhất Bạn hãy tìm ra cách hỏi để bạn có thể giành phần thưởng của cô giáo
Bài tập củng cố:
Trang 381 Bài toán: Khái niệm, các yếu tố của bài toán.
CHỐT NỘI DUNG BÀI HỌC
2 Thuật toán: Khái niệm, các cách biểu diễn thuật toán
Thuật toán giải phương trình bậc hai (a ≠ 0)
Thuật toán tìm Max của một dãy số.
Thuật toán kiểm tra tính nguyên tố của một số nguyên dương.
Thuật toán sắp xếp bằng tráo đổi.
Thuật toán tìm kiếm tuần tự.
3 Cách trình bày thuật toán của một số bài toán cơ bản thường gặp: