se citesc de la tastatura 2 numere complexe prin partea reala si partea imaginara. Sa se efectueze adunarea, scaderea si înmulțirea lor.
Răspunsuri la întrebare
Varianta I (recomandata) :
#include <iostream>
using namespace std;
//Declaratii sturcturi
struct Complex {
double parte_reala, parte_imaginara;
};
//Supraincarcare operatori
Complex operator + (Complex a, Complex b) {
Complex suma;
suma.parte_reala = a.parte_reala + b.parte_reala;
suma.parte_imaginara = a.parte_imaginara + b.parte_imaginara;
return suma;
}
Complex operator - (Complex a, Complex b) {
Complex dif;
dif.parte_reala = a.parte_reala - b.parte_reala;
dif.parte_imaginara = a.parte_imaginara - b.parte_imaginara;
return dif;
}
Complex operator * (Complex a, Complex b) {
Complex prod;
prod.parte_reala = a.parte_reala * b.parte_reala - a.parte_imaginara * b.parte_imaginara;
prod.parte_imaginara = a.parte_reala * b.parte_imaginara + a.parte_imaginara * b.parte_reala;
return prod;
}
void afisare_complex(Complex z) {
if (!z.parte_imaginara)cout << z.parte_reala;
else if (z.parte_reala && z.parte_imaginara > 0) cout << z.parte_reala << "+" << z.parte_imaginara << "i";
else if (z.parte_reala && z.parte_imaginara < 0) cout << z.parte_reala << z.parte_imaginara << "i";
else if (!z.parte_reala) cout << z.parte_imaginara << "i";
}
int main() {
Complex a, b;
//Citire date
cout << "Scrieti nr a :";
cin >> a.parte_reala >> a.parte_imaginara;
cout << "Scrieti nr b :";
cin >> b.parte_reala >> b.parte_imaginara;
//Afisare rezultat
cout << "\nSuma este ", afisare_complex(a + b);
cout << "\nDiferenta este ", afisare_complex(a - b);
cout << "\nProdusul este ", afisare_complex(a * b);
}
Varianta II (mai usor de inteles):
#include <iostream>
using namespace std;
int main() {
int ax, ay, bx, by;
//Citire date
cout << "Scrieti nr a :";
cin >> ax >> ay;
cout << "Scrieti nr b :";
cin >> bx >> by;
//Afisare rezultat
cout << "\nSuma este " << ax + bx << " + " << ay + by << "i";
cout << "\nDiferenta este " << ax - bx << " + " << ay - by << "i";
cout << "\nProdusul este " << ax * bx - ay * by << " + " << ax * by + bx * ay << "i";
}