LATEST

Giải phương trình bậc nhất ax + b = 0 trong C / C++

Trong bài viết này, codehow sẽ hướng dẫn các bạn cách giải phương trình bậc nhất ax + b = 0 trong C / C++. Đây là bài toán thường gặp khi bắt đầu học lập trình, bởi nó vừa áp dụng kiến thức phổ thông vừa áp dụng kiến thức căn bản trong lập trình.

Trước khi đi vào viết chương trình giải phương trình bậc nhất ax + b = 0 ta cùng ôn lại cách giải đã nhé.

Phương trình bậc nhất một ẩn ax + b = 0 (hay còn gọi là phương trình truyến tính). Trong đó:

  • a: là hệ số bật một.
  • b: là một hằng số.

Để tìm nghiệm x của phương trình, có các trường hợp như sau:

  • a = 0 và b = 0 thì phương trình vô số nghiệm.
  • a = 0 và b != 0 thì phương trình vô nghiệm.
  • a != 0 thì nghiệm được tính theo công thức: x = -b / a.

Vậy làm thế nào để thực hiện giải phương trình bậc nhất ax + b = 0 trong C / C++ thì hãy bắt đầu ngay cùng mình thôi nào.

Giải phương trình bậc nhất ax + b = 0 trong C / C++

Để giải phương trình bậc nhất ax + b = 0 trong C / C++, ta thực hiện theo từng bước như sau.

Bước 1: Khai báo hai biến a b là hai hệ số của phương trình, biến nghiem là nghiệm của phương trình.

//khai báo hai biến a và b là hệ số của phương trình
int a;
int b;
//khai báo biến nghiem là nghiệm của phương trình
double nghiem;

Bước 2: Yêu cầu người dùng nhập vào hai hệ số của phương trình.

//yêu cầu người dùng nhập vào hệ số a và b
printf("Nhập hệ số a = ");
scanf("%d", &a);
printf("Nhập hệ số b = ");
scanf("%d", &b);

Bước 3: Hiển thị phương trình sau khi nhập dưới dạng ax + b = 0.

//hiển thị ra phương trình sau khi nhập
printf("Phương trình sau khi nhập: %dx + %d = 0",a,b);

Bước 4: Tạo điều kiện xử lý chương trình. Chia thành 3 trường hợp như sau:

  • TH1: a = 0 và b = 0 thì kết luận phương trình vô số nghiệm.
  • TH2: a = 0 và b != 0 thì kết luận phương trình vô nghiệm.
  • TH3: a != 0 thì nghiệm phương trình x = -b / a.
//tạo điều kiện cho chương trình
  //TH1: nếu a = 0 và b = 0 thì phương trình vô số nghiệm
  //TH2: nếu a = 0 và b != 0 thì phương trình vô nghiệm
  //TH3: Nếu a != thì x = -b / a
  if(a == 0) {
    if(b == 0) {
      printf("\n-> Phương trình trên có vô số nghiệm\n");
    } else {
      printf("\n-> Phương trình trên vô nghiệm\n");
    }
  } 
  else {
      nghiem = (double)-b/a;
      printf("\n-> Phương trình trên có nghiệm là: x = %0.2f\n",nghiem);
  }

Dưới đây là hai chương trình giải phương trình bậc nhất ax + b = 0 trong C / C++ mình đã viết sẵn, các bạn có thể tham khảo nhé.

Chương trình C:

#include <stdio.h>

int main(){
  //khai báo hai biến a và b là hệ số của phương trình
  int a;
  int b;
  //khai báo biến nghiem là nghiệm của phương trình
  double nghiem;
  //yêu cầu người dùng nhập vào hệ số a và b
  printf("Nhập hệ số a = ");
  scanf("%d", &a);
  printf("Nhập hệ số b = ");
  scanf("%d", &b);
  //hiển thị ra phương trình sau khi nhập
  printf("Phương trình sau khi nhập: %dx + %d = 0",a,b);
  //tạo điều kiện cho chương trình
  //TH1: nếu a = 0 và b = 0 thì phương trình vô số nghiệm
  //TH2: nếu a = 0 và b != 0 thì phương trình vô nghiệm
  //TH3: Nếu a != thì x = -b / a
  if(a == 0) {
    if(b == 0) {
      printf("\n-> Phương trình trên có vô số nghiệm\n");
    } else {
      printf("\n-> Phương trình trên vô nghiệm\n");
    }
  } 
  else {
      nghiem = (double)-b/a;
      printf("\n-> Phương trình trên có nghiệm là: x = %0.2f\n",nghiem);
  }
  
  printf("\n-------------------------------\n");
  printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Chương trình C++:

#include <iostream>
using namespace std;

int main(){
  //khai báo hai biến a và b là hệ số của phương trình
  int a;
  int b;
  //khai báo biến nghiem là nghiệm của phương trình
  double nghiem;
  //yêu cầu người dùng nhập vào hệ số a và b
  cout << "Nhập hệ số a = ";
  cin >> a;
  cout << "Nhập hệ số b = ";
  cin >> b;
  //hiển thị ra phương trình sau khi nhập
  cout<<"Phương trình sau khi nhập: "<<a<<"x + "<<b<<" = 0";
  //tạo điều kiện cho chương trình
  //TH1: nếu a = 0 và b = 0 thì phương trình vô số nghiệm
  //TH2: nếu a = 0 và b != 0 thì phương trình vô nghiệm
  //TH3: Nếu a != thì x = -b / a
  if(a == 0) {
    if(b == 0) {
      cout << "\n-> Phương trình trên có vô số nghiệm" << endl;
    } else {
      cout << "\n-> Phương trình trên vô nghiệm" << endl;
    }
  } 
  else {
      nghiem = (double)-b/a;
      cout << "\n-> Phương trình trên có nghiệm là: x = " << nghiem << endl;
  }
  
  cout<<"\n-------------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả có nghiệm x:

bai34 01 PNG

Kết quả vô nghiệm:

bai34 02 PNG

Kết quả vô số nghiệm:

bai34 03 PNG

Như vậy là chúng ta đã cùng nhau tìm hiểu và thực hiện chương trình giải phương trình bậc nhất trong C / C++. Các bạn có thể luyện tập nhiều dạng bài tập khác nhau tại serries bài tập C / C++ của codehow nhé. Cảm ơn các bạn rất nhiều.

Cùng chuyên mục:

Xóa node khỏi cây nhị phân tìm kiếm

Xóa node khỏi cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cách gộp hai danh sách liên kết đôi

Cách gộp hai danh sách liên kết đôi

Tìm kiếm phần tử trong DSLK đôi

Tìm kiếm phần tử trong DSLK đôi

Xóa node trong DSLK đôi

Xóa node trong DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Duyệt danh sách liên kết đôi

Duyệt danh sách liên kết đôi

Tạo node mới trong DSLK đôi

Tạo node mới trong DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

Quản lý sinh viên bằng DSLK đơn

Quản lý sinh viên bằng DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Tạo node mới trong DSLK đơn

Tạo node mới trong DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Cấu trúc dữ liệu của DSLK đơn