rendered paste body#include<iostream>
#include<cmath>
using namespace std;
class zesp{
double rzeczywista, urojona;
public:
zesp(double re=0.0, double im=0.0): rzeczywista(re), urojona(im)
{}
double modul(){
return (sqrt(rzeczywista*rzeczywista+urojona*urojona));
}
friend zesp operator+(const zesp&, const zesp&); // funkcja pozw. dostac sie do priv z zewnatrz
friend ostream& operator<<(ostream&, const zesp&); // funkcja pozw. dostac sie do priv z zewnatrz
};
//FUNKCJE
zesp operator+ (const zesp& a, const zesp& b) { //funkcja przeladowania "+"
double r, i;
r = a.rzeczywista + b.rzeczywista;
i = a.urojona + b.urojona;
return zesp(r, i);
}
ostream& operator<<(ostream& out, const zesp &a) { //funkcja przeladowania "<<"
out << "(" << a.rzeczywista << ", " << a.urojona << ")" << endl;
return out;
}
int main(){
double re1, im1, re2, im2;
cout << "Podaj czesc rzeczywista 1. liczby:";
cin >> re1;
cout << "Podaj czesc urojona 1. liczby:";
cin >> im1;
cout << "Podaj czesc rzeczywista 2. liczby:";
cin >> re2;
cout << "Podaj czesc urojona 2. liczby:";
cin >> im2;
zesp liczba1(re1,im1);
zesp liczba2(re2,im2);
cout << "Modul 1. liczby jest rowny: " << liczba1.modul() << endl;
cout << "Modul 2. liczby jest rowny: " << liczba2.modul() << endl;
//przeladowanie
zesp suma = liczba1+liczba2;
cout << suma << endl;
system("PAUSE");
return EXIT_SUCCESS;
}