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

2つの複素数を加算するために加算演算子をオーバーロードするC++プログラム


実数部と虚数部を持つ複素数クラスがあるとします。 2つの複素数を加算するには、加算(+)演算子をオーバーロードする必要があります。また、複素数を適切な表現で返す関数を定義する必要があります。

したがって、入力がc1 =8-5i、c2 =2 + 3iの場合、出力は10-2iになります。

これを解決するには、次の手順に従います-

  • +演算子をオーバーロードし、引数として別の複素数c2を取ります

  • 実数と画像が0であるretと呼ばれる複素数を定義します

  • retの実数:=自分の実数+c2の実数

  • imag of ret:=自分のimag+imagのc2

  • retを返す

理解を深めるために、次の実装を見てみましょう-

#include <iostream>
#include <sstream>
#include <cmath>
using namespace std;
class Complex {
    private:
        int real, imag;
    public:
    Complex(){
        real = imag = 0;    
    }
    Complex (int r, int i){
        real = r;
        imag = i;
    }
    string to_string(){
        stringstream ss;
        if(imag >= 0)
            ss << "(" << real << " + " << imag << "i)";
        else
            ss << "(" << real << " - " << abs(imag) << "i)";
        return ss.str();
    }
    Complex operator+(Complex c2){
        Complex ret;
        ret.real = real + c2.real;
        ret.imag = imag + c2.imag;
        return ret;
    }
};
int main(){
    Complex c1(8,-5), c2(2,3);
    Complex res = c1 + c2;
    cout << res.to_string();
}

入力

c1(8,-5), c2(2,3)

出力

(10 - 2i)

  1. C++で2つのバイナリ文字列を追加するプログラム

    2進数の文字列が2つある場合、それら2つの2進数文字列を加算して得られた結果を見つけ、その結果を2進数文字列として返す必要があります。 2進数は、0または1のいずれかで表される数値です。2つの2進数を加算する際には、2進数の加算規則があります。 0+0 → 0 0+1 → 1 1+0 → 1 1+1 → 0, carry 1 入力 str1 = {“11”}, str2 = {“1”} 出力 “100” 入力 str1 = {“110”},

  2. 2つの複素数を追加するJavaプログラム

    この記事では、Javaで2つの複素数を追加する方法を理解します。彼らには「私」、つまりそれに関連する架空の部分があります。 以下は同じのデモンストレーションです- 入力 入力が-であると仮定します 15 +i24 and 3 +i7 出力 必要な出力は-になります 18 +i31 アルゴリズム Step1- Start Step 2- Declare three Complex numbers: my_input_1, my_input_2 and my_result Step 3- Hardcode the complex number values Step 4- Defi