Cách Giải Phương Trình Bậc 2 Trong C/C++
Có thể bạn quan tâm
Cách giải phương trình bậc 2 thì chúng ta đã được học ở lớp dưới rồi phải không nào ? Vậy giải phương trình bậc 2 trong C/C++ thì sẽ như thế nào ? Hôm nay chúng ta sẽ cùng tìm hiểu.
- Cách giải phương trình bậc 2
Cách giải phương trình bậc 2

Phương trình bậc 2 là phương trình có dạng: ax² +bx + c = 0. (a≠0) (1)
Ở các lớp dưới ta đã có phương pháp giải bằng cách tính delta:
- Đầu tiên tính delta = b² – 4ac
- Nếu delta < 0 thì kết luận vô nghiệm
- Nếu delta = 0 thì có nghiệm kép
- Nếu delta > 0 thì sẽ có 2 nghiệm phân biệt
Ý tưởng
- Dùng một vòng do while để nhập a, b, c nếu a = 0, thì nhập lại.
- Chúng ta dùng hàm sqrt() trong thư viện math.h để tính căn delta hoặc tính căn không dùng hàm sqrt()tại đây.
- Chúng ta tạo hàm giaiPT trả về kiểu int chính là số nghiệm của phương trình (1).
- Chúng ta sẽ đưa tham chiếu 2 biến x1 , x2 vào hàm giaiPT để gán giá trị hai nghiệm.
- Nếu pt (1) vô nghiện thì giaiPT sẽ trả về 0 , đồng thời gán x1 = x2 =0 .
- Nếu pt (1) có nghiệm kép thì giaiPT sẽ trả về 1 , đồng thời gán x1 = x2 = -b/2a .
- Nếu pt (1) có 2 nghiệm thì giaiPT sẽ trả về 2 , gán x1 = (-b+√delta ) / 2a x = (-b-√delta ) / 2a .
Code C
#include<stdio.h> #include<math.h> int giaiPT(float a, float b, float c,float &x1, float &x2){ float delta = b*b - 4*a*c; if(delta<0){ x1=x2=0.0; return 0; } else if(delta==0){ x1 = x2 = -b/(2*a); return 1; } else{ delta = sqrt(delta); x1 = (-b + delta) / (2*a); x2 = (-b - delta) / (2*a); return 2; } } int main(){ float a,b,c; float x1,x2; do{ printf("Nhap a (a!=0): "); scanf("%f",&a); printf("Nhap b: "); scanf("%f",&b); printf("Nhap c: "); scanf("%f",&c); } while(!a);// Nếu a=0 thì nhập lại int numNo = giaiPT(a,b,c,x1,x2); if(numNo == 0) { printf("Phuong trinh da cho vo nghiem"); } else if(numNo == 1){ printf("Phuong trinh da cho co nghiem kep x=%.4f",x1); } else{ printf("Phuong trinh da cho co hai nghiem phan bietnx1=%.4f nx2=%.4f",x1,x2); } }Nhap a (a!=0): 3 Nhap b: -5 Nhap c: 2 Phuong trinh da cho co hai nghiem phan biet x1=1.0000 x2=0.6667Code C++
#include<iostream> #include<math.h> using namespace std; int giaiPT(float a, float b, float c,float &x1, float &x2){ float delta = b*b - 4*a*c; if(delta<0){ x1=x2=0.0; return 0; } else if(delta==0){ x1 = x2 = -b/(2*a); return 1; } else{ delta = sqrt(delta); x1 = (-b + delta) / (2*a); x2 = (-b - delta) / (2*a); return 2; } } int main(){ float a,b,c; float x1,x2; do{ cout<<"Nhap a (a!=0): "; cin>>a; cout<<"Nhap b: "; cin>>b; cout<<"Nhap c: "; cin>>c; } while(!a); int numNo = giaiPT(a,b,c,x1,x2); if(numNo ==0 ) { cout<<"Phuong trinh da cho vo nghiem"; } else if(numNo==1){ cout<<"Phuong trinh da cho co nghiem kep x=%.4f" << x1; } else{ cout<<"Phuong trinh da cho co hai nghiem phan biet"<<endl; cout<< "x1=" << x1<<endl; cout<< "x2=" << x2<<endl; } } Nhap a (a!=0): 3 Nhap b: -5 Nhap c: 2 Phuong trinh da cho co hai nghiem phan biet x1=1 x2=0.666667Bài học của mình đến đây là kết thúc.
Từ khóa » Giải Bất Phương Trình Bậc 2 C++
-
C++ - Giải Phương Trình Bậc Hai Ax2 + Bx + C = 0 - Freetuts
-
Bài Tập C++ - Giải Phương Trình Bậc 2 Trong C++ - VietTuts
-
Giải Phương Trình Bậc 2 Trong C - Bài Tập C Có Lời Giải - Viettuts
-
Giải Phương Trình Bậc Hai Trong C++
-
C++ - Giải Phương Trình Bậc Hai Ax2 + Bx + C = 0 - Hội Buôn Chuyện
-
Giải Phương Trình Bậc 2 Trong C++
-
C - Bài Tập 1.9: Giải Biện Luận Phương Trình Bậc 2 - YouTube
-
Code Tối ưu Giải Phương Trình Bậc 2 Trong Ngôn Ngữ Lập Trình C++
-
Giải Và Biến Luận Phương Trình Bậc 2 C++ - Học Tốt
-
Source Giải PT Bậc 2, PT Trùng Phương, Bất Phương Trình Bậc Nhất ...
-
Bài Tập C++ Có Lời Giải/Câu Lệnh điều Kiện - Wikibooks
-
Giải Phương Trình Bậc 2 C++
-
Viết Chương Trình Giải Phương Trình Bậc Hai | How Kteam
-
Code Giải Phương Trình Bậc Nhất, Bậc 2, Bậc 3 - Dạy Nhau Học