1 // quadratic-equation.C --- 複素係数の 2 次方程式を解く。
2 //
3 // コンパイルは (6701 号室では例えば)
4 // g++ -o quadratic-equation quadratic-equation.C
5 //
6 // 注意: 素朴な (桁落ちの対策などしていない) アルゴリズムを使っている。
7
8 #include <iostream.h>
9 #include <complex.h>
10
11 int main()
12 {
13 complex<double> a, b, c, D, x1, x2;
14
15 cout << "複素係数の2次方程式 a x^2+b x+c=0 (a≠0) を解きます。" << endl;
16 cout << " 複素数は ( ) でくくり、実部と虚部をカンマ , で区切って表す。"
17 << endl;
18 cout << " 例えば 1+2i は (1,2) と表わします。" << endl;
19 cout << "入力してください。" << endl;
20
21 cout << "a="; cin >> a;
22 cout << "b="; cin >> b;
23 cout << "c="; cin >> c;
24
25 cout << "a=" << a << ", b=" << b << ", c=" << c << endl;
26
27 D = sqrt(b * b - 4 * a * c);
28 x1 = (-b + D) / (2 * a);
29 x2 = (-b - D) / (2 * a);
30 cout << "x1=" << x1 << endl;
31 cout << "x2=" << x2 << endl;
32
33 return 0;
34 }
|