Yêu cầu
Xây dựng chương trình giải phương trình bậc hai ax2 + bx + c = 0, với:
- Input: Người dùng nhập vào giá trị a, b, c.
- Output: Hiển thị ra màn hình nghiệm của phương trình, biết rằng:
- Nếu a == 0: phương trình sẽ trở thành phương trình bậc nhất bx + c = 0, khi đó:
- Nếu b == 0:
- Nếu c == 0: phương trình có vô số nghiệm
- Nếu c != 0: phương trình vô nghiệm
- Nếu không (ngược lại b != 0): phương trình có nghiệm
x = -c/b
- Nếu không (ngược lại a != 0):
- Tính delta = b*b - 4*a*c
- Nếu delta < 0: phương trình vô nghiệm
- Nếu delta == 0: phương trình có nghiệm kép x = -b / (2*a)
- Nếu delta > 0: phương trình có 2 nghiệm riêng biệt
- x1 = (-b + căn(delta)) / (2*a)
- x2 = (-b - căn(delta)) / (2*a)
Hướng dẫn giải
Lưu đồ (FlowChart)
Code
- Tạo file "lab_3_2.2.c"
- Nội dung file:
/*
BÀI 2: XÂY DỰNG CHƯƠNG TRÌNH GIẢI PHƯƠNG TRÌNH
2.2 BẬC 2
Phương trình có dạng: ax2 + bx + c = 0
Input: Nhập vào từ bàn phím: a, b, c
Output: Nghiệm của phương trình
Biết rằng:
Nếu a == 0, phương trình thành bx + c = 0
Ngược lại nếu a != 0
- Tính delta
- Nếu delta < 0: Phương trình vô nghiệm
- Nếu delta == 0: Phương trình có nghiệm kép x = -b/(2*a)
- Nếu delta > 0: Phương trình có 2 nghiệm riêng biệt
- X1 = (-b + căn(delta))/(2*a)
- X2 = (-b – căn(delta))/(2*a)
*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main() {
// 1. Khai báo biến
float a, b, c;
// 2. INPUT nhập liệu
printf("Moi so a: ");
scanf("%f", &a);
printf("Moi so b: ");
scanf("%f", &b);
printf("Moi so c: ");
scanf("%f", &c);
// 3. PROCESS xử lý tính toán theo Nghiệp vụ Logic
// 4. OUTPUT xuất ra màn hình
printf("====== CHUONG TRINH GIAI PHUONG TRINH BAC HAI ======\n");
printf("Thong tin:\n");
printf("- Phuong trinh %fx2 + %fx + %f = 0 \n", a, b, c);
printf("- Ket qua: ");
if(a == 0) {
// Phuong trinh tro thanh PTB1 bx + c = 0
if(b == 0) {
if(c == 0) {
printf("Phuong trinh vo so nghiem");
}
else {
printf("Phuong trinh vo nghiem");
}
}
else {
float x;
x = -c / b;
printf("Phuong trinh co nghiem x = %f", x);
}
}
else {
float delta;
delta = b*b - 4*a*c;
if(delta < 0) {
printf("Phuong trinh vo nghiem");
}
else if(delta == 0) {
float x;
x = -b / 2*a;
printf("Phuong trinh co nghiem kep x = %f", x);
}
else if(delta > 0) {
float x1, x2;
x1 = (-b + sqrt(delta)) / 2*a;
x2 = (-b - sqrt(delta)) / 2*a;
printf("\nPhuong trinh co nghiem kep x1 = %f \n", x1);
printf("Phuong trinh co nghiem kep x2 = %f \n", x2);
}
}
getch(); // Lenh dung man hinh
return 0;
}
|