Đề bài
Viết chương trình giải phương trình bậc 2 trong C++. Phương trình bậc 2 có dạng:
Lời giải
Lời giải của chúng tôi sử dụng phương thức sqrt() để tính căn bậc 2 của một số trong C++.
#include <iostream> #include <cmath> using namespace std; /** * giai phuong trinh bac 2: ax2 + bx + c = 0 * * @param a: he so bac 2 * @param b: he so bac 1 * @param c: so hang tu do */ void giaiPTBac2(float a, float b, float c) { // kiem tra cac he so if (a == 0) { if (b == 0) { printf("Phuong trinh vo nghiem!"); } else { printf("Phuong trinh co mot nghiem: x = %f", (-c / b)); } return; } // tinh delta float delta = b*b - 4*a*c; float x1; float x2; // tinh nghiem if (delta > 0) { x1 = (float) ((-b + sqrt(delta)) / (2*a)); x2 = (float) ((-b - sqrt(delta)) / (2*a)); printf("Phuong trinh co 2 nghiem la: x1 = %f va x2 = %f", x1, x2); } else if (delta == 0) { x1 = (-b / (2 * a)); printf("Phong trinh co nghiem kep: x1 = x2 = %f", x1); } else { printf("Phuong trinh vo nghiem!"); } } /** * ham main */ int main() { float a, b, c; cout << "Nhap he so bac 2, a = "; cin >> a; cout << "Nhap he so bac 1, b = "; cin >> b; cout << "Nhap so hang tu do, c = "; cin >> c; giaiPTBac2(a, b, c); return 1; }
Kết quả:
Nhap he so bac 2, a = 2 Nhap he so bac 1, b = 3 Nhap so hang tu do, c = 1 Phuong trinh co 2 nghiem la: x1 = -0.500000 va x2 = -1.000000