Thuật Toán Giải Phương Trình Bậc 2 C Equation 2 Ax² + Bx + C = 0

Giải phương trình bậc hai

Bài toàn giải phương trình bậc hai là một trong những bài toán thường gặp của những người mới học.Vì thế hôm nay mình và các bạn cùng nhau làm bài tập này bằng nhiều ngôn ngữ nhé !

*

Vấn đề bài toán đặt ra 

Nhập vào hệ số a , b , c của phương trình rồi in ra màn hình các nghiệm của phương trình

Phân tích thuật toán 

Như chúng ta đều biết thì phương trình bậc hai có dạng ax² +bx + c = 0 (a≠0).Và delta được tính bằng công thức delta = b² – 4ac

Căn cứ vào delta thì chúng ta có thể tìm ra nghiệm của phương trình như sau

Nếu delta Nếu delta = 0 thì phương trình có nghiệm képNếu delta > 0 thì phương trình sẽ có 2 nghiệm phân biệt

Đầu tiên chúng ta sẽ làm như sau :

Dùng một vòng do while để nhập a, b, c nếu a = 0, thì yêu cầu nhập lại a .Bước tiếp theo ta dùng sqrt() trong thư viện math.h để tính căn delta.Tiếp theo ta tạo hàm giaiPT trả về kiểu int đó là số nghiệm của phương trình .Gọi hàm , truyền tham số và giải phuong trình bậc hai bình thường.

Giải quyết vấn đề 

Code bằng ngôn ngữ 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:

#include /** Giai phuong trinh bac 2 */void giaiPT(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 cua phuon trinh 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; printf(“Nhap he so bac 2, a = “); scanf(“%f”, &a); printf(“Nhap he so bac 1, b = “); scanf(“%f”, &b); printf(“Nhap so hang tu do, c = “); scanf(“%f”, &c); giaiPT(a, b, c); return 1;}Code bằng ngôn ngữ C++ 

#include #include #include using namespace std; int main(){ float a, b, c, delta, x1, x2; cout > a; cout > b; cout > c; if(a == 0) { // a== 0 phuong trinh tro thanh phuong trinh bac mot bx + c = 0 if(b == 0) { if (c == 0) { cout 0) { x1 = (-b+sqrt(delta))/(2*a); x2 = (-b-sqrt(delta))/(2*a); cout Code bằng ngôn ngữ Java 

import java.util.Scanner; /** * Giải phương trình bậc 2 * *
author viettuts.vn */public class BaiTap1 { private static Scanner scanner = new Scanner(System.in); /** * main * *
param args */ public static void main(String<> args) { System.out.print(“Nhập hệ số bậc 2, a = “); float a = BaiTap1.scanner.nextFloat(); System.out.print(“Nhập hệ số bậc 1, b = “); float b = BaiTap1.scanner.nextFloat(); System.out.print(“Nhập hằng số tự do, c = “); float c = scanner.nextFloat(); BaiTap1.giaiPTBac2(a, b, c); } /** * Giải phương trình bậc 2: ax2 + bx + c = 0 * *
param c: số hạng tự do */ public static void giaiPTBac2(float a, float b, float c) { // kiểm tra các hệ số if (a == 0) { if (b == 0) { System.out.println(“Phương trình vô nghiệm!”); } else { System.out.println(“Phương trình có một nghiệm: ” + “x = ” + (-c / b)); } return; } // tính delta float delta = b*b – 4*a*c; float x1; float x2; // tính nghiệm if (delta > 0) { x1 = (float) ((-b + Math.sqrt(delta)) / (2*a)); x2 = (float) ((-b – Math.sqrt(delta)) / (2*a)); System.out.println(“Phương trình có 2 nghiệm là: ” + “x1 = ” + x1 + ” và x2 = ” + x2); } else if (delta == 0) { x1 = (-b / (2 * a)); System.out.println(“Phương trình có nghiệm kép: ” + “x1 = x2 = ” + x1); } else { System.out.println(“Phương trình vô nghiệm!”); } }}Nếu bạn là người mới học và đang gặp khó khăn với những bài tập cơ bản thì có thể tham khảo thêm Bài tập C/C#

Bên cạnh đó để nâng cao trình độ và nắm chắc kiến thức thì bạn có thể tham khảo và chọn cho mình khóa học thích hợp tại https://iviettech.vn/

Xem thêm bài viết thuộc chuyên mục: Phương trình