Khái niệm bài toán 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.. Ví dụ 3: Tìm ước số chung lớn nhất của hai số nguyên dương.. Ví dụ 4
Trang 1Trường THPT Quang Trung Đà Nẵng
Bµi 4 Bµi to¸n vµ thuËt To¸n
Tuần 5+6+7.
Tiết 10, 11, 12, 13, 14.
Trang 21 Khái niệm bài toán
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).
Ví dụ 3: Tìm ước số chung lớn nhất của hai số nguyên dương.
INPUT: Hai số nguyên dương M và N.
OUTPUT: ước số chung lớn nhất của M và N.
Ví dụ 4: Bài toán xếp loại học tập của một lớp.
INPUT: Bảng điểm của học sinh trong lớp.
Trang 32 Khái niệm thuật toán
Từ INPUT làm thế nào để tìm
ra OUTPUT ?
Các em cần tìm ra
cách giải của bài toán
Trang 5Thuật toán để giải một bài toán là một 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 thao tác ấy, từ Input của bài toán, ta nhận được Output cần tìm.
Có hai cách thể hiện một thuật toán:
Trang 63 Một số ví dụ về thuật toán
Thuật toán giải phương trình bậc hai (a ≠ 0)
Cách 1: Liệt kê các bước
Trang 7Quy ước các khối trong sơ đồ thuật toán
Bắt đầu thuật toán
Trang 8B1 B2 B3 B4
Trang 9c b
a
S
PT cã 2 nghiÖm x1, x2 = (-b ±√∆ )/2a
Trang 10c b
a
S
PT cã 2 nghiÖm x1, x2 = (-b ±√∆ )/2a
Trang 11c b
a
S
PT cã 2 nghiÖm x1, x2 = (-b ±√∆ )/2a
§
S
∆ = b*b − 4*a*c nhËp vµo a,b,c
Trang 12Thuậ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 13Qu¶ nµy
lín nhÊt
Qu¶ nµy míi lín nhÊt
å! Qu¶ nµy lín h¬n
T×m ra qu¶ lín nhÊt råi!
Cïng t×m thuËt to¸n
MAX
Trang 14ThuËt to¸n t×m sè lín nhÊt trong
Trang 15ý tưởng:
- Đặt giá trị Max = a1.
- Lần lượt cho i chạy từ 2 đến N, so sánh giá trị ai với giá trị Max, nếu ai > Max thì Max nhận giá trị mới là ai.
Trang 1712/03/16 Nguồn: Sưu tầm 17
Đ S
Đ S
B3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc;
B4 : 4.1: Nếu a i > Max thì Max ← a i ; 4.2: i ← i + 1 rồi quay lại B3.Cách 2: Sơ đồ khối
Trang 18§ S
§ S
5
5 4
3 2
6 7
4 1
5N=5 ; A [ 5 1 4 7 6 ]
Víi i = 2
Trang 19§ S
§ S
5
5 4
3 2
6 7
4 1
5N=5 ; A [ 5 1 4 7 6 ]
Trang 20ThuËt to¸n kiÓm tra tÝnh nguyªn tè cña mét
Trang 21ý tưởng: Xét các trường hợp
Các em hãy nêu
định nghĩa số nguyên tố
- Nếu N ≥ 4 và không có ước số trong phạm vi từ 2 đến phần nguyên căn bậc hai của N thì N là số nguyên tố
- Nếu 1< N <4 thì N là số nguyên tố
Trang 22Trườ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 23Cách 1: Liệt kê các bước
B1: Nhập số nguyên dương N;
B2: Nếu N = 1 thông báo N không nguyên tố, kết thúc; B3: Nếu N < 4 thông báo N là nguyên tố rồi kết thúc; B4: i ←2;
B5: Nếu i > [√N ] thì thông báo N là nguyên tố, kết thúc;
B6: Nếu N chia hết cho i thì thông báo N không nguyên
tố rồi kết thúc;
B7: i ← i +1 rồi quay lại B5.
Trang 24i ?
i ← i +1
Thông báo N là số nguyên tố rồi kết
S
Đ
S S
Đ
Vẽ sơ đồ khối
Trang 25Thuật toán sắp xếp
Hãy tìm cách sắp xếp học sinh đứng chào cờ (hình a) theo thứ tự thấp trước cao sau (hình b).
Hình a Hình b
Trang 26Thuật toán sắp xếp bằng tráo đổi
Xác định bài toán:
OUTPUT: Dãy A được sắp xếp thành dãy không giảm.
Trang 27ý 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ó sự đổi chỗ nào xảy ra nữa
Trang 29B6: Nếu i > M thì quay lại B3;
B7: Nếu a i > a i+1 thì tráo đổi a i và a i+1 cho nhau;
B8: Quay lại B5.
Trang 31Thuật toán tìm kiếm
Hai bạn chó (Bi và Bông) chơi trốn tìm, Bông đã trốn vào một trong những chiếc mũ của ông già Nôen trên Hãy chỉ ra các cách tìm chiếc mũ mà Bông đang trốn? Cho biết có những cách nào?
Trang 32ThuËt to¸n t×m kiÕm tuÇn tù
Trang 3312/03/16 Nguồn: Sưu tầm 33
5 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 34ý 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
Trang 35Bướ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 36§ S
Trang 37ThuËt to¸n t×m kiÕm nhÞ ph©n
Trang 38M« pháng thuËt to¸n t×m kiÕm nhÞ ph©n
10 9
8 7
6 5
4 3
2 1
i
33 31
30 22
21 9
6 5
4 2
30 22
6
21
Trang 39Bước 3: Giữa ← [(Đầu + Cuối)/2];
Bước 4: Nếu a Giữa = k thì thông báo chỉ số Giữa