Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C tìm nghiệm phương trình bậc 2


Vấn đề

Áp dụng phương pháp phát triển phần mềm giải bài toán C: tìm nghiệm PT bậc 2 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

  1. Bắt đầu
  2. Nhập a, b, c
  3. Tính d = b*b - 4*a*c
  4. Nếu d > 0: tính r1, r2, in ra
  5. Nếu d == 0: tính r1=r2=-b/2a, in ra
  6. Nếu d < 0: in "Vo nghiem"
  7. 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