Ý tưởng thuật toán
• Xét 3 hệ số của phương trình trước hết xét a=0 hoặc a khác 0
a. TH1 : a=0
- Ta xét thêm b =0 hay khác 0 . Nếu a=0 mà b=0 thì phương trình không xác định . Nếu b khác 0 thì giải bài toán giống như giải phương trình bậc nhất .
b. TH2 : a khác 0
- Ta tính Delta và xét Delta đưa ra nghiệm của pt
- Nếu Delta < 0 : Phương trình vô nghiệm
- Nếu Delta = 0 : Phương trình có nghiệm kép
- Nếu Delta > 0 : Phương trình có hai nghiệm phân biệt .
Ý nghĩa các biến trong bài
• a , b ,c là ba hệ số của phương trình .
• Delta là biến dùng để lưu giá trị Delta sau khi tính .
• x1,x2 : là nghiệm của phương trình nếu pt có 2 nghiệm phân biệt
• x : là nghiệm nếu phương trình chỉ có một nghiệm mà thôi
Bài giải:
#include<conio.h>
#include<stdio.h>
#include<math.h>void main ()
{
clrscr();
float a,b,c,delta;
printf("ban hay nhap a,b,c vao ");
scanf("%f%f%f",&a,&b,&c);// cac he so cua pt bac 2
if (a!=0)
{
delta=b*b-4*a*c;
if (delta>0)
{
printf("phuong trinh co 2 nghiemn");
printf("x1=%f",(-b-sqrt(delta))/(2*a));
printf("n");
printf("x2=%f",(-b+sqrt(delta))/(2*a));
}
else //TH a<>0 va delta <=0
{
if (delta==0)
{
printf("phuong trinh co nghiem kepn");
printf("x=%f",-b/(2*a));
}
else
printf("phuong trinh vo nghiem ");
}
}
else // (If a==0)
{
if (b!=0) // a luc nay =0
{
printf("phuong trinh co 1 nghiemn");
printf("x=%f",-c/b);
}
else // a=0 va b=0
{ if (c!=0)
printf("phuong trinh khong xac dinh");
else
printf("phuong trinh vo so nghiem");
}
}
getch();
}
Theo hanhtrangsinhvien
Bạn đang muốn nâng cao kỹ năng lập trình của mình ?
|









