Vấn đề
ax²+bx+c=0.
Phân tích
- Input: a, b, c.
- Output: r1, r2 (2 nghiệm).
Công thức
Δ = b² - 4ac
- Δ > 0: 2 nghiệm phân biệt:
(-b ± √Δ) / 2a - Δ = 0: Nghiệm kép:
-b / 2a - Δ < 0: Vô nghiệm thực.
Thuật toán
- Bắt đầu
- Nhập a, b, c
- Tính d = b*b - 4*a*c
- Nếu d > 0: tính r1, r2, in ra
- Nếu d == 0: tính r1=r2=-b/2a, in ra
- Nếu d < 0: in "Vo nghiem"
- Kết thúc
Chương trình C
#include <stdio.h>
#include <math.h>
int main() {
float a,b,c,r1,r2,d;
printf("Nhap a b c: ");
scanf("%f%f%f", &a,&b,&c);
d = b*b - 4*a*c;
if (d > 0) {
r1 = (-b + sqrt(d)) / (2*a);
r2 = (-b - sqrt(d)) / (2*a);
printf("2 nghiem phan biet: %.2f, %.2f", r1, r2);
} else if (d == 0) {
r1 = r2 = -b / (2*a);
printf("Nghiem kep: %.2f", r1);
} else {
printf("Vo nghiem thuc");
}
return 0;
}
Kiểm thử
Case 1: a=1 b=4 c=3 -> r1=-1, r2=-3 Case 2: a=1 b=2 c=1 -> r1=r2=-1 Case 3: a=1 b=1 c=4 -> Vo nghiem