Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- #include <cstdlib>
- #include <math.h>
- #include <conio.h>
- using namespace std;
- class Zespolona{
- private:
- int i, v;
- public:
- Zespolona()
- {
- i=rand()%21-10;
- v=rand()%21-10;
- }
- Zespolona(const Zespolona &zes)
- {
- i=zes.i;
- v=zes.v;
- }
- double modul()
- {
- double mod;
- return mod=pow(i*i+v*v, 1./2);
- }
- ~Zespolona() { cout << "destruktor" << endl;}
- friend void operator+( Zespolona &, const Zespolona &);
- friend void operator-(Zespolona &, const Zespolona &);
- friend void operator*(Zespolona &, const Zespolona &);
- friend void operator*=(Zespolona &, const Zespolona &);
- friend void operator+=(Zespolona &, const Zespolona &);
- friend void operator-=(Zespolona &, const Zespolona &);
- friend bool operator<(Zespolona &, Zespolona &);
- friend bool operator>(Zespolona &, Zespolona &);
- friend bool operator==(Zespolona &, Zespolona &);
- friend ostream & operator<< (ostream &wyjscie, Zespolona &a);
- };
- ostream & operator <<(ostream &wyjscie, Zespolona &a) {
- if(a.i >= 0) {
- return wyjscie << a.v << "+" << a.i << "i, "; }
- else {
- return wyjscie << a.v << "-" << abs(a.i)<< "i, "; }};
- void operator+(Zespolona &x, const Zespolona &y)
- {
- Zespolona suma;
- suma.v = x.v +y.v;
- suma.i = x.i + y.i;
- if(suma.i>=0)
- cout << "suma to: " << suma.v << "+" << suma.i <<"i" << endl;
- else
- cout << "suma to: " << suma.v << suma.i <<"i" << endl;
- }
- void operator-(Zespolona &x, const Zespolona &y)
- {
- Zespolona roznica;
- roznica.v = x.v -y.v;
- roznica.i = x.i - y.i;
- if(roznica.i>=0)
- cout << "roznica to: " << roznica.v << "+" << roznica.i <<"i" << endl;
- else
- cout << "roznica to: " << roznica.v << roznica.i <<"i" << endl;
- }
- void operator*(Zespolona &x, const Zespolona &y)
- {
- Zespolona iloczyn;
- iloczyn.v = x.v*y.v -x.i*y.i;
- iloczyn.i = x.i*y.v + x.v*y.i;
- if(iloczyn.i>=0)
- cout << "iloczyn to: " << iloczyn.v << "+" << iloczyn.i << "i" << endl;
- else
- cout << "iloczyn to: " << iloczyn.v << iloczyn.i << "i" << endl;
- }
- void operator*=(Zespolona &x, const Zespolona &y)
- {
- x.v=x.v*y.v-x.i*y.i;
- x.i=x.i*y.v+x.v*y.i;
- if(x.i>=0)
- cout << "po wykonaniu komorka ma wartosc: " << x.v << "+" << x.i << "i" << endl;
- else
- cout << "po wykonaniu komorka ma wartosc: " << x.v << x.i << "i" << endl;
- }
- void operator+=(Zespolona &x, const Zespolona &y)
- {
- x.v=x.v+y.v;
- x.i=x.i+y.i;
- if(x.i>=0)
- cout << "po wykonaniu komorka ma wartosc: " << x.v << "+" << x.i << "i" << endl;
- else
- cout << "po wykonaniu komorka ma wartosc: " << x.v << x.i << "i" << endl;
- }
- void operator-=(Zespolona &x, const Zespolona &y)
- {
- x.v=x.v-y.v;
- x.i=x.i-y.i;
- if(x.i>=0)
- cout << "po wykonaniu komorka ma wartosc: " << x.v << "+" << x.i << "i" << endl;
- else
- cout << "po wykonaniu komorka ma wartosc: " << x.v << x.i << "i" << endl;
- }
- bool operator<(Zespolona &x, Zespolona &y)
- {
- if(x.modul()<y.modul())
- return true;
- else
- return false;
- }
- bool operator>(Zespolona &x, Zespolona &y)
- {
- if(x.modul()>y.modul())
- return true;
- else
- return false;
- }
- bool operator==(Zespolona &x, Zespolona &y)
- {
- if(x.modul()==y.modul())
- return true;
- else return false;
- }
- int main()
- {
- srand(time(NULL));
- int wybor, x, y;
- cout << "liczby zespolone to: " << endl;
- Zespolona tab[10];
- for(int i=0; i<10; i++)
- cout << tab[i] << " ";
- cout << endl << "ich moduly to: " << endl;
- for(int i=0; i<10; i++)
- cout << tab[i].modul() << " ";
- cout << endl;
- do{
- cout << "\nWybierz dzialanie: " << endl << "1. dodawanie \n2. odejmowanie \n3. mnozenie " << endl;
- cout << "4. przypisanie do elementu iloczynu jego i innej komorki " << endl;
- cout << "5. przypisanie do elementu sumy jego i innej komorki " << endl;
- cout << "6. przypisanie do elementu roznicy jego i innej komorki " << endl;
- cout << "7. Porownywanie modulow" << endl;
- cout << "Twoj wybor: "; cin >> wybor;
- switch(wybor)
- {
- default:
- cout << "nie ma takigo dzialania!"; break;
- case 1:
- cout << "podaj ktore elementy tablicy do siebie dodac: \npierwszy: "; cin >> x;
- cout << "drugi: "; cin >> y;
- x-=1; y-=1;
- *(tab+x)+*(tab+y); break;
- case 2:
- cout << "podaj ktory element odjac od ktorego: \npierwszy: "; cin >> x;
- cout << "drugi: "; cin >> y;
- x-=1; y-=1;
- *(tab+x)- *(tab+y); break;
- case 3:
- cout << "podaj elementy ktore pomnozyc: \npierwszy: "; cin >> x;
- cout << "drugi: "; cin >> y;
- x-=1; y-=1;
- *(tab+x)* *(tab+y); break;
- case 4:
- cout << "ktorej komorce przypisac nowa wartosc? "; cin >> x;
- cout << "ktora komorke wymnozyc przez wczesniej wybrana? "; cin >> y;
- x-=1; y-=1;
- *(tab+x)*=*(tab+y); break;
- case 5:
- cout << "ktorej komorce przypisac nowa wartosc? "; cin >> x;
- cout << "ktora komorke dodac do wczesniej wybranej? "; cin >> y;
- x-=1; y-=1;
- *(tab+x)+=*(tab+y); break;
- case 6:
- cout << "ktorej komorce przypisac nowa wartosc? "; cin >> x;
- cout << "ktora komorke odjac od wczesniej wybranej? "; cin >> y;
- x-=1; y-=1;
- *(tab+x)-=*(tab+y); break;
- case 7:
- cout << "moduly ktorych komorek sprawdzic? \npierwsza: "; cin >> x;
- cout << "druga: "; cin >> y;
- x-=1; y-=1;
- if(*(tab+x)<*(tab+y))
- cout << "liczba " << *(tab+x) << " jest mniejsza" << endl;
- else if(*(tab+x)>*(tab+y))
- cout << "liczba " << *(tab+x) << " jest wieksza" << endl;
- else if(*(tab+x)==*(tab+y))
- cout << "te liczby sa rowne" << endl; break;
- }
- cout << "Wcisnij dowolny przycisk aby powrocic do kalkulatora \nwcisnij esc aby wylaczyc kalkulator" << endl;
- }while(_getch()!=27);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment