Ta program vzame dve zapleteni številki kot strukturi in ju doda z uporabo funkcij.
Če želite razumeti ta primer, morate poznati naslednje programske teme C ++:
- Strukture C ++
- Struktura in funkcija C ++
Primer: izvorna koda za dodajanje dveh kompleksnih številk
// Complex numbers are entered by the user #include using namespace std; typedef struct complex ( float real; float imag; ) complexNumber; complexNumber addComplexNumbers(complex, complex); int main() ( complexNumber num1, num2, complexSum; char signOfImag; cout << "For 1st complex number," << endl; cout << "Enter real and imaginary parts respectively:" <> num1.real>> num1.imag; cout << endl << "For 2nd complex number," << endl; cout << "Enter real and imaginary parts respectively:" <> num2.real>> num2.imag; // Call add function and store result in complexSum complexSum = addComplexNumbers(num1, num2); // Use Ternary Operator to check the sign of the imaginary number signOfImag = (complexSum.imag> 0) ? '+' : '-'; // Use Ternary Operator to adjust the sign of the imaginary number complexSum.imag = (complexSum.imag> 0) ? complexSum.imag : -complexSum.imag; cout << "Sum = " << complexSum.real << signOfImag << complexSum.imag << "i"; return 0; ) complexNumber addComplexNumbers(complex num1, complex num2) ( complex temp; temp.real = num1.real + num2.real; temp.imag = num1.imag + num2.imag; return (temp); )
Izhod
Vnesite realni in namišljeni del: 3.4 5.5 Za 2. kompleksno število vnesite realni oziroma namišljeni del: -4,5 -9,5 Vsota = -1,1-4i
V tem programu sta dve zapleteni številki, ki ju vnese uporabnik, shranjeni v strukturah num1 in num2.
Ti dve strukturi se preneseta v addComplexNumbers()
funkcijo, ki izračuna vsoto in vrne rezultat main()
funkciji.
Ta rezultat je shranjen v strukturi complexSum.
Nato se določi znak namišljenega dela vsote in shrani v char
spremenljivko signOfImag.
// Use Ternary Operator to check the sign of the imaginary number signOfImag = (complexSum.imag> 0) ? '+' : '-';
Če je namišljeni del kompleksaSum pozitiven, se vrednosti dodeli znakOfImag '+'
. V nasprotnem primeru mu je dodeljena vrednost '-'
.
Nato prilagodimo vrednost complexSum.imag.
/// Use Ternary Operator to adjust the sign of the imaginary number complexSum.imag = (complexSum.imag> 0) ? complexSum.imag : -complexSum.imag;
Ta koda spremeni kompleksSum.imag v pozitivno, če se ugotovi, da ima negativno vrednost.
To je zato, ker če je negativno, nam bo tiskanje skupaj z signOfImag dalo dva negativna znaka na izhodu.
Torej vrednost spremenimo na pozitivno, da se izognemo ponavljanju znakov.
Po tem končno prikažemo vsoto.