- Viết thuật toán bằng cách liệt kê và sơ đồ khối bài toán: “Tìm giá trị nhỏ nhất của một dãy số nguyên”. - Xem trước phần tiếp theo bài “Bài toán và thuật toán”..[r]
Trang 1MỘT SỐ KHÁI NIỆM CƠ BẢN
CỦA TIN HỌC
BÀI 4: BÀI TOÁN VÀ THUẬT TOÁN
CHƯƠNG I:
Trang 23 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
dương A và B
Xác định bài toán:
- Input: Hai số nguyên dương A và B
- Output: Ước chung lớn nhất của A và B
Tìm ước chung lớn nhất của hai số 8 và 12
UCLN (12, 8) = 4
4 4
Trang 33 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
dương A và B
Ý tưởng:
- Nếu A = B thì UCLN (A, B) = A
- Nếu A > B thì lấy A = A – B UCLN (A – B, B), ngược lại B = B – A và UCLN (A, B – A)
Tìm ước chung lớn nhất của hai số 8 và 12
UCLN (12, 8) = 4
4 4
Trang 43 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
dương A và B
Thuật toán:
Liệt kê:
- B1: Nhập A và B;
- B2: Nếu A = B thì UCLN (A, B) = A; Kết thúc
- B3: Nếu A > B thì A = A – B, ngược lại B = B -
A và quay lại bước 2
Tìm ước chung lớn nhất của hai số 8 và 12
UCLN (12, 8) = 4
8 4
Trang 53 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Thuật toán:
Nhập A, B
A = B?
UCLN(A, B)
= A Kết thúc
A >
B?
A = A - B B = B - A
Đ
S
Liệt kê:
- B1: Nhập A và B;
- B2: Nếu A = B thì
UCLN (A, B) = A;
Kết thúc
- B3: Nếu A > B thì
A = A – B, ngược lại
B = B - A và quay lại
bước 2
Sơ đồ khối
Trang 63 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Mô phỏng thuật toán:
Nhập A, B
UCLN(A, B) =
A Kết thúc
A = B?
A > B?
A = A - B B = B - A
Đúng
Đúng Sai
Sai
4 4
Trang 73 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Ví dụ 3: Bài toán tìm nghiệm của phương trình bậc hai
ax2+bx+c=0
Xác định bài toán:
- Input: Các số thực a, b, c
- Output: Nghiệm của phương trình (tất cả các số thực x thỏa
mãn phương trình)
) 0 ( a
) 0 ( a
Trang 83 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Ví dụ 3: Bài toán tìm nghiệm của phương trình bậc hai
ax2+bx+c=0
Ý tưởng:
- Tính ∆;
- Xét dấu ∆, có 3 trường hợp:
+ ∆ < 0, phương trình vô nghiệm, kết thúc
+ ∆ = 0, phương trình có nghiệm kép, kết thúc
+ ∆ > 0, phương trình có hai nghiệm, kết thúc
) 0 ( a
Trang 93 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Ví dụ 3: Bài toán tìm nghiệm của phương trình bậc hai
ax2+bx+c=0
Thuật toán:
Liệt kê:
- B1: Nhập a, b, c (a # 0);
- B2: Tính ∆= b2 – 4*a*c;
- B3: Xét dấu ∆
+ Nếu ∆ < 0, phương trình vô nghiệm, kết thúc
+ Nếu ∆ = 0, phương trình có nghiệm kép x = -b/2a, kết
thúc
+ Nếu ∆ > 0, phương trình có hai nghiệm phân biệt x1, x2 =
(-b )/2a, kết thúc
) 0 ( a
Trang 103 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Thuật toán:
Sơ đồ khối:
Nhập a, b, c
∆= b 2 – 4*a*c
∆ < 0 ?
∆ = 0 ?
PT vô nghiệm
PT có nghiệm kép x =-b/2a
PT có hai nghiệm phân biệt
x , x = (-b )/2a
Kết thúc
Đ
S
Trang 113 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Mô phỏng thuật toán:
∆ = 0 ? PT có nghiệm kép x =-b/2a
PT có hai nghiệm phân biệt
Kết thúc
Đ
S
Đ
S
Phương trình: x 2 + 4x + 6 = 0
Nhập a, b, c
Nhập 1, 4, 6
∆= 4 ∆= b 2 – 4*1*6 = - 8 2 – 4*a*c
∆ < 0 ? PT vô nghiệm
- 8 < 0
Đ
Trang 123 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Mô phỏng thuật toán:
PT có hai nghiệm phân biệt
x , x = (-b )/2a
Kết thúc
Đ
S
Phương trình: x 2 + 2x + 1 = 0
Nhập a, b, c
Nhập 1, 2, 1
∆= 2 ∆= b 2 – 4*1*1 = 0 2 – 4*a*c
∆ = 0 ?
PT vô nghiệm
0 = 0
S
∆ < 0 ?
Đ
PT có nghiệm kép x =-b/2a
PT có nghiệm x= -2/2*1= -1
Trang 133 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
Mô phỏng thuật toán:
Kết thúc
Đ
S
Phương trình: x 2 - 5x + 6 = 0
Nhập a, b, c
Nhập 1, - 5, 6
∆= (-5) ∆= b 2 2 – 4*1*6 = 1 – 4*a*c
∆ = 0 ?
PT vô nghiệm
S
∆ < 0 ?
PT có hai nghiệm phân biệt PT có hai nghiệm phân biệt
PT có nghiệm kép x =-b/2a
S
Trang 14DẶN DÒ
- Viết thuật toán bằng cách liệt kê và sơ đồ khối bài toán: “Tìm giá trị nhỏ nhất của một dãy số nguyên”.
- Xem trước phần tiếp theo bài “Bài toán và thuật toán”.