構造体を関数に渡して複素数を加算するC++プログラムの書き方
複素数とは
複素数とは、a+bi の形式で表される数のことです。ここで i は虚数単位、a と b は実数を表します。複素数の具体例は以下の通りです。
2+5i 3-9i 8+2i
2つの複素数を加算する場合、実部同士、虚部同士をそれぞれ足し合わせます。つまり、(a+bi) + (c+di) = (a+c) + (b+d)i という計算になります。
本記事では、C++の構造体を使って複素数を表現し、それを関数に渡して加算する方法を解説します。
サンプルプログラム
以下は、構造体を関数に渡すことで複素数の加算を行うC++プログラムの完全なコードです。
#include <iostream>
using namespace std;
typedef struct complexNumber {
float real;
float imag;
};
complexNumber addCN(complexNumber num1, complexNumber num2) {
complexNumber temp;
temp.real = num1.real + num2.real;
temp.imag = num1.imag + num2.imag;
return(temp);
}
int main() {
complexNumber num1, num2, sum;
cout << "Enter real part of Complex Number 1: " << endl;
cin >> num1.real;
cout << "Enter imaginary part of Complex Number 1: " << endl;
cin >> num1.imag;
cout << "Enter real part of Complex Number 2: " << endl;
cin >> num2.real;
cout << "Enter imaginary part of Complex Number 2: " << endl;
cin >> num2.imag;
sum = addCN(num1, num2);
if(sum.imag >= 0)
cout << "Sum of the two complex numbers is " << sum.real << " + " << sum.imag << "i";
else
cout << "Sum of the two complex numbers is " << sum.real << " + (" << sum.imag << ")i";
return 0;
}実行結果
上記プログラムを実行すると、以下のような出力が得られます。
Enter real part of Complex Number 1: 5 Enter imaginary part of Complex Number 1: -9 Enter real part of Complex Number 2: 3 Enter imaginary part of Complex Number 2: 6 Sum of the two complex numbers is 8 + (-3)i
この例では、5-9i と 3+6i を加算し、結果として 8-3i が表示されています。実部は 5+3=8、虚部は -9+6=-3 と正しく計算されていることがわかります。
プログラムの解説
1. 複素数を表す構造体の定義
まず、複素数の実部(real)と虚部(imag)を保持するための構造体 complexNumber を定義します。float型のメンバー変数を2つ持ちます。
struct complexNumber {
float real;
float imag;
};2. 加算を行う関数 addCN()
関数 addCN() は、complexNumber型の引数を2つ受け取り、それぞれの実部と虚部を加算します。計算結果は一時的な構造体 temp に格納され、呼び出し元の main() 関数へ返されます。
complexNumber addCN(complexNumber num1, complexNumber num2) {
complexNumber temp;
temp.real = num1.real + num2.real;
temp.imag = num1.imag + num2.imag;
return(temp);
}3. main()関数での入力処理
main() 関数では、cin を使ってユーザーから2つの複素数の実部と虚部をそれぞれ入力してもらいます。
cout << "Enter real part of Complex Number 1: " << endl; cin >> num1.real; cout << "Enter imaginary part of Complex Number 1: " << endl; cin >> num1.imag; cout << "Enter real part of Complex Number 2: " << endl; cin >> num2.real; cout << "Enter imaginary part of Complex Number 2: " << endl; cin >> num2.imag;
4. 加算結果の表示
addCN() 関数を呼び出して2つの複素数の和を求め、その結果を出力します。虚部が負の場合は「+(-3)i」のように括弧付きで表示することで、数式として読みやすくしています。
sum = addCN(num1, num2);
if(sum.imag >= 0)
cout << "Sum of the two complex numbers is " << sum.real << " + " << sum.imag << "i";
else
cout << "Sum of the two complex numbers is " << sum.real << " + (" << sum.imag << ")i";まとめ
このように、C++では構造体を使って複素数を実部と虚部のペアとして表現し、関数に渡すことで簡潔に加算処理を実装できます。なお、C++では標準ライブラリの std::complex を使えば、より簡単に複素数の演算を行うことも可能です。構造体の使い方を学ぶ練習として、ぜひ本サンプルを参考にしてみてください。
-
C++プログラムの基本構造を徹底解説!Hello Worldで学ぶ入門
C++プログラムの基本構造とは プログラミング言語を効率よく習得する最良の方法は、実際にプログラムを書いてみることです。初心者が最初に書くプログラムとして定番なのが、「Hello World」という文字列を画面に表示するだけのシンプルなプログラムです。ごく簡単な内容ですが、C++プログラムに必要な基本的な構成要素がすべて詰まっています。それでは、さっそくコードを見てみましょう。 #include<iostream> int main() { std::cout << Hello World\n; } ここからは、このプログ
-
【Java入門】2つの複素数を加算するプログラムの作り方を解説
この記事では、Javaを使って2つの複素数を加算する方法を解説します。複素数は「i」で表される虚部を持つ数値のため、実部と虚部をそれぞれ別々に計理する必要があります。 複素数の加算の基本 複素数は一般的に「a + bi」という形で表されます。ここで「a」が実部、「b」が虚部です。2つの複素数を足し合わせる場合は、以下のように実部同士・虚部同士をそれぞれ加算します。 (a + bi) + (c + di) = (a + c) + (b + d)i 入力と出力の例 入力: 15 + i24 と 3 + i7 出力: 18 + i31 アルゴリズム ステップ1:開始 ステップ2:3つの複素数(my_