#include <iostream>
using namespace std;
enum ACTION{EXIT,ADD,SUB,MUL,DIV};
class Zespolona
{
public:
Zespolona() : rzeczywista(0), urojona(0){}
Zespolona(double a,double b) : rzeczywista(a), urojona(b){}
double rzeczywista;
double urojona;
};
Zespolona *dodawanie(Zespolona liczba1, Zespolona liczba2)
{
Zespolona *zmienna;
zmienna = new Zespolona(liczba1.rzeczywista+liczba2.rzeczywista, liczba1.urojona+liczba2.urojona);
return zmienna;
}
void wczytywanie(Zespolona& liczba1, Zespolona& liczba2)
{
cout << "Podaj pierwsza liczbe zespolona:" << endl;
cout << "Czesc rzeczywista: ";
cin >> liczba1.rzeczywista;
cout << endl << "Czesc urojona: ";
cin >> liczba1.urojona;
cout << "Podaj druga liczbe zespolona: " << endl;
cout << "Czesc rzeczywista: ";
cin >> liczba2.rzeczywista;
cout << endl << "Czesc urojona: ";
cin >> liczba2.urojona;
}
void print(const Zespolona* _xd){
std::cout << "\nReal:" << _xd->rzeczywista << " Imag:" << _xd->urojona << std::endl;
}
int main()
{
Zespolona liczba1;
Zespolona liczba2;
wczytywanie(liczba1,liczba2);
int a;
std::cout << "Podaj typ operacji:";
std::cin >> a;
ACTION act = (ACTION)a;
Zespolona* wynik = NULL;
switch(act)
{
case EXIT:
return 0;
break;
case ADD:
wynik = dodawanie(liczba1,liczba2);
break;
//itd
default:
return 0;
}
print(wynik);
delete wynik;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwplbnVtIEFDVElPTntFWElULEFERCxTVUIsTVVMLERJVn07CmNsYXNzIFplc3BvbG9uYQp7CglwdWJsaWM6CglaZXNwb2xvbmEoKSA6IHJ6ZWN6eXdpc3RhKDApLCB1cm9qb25hKDApe30KCVplc3BvbG9uYShkb3VibGUgYSxkb3VibGUgYikgOiByemVjenl3aXN0YShhKSwgdXJvam9uYShiKXt9Cglkb3VibGUgcnplY3p5d2lzdGE7Cglkb3VibGUgdXJvam9uYTsKfTsKWmVzcG9sb25hICpkb2Rhd2FuaWUoWmVzcG9sb25hIGxpY3piYTEsIFplc3BvbG9uYSBsaWN6YmEyKQp7CiAgICBaZXNwb2xvbmEgKnptaWVubmE7CiAgICB6bWllbm5hID0gbmV3IFplc3BvbG9uYShsaWN6YmExLnJ6ZWN6eXdpc3RhK2xpY3piYTIucnplY3p5d2lzdGEsIGxpY3piYTEudXJvam9uYStsaWN6YmEyLnVyb2pvbmEpOwogCiAgICByZXR1cm4gem1pZW5uYTsKfSAgCiAKdm9pZCB3Y3p5dHl3YW5pZShaZXNwb2xvbmEmIGxpY3piYTEsIFplc3BvbG9uYSYgbGljemJhMikKewoKICAgIGNvdXQgPDwgIlBvZGFqIHBpZXJ3c3phIGxpY3piZSB6ZXNwb2xvbmE6IiA8PCBlbmRsOwogICAgY291dCA8PCAiQ3plc2MgcnplY3p5d2lzdGE6ICI7CiAgICBjaW4gPj4gbGljemJhMS5yemVjenl3aXN0YTsKICAgIGNvdXQgPDwgZW5kbCA8PCAiQ3plc2MgdXJvam9uYTogIjsKICAgIGNpbiA+PiBsaWN6YmExLnVyb2pvbmE7CiAgICBjb3V0IDw8ICJQb2RhaiBkcnVnYSBsaWN6YmUgemVzcG9sb25hOiAiIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJDemVzYyByemVjenl3aXN0YTogIjsKICAgIGNpbiA+PiBsaWN6YmEyLnJ6ZWN6eXdpc3RhOwogICAgY291dCA8PCBlbmRsIDw8ICJDemVzYyB1cm9qb25hOiAiOwogICAgY2luID4+IGxpY3piYTIudXJvam9uYTsKIAp9CnZvaWQgcHJpbnQoY29uc3QgWmVzcG9sb25hKiBfeGQpewoJc3RkOjpjb3V0IDw8ICJcblJlYWw6IiA8PCBfeGQtPnJ6ZWN6eXdpc3RhIDw8ICIgSW1hZzoiIDw8IF94ZC0+dXJvam9uYSA8PCBzdGQ6OmVuZGw7Cn0KaW50IG1haW4oKQp7CiAgICBaZXNwb2xvbmEgbGljemJhMTsKICAgIFplc3BvbG9uYSBsaWN6YmEyOwogICAgd2N6eXR5d2FuaWUobGljemJhMSxsaWN6YmEyKTsKICAgIGludCBhOwogICAgc3RkOjpjb3V0IDw8ICJQb2RhaiB0eXAgb3BlcmFjamk6IjsKICAgIHN0ZDo6Y2luID4+IGE7CiAgICBBQ1RJT04gYWN0ID0gKEFDVElPTilhOwogICAgWmVzcG9sb25hKiB3eW5payA9IE5VTEw7CiAgICBzd2l0Y2goYWN0KQogICAgewogICAgCWNhc2UgRVhJVDoKICAgIAkJcmV0dXJuIDA7CiAgICAJCWJyZWFrOwogICAgCWNhc2UgQUREOgogICAgCQl3eW5payA9IGRvZGF3YW5pZShsaWN6YmExLGxpY3piYTIpOwogICAgCQlicmVhazsKICAgIAkvL2l0ZAogICAgCWRlZmF1bHQ6CiAgICAJICAgIHJldHVybiAwOwogICAgfQogICAgcHJpbnQod3luaWspOwogICAgZGVsZXRlIHd5bmlrOwoKfQ==