Xác định bài toán:
•
- Input: Các số thực a, h, c (a≠0).
- Output: Các số thực X thoả mãn ax2 + bx + c = 0.
- Ý tưởng:
- Tính d = b2 - 4ac.
- Lần lượt xét ba trường hợp cho giá trị d:
nếu d
nếu d = 0 thì kết luận phương trình có một nghiệm x =-b/2a
nếu d > 0 thì kết luận phương trình có hai nghiệm phân biệt là:
x - (-b± √ d ) / 2a.
Thuật toán:
Mô tả thuật toán bằng cách liệt kê:
Bước I. Nhập ba số a, b, c;
Bước 2. d 4-(b*b - 4*a*c);
Bước 3.
nếu d < 0 thì đưa ra thông báo phương trình vô nghiệm rồi kết thúc;
nếu d = 0 thì đưa ra thông báo phương trình có một nghiệm và tính nghiệm
x = -b/(2*a), rồi kết thúc;
nếu (d> 0 thì đưa ra thông báo phương trình có hai nghiệm phân biệt, tính nghiệm X/= (-b + -√ d) / (2*a) và x2 = (-b - √ d ) / (2*a), rồi kết thúc;
Mô tả thuật toán theo sơ đồ khối:
Lời giải
- Bước 1: Nhập ba số a, b, c, biến Delta, x, x1, x2.
- Bước 2: Delta ← b*b-4*a*c
- Bước 3: Nếu Delta < 0 thì thông báo phương trình vô nghiệm và kết thúc thuật toán.
- Bước 4: Nếu delta > 0 thì thông báo phương trình có hai nghiệm phân biệt x1 ← (-b+sqrt(delta))/2*a và x2 ← (-b-sqrt(delta))/2*a, kết thúc thuật toán.
- Bước 5: Nếu delta=0 thì thông báo phương trình có nghiệm kép x= -b/2*a
Cho N và dãy số a1… aN, hãy sắp xếp dãy số đó thành dãy số không tăng (số hạng trước lớn hơn hay bằng số hạng sau).
Xác điị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 lại thành dãy không tăng:
Ý tưởng: Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước nhỏ hơn số sau ta đổi chỗ 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 Cách liệt kê:
Bước 1. Nhập N, các số hạng a,a2.. aN;
Bước 2: M <- N ;
Bước 3: Nếu M < 2 thì đưa ra dãy A đã được sắp xếp rồi kết thúc;
Bước 4: M <- M-1, i <- 0
Bước 5: i <- i+1
Bước 6: Nếu i>M thì quay lại bước 3
Bước 7: Nếu ai < ai+1thì tráo đổi ai và ai+1 cho nhau
Bước 8: Quay lại bước 5
Sơ đồ khối: