STARTING
CONTROL STATEMENT
FUNCTION
ARRAY & POINTER
OOP
STL
ITERATORS
OTHER FEATURES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

C++ - Giải phương trình bậc hai ax2 + bx + c = 0

Viết chương trình giải phương trình bậc 2: ax2 + bx + c = 0.

test php

Bài giải

-------------------- ######## --------------------

Phương trình bậc 2 có dạng ax2 + bx + c = 0 (a≠0). 

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong đó: 

  • x là ẩn số chưa biết. 
  • a, b, c là các số đã biết (a khác 0). Chúng ta có thể gọi a là hệ số bậc hai, b là hệ số bậc một, và c là hằng số (hay còn có thể gọi số hạng tự do).

Cách giải phương trình bậc 2 như sau:

  • Nếu a != 0 thì tính delta = b² – 4ac
  • Nếu delta < 0 thì phương trình vô nghiệm
  • Nếu delta = 0 thì phương trình có nghiệm kép: x1 = x2 = -b/2a
  • Nếu delta > 0 thì sẽ có 2 nghiệm phân biệt: x1 = (-b + delta)/2a, x2 = (-b -delta)/2a;
  • Nếu a == 0 thì phương trình trở thành phương trình bậc 1, chúng ta sẽ giải phương trình bậc một đã đề cập ở bài tập trước.

Giải phương trình bậc 2 bằng cách sử dụng cấu trúc điều khiển if else trong C++ như sau:

Bài viết này được đăng tại [free tuts .net]

#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;

int main()
{

    float a, b, c, delta, x1, x2;
    cout << "Nhap a = ";
    cin >> a;
    cout << "Nhap b = ";
    cin >> b;
    cout << "Nhap c = ";
    cin >> c;
    if(a == 0) {
        // a== 0 phuong trinh tro thanh phuong trinh bac mot bx + c = 0
        if(b == 0) {
            if (c == 0) {
                cout << "Phuong trinh vo so nghiem" << endl;
            } else {
                cout << "Phuong trinh vo nghiem" << endl;
            }
        } else {
            cout << "Phuong trinh co nghiem duy nhat: " << -c/b << endl;
        }
    } else {
        delta = b*b - 4*a*c;
        if(delta > 0) {
            x1 = (-b+sqrt(delta))/(2*a);
            x2 = (-b-sqrt(delta))/(2*a);
            cout << "Nghiem thu nhat x1 = " << x1 << endl;
            cout << "Nghiem thu hai x2 = " << x2 << endl;
        } else if ( delta == 0) {
            cout << "Phuong trinh co nghiem kep: x1 = x2 = " << -b/2*a << endl;
        } else {
            cout << "Phuong trinh vo nghiem" << endl;
        }
    }
    return 0;
}

Kết quả sau khi thực thi đoạn code trên như sau:

Khi nhập a = 0, b = 0, và c = 0:

ex if 4 JPG

Khi nhập a = 0, b = 0 và c = 4:

ex if 5 JPG

Khi nhập a = 0, b = 2 và c = 3:

ex if 6 JPG

Khi nhập a = 1, b = 2, và c = 1:

ex if 7 JPG

Khi a = 4, b = 1 và c = 8:

ex if 8 JPG

Khi a = 1, b = 5, và c = 2:

ex if 9 JPG

8. Bài tập if else C++

Cùng chuyên mục:

Kiểm tra chuỗi có phải là chuỗi pangram hay không trong C

Kiểm tra chuỗi có phải là chuỗi pangram hay không trong C

Loại bỏ các từ trùng lặp trong một chuỗi trong C

Loại bỏ các từ trùng lặp trong một chuỗi trong C

Chuyển đổi một số thành chuỗi số tiếng Anh trong C

Chuyển đổi một số thành chuỗi số tiếng Anh trong C

Tìm chuỗi con dài nhất không chứa ký tự trùng lặp trong C

Tìm chuỗi con dài nhất không chứa ký tự trùng lặp trong C

Chuyển đổi số nguyên sang dạng chuỗi và ngược lại trong C

Chuyển đổi số nguyên sang dạng chuỗi và ngược lại trong C

Kiểm tra số nguyên tố và số hoàn hảo trong C

Kiểm tra số nguyên tố và số hoàn hảo trong C

Tính lũy thừa của một số nguyên trong C

Tính lũy thừa của một số nguyên trong C

Tính phần dư của phép chia hai số nguyên trong C

Tính phần dư của phép chia hai số nguyên trong C

Tính tổng, hiệu, tích, thương của hai số nguyên trong C

Tính tổng, hiệu, tích, thương của hai số nguyên trong C

Sử dụng con trỏ để tính tổng các phần tử trong mảng trong C

Sử dụng con trỏ để tính tổng các phần tử trong mảng trong C

Sử dụng con trỏ để đảo ngược một chuỗi trong C

Sử dụng con trỏ để đảo ngược một chuỗi trong C

Sắp xếp một mảng số nguyên sao cho số lẻ nằm trước số chẵn trong C

Sắp xếp một mảng số nguyên sao cho số lẻ nằm trước số chẵn trong C

Sắp xếp một mảng chuỗi theo thứ tự từ điển trong C

Sắp xếp một mảng chuỗi theo thứ tự từ điển trong C

Sắp xếp một mảng số nguyên theo thứ tự tăng dần hoặc giảm dần trong C

Sắp xếp một mảng số nguyên theo thứ tự tăng dần hoặc giảm dần trong C

Tìm phần tử lớn thứ k trong mảng trong C

Tìm phần tử lớn thứ k trong mảng trong C

Xóa phần tử trùng lặp trong mảng trong C

Xóa phần tử trùng lặp trong mảng trong C

Đảo ngược mảng không sử dụng mảng phụ trong C

Đảo ngược mảng không sử dụng mảng phụ trong C

Tìm số lần xuất hiện của một phần tử trong mảng trong C

Tìm số lần xuất hiện của một phần tử trong mảng trong C

Tìm giá trị lớn nhất và nhỏ nhất trong một mảng trong C

Tìm giá trị lớn nhất và nhỏ nhất trong một mảng trong C

Tách chuỗi thành các từ riêng lẻ và in ra màn hình trong C

Tách chuỗi thành các từ riêng lẻ và in ra màn hình trong C

Top