C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

二次方程式のすべての根を見つけるためのC++プログラム


二次方程式はax 2 の形式です。 + bx+c。二次方程式の根は次の式で与えられます-

二次方程式のすべての根を見つけるためのC++プログラム

3つのケースがあります-

b 2 <4 * a * c-ルートは本物ではありません。つまり、複雑です

b 2 =4 * a * c-根は実数であり、両方の根は同じです。

b 2 > 4 * a * c-根は実数であり、両方の根は異なります

二次方程式の根を見つけるプログラムは次のとおりです。

#include<iostream>
#include<cmath>
using namespace std;
int main() {
   int a = 1, b = 2, c = 1;
   float discriminant, realPart, imaginaryPart, x1, x2;
   if (a == 0) {
      cout << "This is not a quadratic equation";
   }else {
      discriminant = b*b - 4*a*c;
      if (discriminant > 0) {
         x1 = (-b + sqrt(discriminant)) / (2*a);
         x2 = (-b - sqrt(discriminant)) / (2*a);
         cout << "Roots are real and different." << endl;
         cout << "Root 1 = " << x1 << endl;
         cout << "Root 2 = " << x2 << endl;
      } else if (discriminant == 0) {
         cout << "Roots are real and same." << endl;
         x1 = (-b + sqrt(discriminant)) / (2*a);
         cout << "Root 1 = Root 2 =" << x1 << endl;
      }else {
         realPart = (float) -b/(2*a);
         imaginaryPart =sqrt(-discriminant)/(2*a);
         cout << "Roots are complex and different." << endl;
         cout << "Root 1 = " << realPart << " + " << imaginaryPart << "i" <<end;
         cout << "Root 2 = " << realPart << " - " << imaginaryPart << "i" <<end;
      }
   }
   return 0;
}

出力

Roots are real and same.
Root 1 = Root 2 =-1

上記のプログラムでは、最初に判別式が計算されます。 0より大きい場合、両方の根は実数であり、異なります。

これは、次のコードスニペットによって示されます。

if (discriminant > 0) {
   x1 = (-b + sqrt(discriminant)) / (2*a);
   x2 = (-b - sqrt(discriminant)) / (2*a);
   cout << "Roots are real and different." << endl;
   cout << "Root 1 = " << x1 << endl;
   cout << "Root 2 = " << x2 << endl;
}

判別式が0に等しい場合、両方の根は実数で同じです。これは、次のコードスニペットによって示されます。

else if (discriminant == 0) {
   cout << "Roots are real and same." << endl;
   x1 = (-b + sqrt(discriminant)) / (2*a);
   cout << "Root 1 = Root 2 =" << x1 << endl;
}

判別式が0未満の場合、両方の根は複雑で異なります。これは、次のコードスニペットによって示されます。

else {
   realPart = (float) -b/(2*a);
   imaginaryPart =sqrt(-discriminant)/(2*a);
   cout << "Roots are complex and different." << endl;
   cout << "Root 1 = " << realPart << " + " << imaginaryPart << "i" << endl;
   cout << "Root 2 = " << realPart << " - " << imaginaryPart << "i" << endl;
}

  1. 二次方程式の根を見つけるためのCプログラムを書く方法は?

    問題 ソフトウェア開発手法を適用してC言語の問題を解決する 解決策 二次方程式ax2+bx+cの根を見つけます。 与えられた二次方程式には2つの根があります。 分析 入力 − a、b、c値 出力 − r1、r2値 手順 $ r_ {1} =\ frac {-b + \ sqrt {b ^ 2-4ac}} {2a} $ $ r_ {2} =\ frac {-b- \ sqrt {b ^ 2-4ac}} {2a} $ デザイン(アルゴリズム) 開始 a、b、cの値を読み取る d =b24acを計算します 0の場合 r1 =b + sqrt(d)/(2 * a) r2 =

  2. 二次方程式のすべての根を見つけるJavaプログラム

    この記事では、Javaで2次方程式の根を計算する方法を理解します。二次方程式は、2次の代数式です。つまり、実数と虚数の2つの結果が得られます。 以下は同じのデモンストレーションです- ax2 + bx + c −の形式の2次方程式が与えられます There are three cases: b2 < 4*a*c - The roots are not real i.e. they are complex b2 = 4*a*c - The roots are real and both roots are the same. b2 > 4*a*c - The roots are