Kiểm tra bài cũ: Câu 1: Bài toán kiểm tra tính nguyên tố của một số nguyên dương N.. a/ Hãy xác định bài toán?. b/ Hãy viết thuật toán liệt kê?... Bài 4: Bài toàn và thuật toán tt... b/
Trang 1CHÀO MỪNG QUÍ THẦY CÔ TRONG HỘI ĐỒNG SƯ PHẠM
NHÀ TRƯỜNG Đơn Dương, ngày 19 tháng 9 năm 2008
Trang 2Kiểm tra bài cũ:
Câu 1: Bài toán kiểm tra tính nguyên tố của
một số nguyên dương N
a/ Hãy xác định bài toán?
b/ Hãy viết thuật toán liệt kê?
Trang 3Bài 4: Bài toàn và thuật toán (tt)
Trang 4Output: Chỉ số i mà a i = k hoặc thông báo
không có số hạng nào của A bằng k.
3 4 Thuật toán tìm kiếm tuần tự
(Sequential Search)
a/ Xác định bài toán:
Input: D y A gồm N số nguyên aãy A gồm N số nguyên a 1 , a 2 ,…, a N và khoỏ k.
Trang 5b/ í 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á (k) cho đến khi gặp một số hạng bằng k, nếu đã xét tới số hạng cuối cùng mà không có giỏ trị nào bằng k thì có nghĩa là dãy A không có số hạng nào có giá trị bằng k
Trang 6c/ Thuật toán:
B íc 1: NhËp N, c¸c sè h¹ng a 1 , a 2 , …, a , a N
vµ gi¸ trÞ kho¸ k;
B íc 2: i 1
B íc 3: NÕu a i = k th× th«ng b¸o chØ sè i , End
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, End;
B íc 6: Quay l¹i B3.
* Thuật toán liệt kê:
Trang 7NhËp N, các số hạng a 1 , a 2 , , a N
vµ khoá k cần tìm
i 1
k ?
§ a ra i và a i =k
råi End
§ S
§
i i + 1
i > N ?
Th«ng b¸o d·y A kh«ng cã sè h¹ng
cã gi¸ trÞ b»ng k,
End
S
Trang 85 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:
T¹i vÞ trÝ i = 5 cã a 5 = 2 = k
Víi k = 6 vµ d·y A gåm 10 sè h¹ng nh sau:
i
Víi mäi i tõ 1 10 kh«ng cã a i cã gi¸ trÞ b»ng 6
5
1 2 3 4 5 6 7 8 9 10 11
Trang 9Bài 4: Bài toàn và thuật toán (tt)
3 5 ThuËt to¸n gi¶i ph ¬ng tr×nh bËc hai
ax 2 + bx + c = 0 (a 0)
Trang 10a/ Xác định bài toán
3 5 ThuËt to¸n gi¶i ph ¬ng tr×nh bËc hai
ax 2 + bx + c = 0 (a 0)
- PT Vô nghiệm Output:
Input: các số thực a, b, c (a≠0)
- PT Có 1 nghiệm x=-b/2a
- PT Có 2 nghiệm phân biệt
x1, x2= (-b )/2a
Trang 11b/ Ý tưởng
3 5 ThuËt to¸n gi¶i ph ¬ng tr×nh bËc hai
ax 2 + bx + c = 0 (a 0)
- Lập Δ = b2 – 4ac
- Nếu < 0 => PT vô nghiệm, end;
- Nếu = 0 => PT có nghiệm kép x= -b/2a, end;
- Nếu > 0 =>PT có 2 nghiệm x1,x2= (-b )/2a
end;
Trang 12B6: Kết thúc
B1: Nhập các số thực a, b, c (a 0)
B2: Lập = b2 – 4ac
B3: Nếu < 0 => PT vô nghiệm => B6
B4: Nếu = 0 => PT có nghiệm x = -b/2a => B6
B5: PT có hai nghiệm
x1, x2 = (-b )/2a => B6
c\ Thuật toán:
* Thuật toán bằng liệt kê:
Trang 13NhËp vµo a, b, c
< 0
Đ
s
* Thuật toán bằng sơ đồ khối:
PT cã 2 nghiÖm
x1, x2 =
B1
B2
B3
B4
B5
B6
= b2 – 4ac
PT Vô nghiệm
Trang 14a, b, c = 1, 3, 5
PT v« nghiÖm
= 0 PT cã nghiÖm x =-b/2a KT
-11
5 3
1
c b
a
S
PT cã 2 nghiÖm x1, x2 = (-b )/ 2a
§
S
nhËp vµo a,b,c
M« pháng thuËt to¸n gi¶i ph ¬ng tr×nh bËc hai
Bộ TEST 1:
Trang 15a, b, c= 1, 2, 1
PT v« nghiÖm
0
1 2
1
c b
a
S
PT cã 2 nghiÖm
§
S
nhËp vµo a,b,c
M« pháng thuËt to¸n gi¶i ph ¬ng tr×nh bËc hai
Bộ TEST 2:
§
PT cã nghiÖm kÐp x=-1
Trang 16a, b, c= 1, - 5, 6
PT v« nghiÖm
PT cã nghiÖm x = -b/2a KT
1
6
- 5 1
c b
a
S
PT cã 2 nghiÖm x1, x2 = (-b )/2a
§
S
nhËp vµo a, b, c
M« pháng thuËt to¸n gi¶i ph ¬ng tr×nh bËc hai
B ộ TEST 3:
§
PT cã nghiÖm x1 = 3 x2 = 2
Trang 17Bài tập:
Bài 1: Cho dãy các thao tác sau:
Bước 1: Xoá bảng
Bước 2: Vẽ đường tròn
Bước 3: Quay lại bước 1
Có phải là thuật toán không? Vì sao?
- Không xác định rõ đâu là input đâu là output
- Các bước trên là một vòng lặp vô hạng,
không có tính dừng
Trang 18Bài toán và thuật toán
a/ Xác định bài toán
b/ Ý tưởng
c/ Thuật toán Thuật toán liệt kê
Thuật toán bằng sơ đồ khối
Trang 19Bài 2: Hãy chỉ ra tính dừng của thuật toán tìm kiếm tuần tự?
Thuật toán tìm kiếm tuần tự dừng khi
- Đã tìm thấy ai=k hoặc
- i >N đã kiểm tra hết các phần tử trong dãy
mà vẫn không có giá trị bằng k
Trang 20Chào tạm biệt quí thầy
cô
Hẹn gặp lại see you again!