logo sói già phố wall
/
Trang chủ Học tập Viết chương trình giải phương trình bậc 2 C++

Viết chương trình giải phương trình bậc 2 C++

bởi sgphowall1@

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à cách giải phương trình bậc 2 thì không phải xa lạ đúng không ạ. Và chúng ta đã từng được học ở lớp dưới rồi. Vậy đối với giải phương trình bậc 2 trong C++ thì sẽ như thế nào? Cách viết chương trình giải phương trình bậc 2 c++ ra sao?  Nó có khó như chúng ta thường nghĩ hay không? Đó là một bài toán cần chúng ta đi tìm lời giải. Nào hãy cùng bắt tay vào giải ngay thôi nào các bạn!

Để viết được chương trình giải phương trình bậc 2 c++ đầu tiên bạn phải biết cách giải phương trình bậc 2

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

Viết chương trình giải phương trình bậc 2 c++

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)

Phương pháp giải là chúng ta thực hiện bằng cách tính delta:

  • Đầu tiên tính delta 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 < 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 để giải bài toán như sau

  • Dùng một vòng do while để nhập a, b, c nếu a = 0, thì quay lại 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  và trả về kiểu int chính là số nghiệm của phương trình (1).
  • Đưa tham chiếu 2 biến x1 và  x2 vào hàm giaiPT để gán giá trị 2 nghiệm.
  • Nếu pt (1) vô nghiệm 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 , và  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 ; x2 = (-b-√delta ) / 2a .

Viết Chương trình giải phương trình bậc 2 C++ như thế nào?

Code bằng ngôn ngữ C

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

 

#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 biet\nx1=%.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.6667

Code bằng ngôn ngữ C++ 

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

 

#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.666667

Nếu bạn là người mới học viết chương trình và đang gặp khó khăn với những bài tập cơ bản thì trên đây là hướng dẫn về cách viết chương trình giải phương trình bậc 2 C++  mà bạn có thể tham khảo. Nó hoàn toàn không khó phải không nào. Mong rằng nó sẽ giúp ích phần nào để bổ sung kiến thức cho bạn. Chúc các bạn học tập thật tốt!

You may also like

Để lại bình luận