Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Zadanie 3.
- #include <iostream>
- #include <conio.h>
- using namespace std;
- class LiczbaZespolona
- {
- friend LiczbaZespolona* suma(LiczbaZespolona*, LiczbaZespolona*);
- friend LiczbaZespolona* roznica(LiczbaZespolona*, LiczbaZespolona*);
- friend LiczbaZespolona* iloczyn(LiczbaZespolona*, LiczbaZespolona*);
- friend LiczbaZespolona* iloraz(LiczbaZespolona*, LiczbaZespolona*);
- double im;
- double re;
- public:
- LiczbaZespolona();
- LiczbaZespolona(double);
- LiczbaZespolona(double, double);
- void wyswietl() const;
- };
- LiczbaZespolona::LiczbaZespolona() : im(0), re(0) {}
- LiczbaZespolona::LiczbaZespolona(double x) : im(x), re(x) {}
- LiczbaZespolona::LiczbaZespolona(double x, double y) : im(x), re(y) {}
- void LiczbaZespolona::wyswietl() const
- {
- cout << re << ", im = " << im << endl;
- }
- LiczbaZespolona* suma(LiczbaZespolona* A, LiczbaZespolona* B)
- {
- LiczbaZespolona* wynik = new LiczbaZespolona;
- wynik->re = A->re + B->re;
- wynik->im = A->im + B->im;
- return wynik;
- }
- LiczbaZespolona* roznica(LiczbaZespolona* A, LiczbaZespolona* B)
- {
- LiczbaZespolona* wynik = new LiczbaZespolona;
- wynik->re = A->re - B->re;
- wynik->im = A->im - B->im;
- return wynik;
- }
- LiczbaZespolona* iloczyn(LiczbaZespolona* A, LiczbaZespolona* B)
- {
- LiczbaZespolona* wynik = new LiczbaZespolona;
- wynik->re = A->re * B->re;
- wynik->im = A->im * B->im;
- return wynik;
- }
- LiczbaZespolona* iloraz(LiczbaZespolona* A, LiczbaZespolona* B)
- {
- LiczbaZespolona* wynik = new LiczbaZespolona;
- wynik->re = A->re / B->re;
- wynik->im = A->im / B->im;
- return wynik;
- }
- int main()
- {
- LiczbaZespolona* tablica[100];
- unsigned ile = 0;
- for(unsigned i = 0; i < 100; ++i)
- tablica[i] = nullptr;
- char komenda;
- double x, y;
- unsigned a, b;
- bool flaga = true;
- while(flaga)
- {
- cout << "Co chcesz zrobic?\n";
- cout << "\tN - utworzenie nowej liczby zespolonej (2 argumenty)\n";
- cout << "\tR - utworzenie nowej liczby zespolonej (1 argument)\n";
- cout << "\tW - wyswietl wartosc liczby\n";
- cout << "\t+ - suma\n";
- cout << "\t- - roznica\n";
- cout << "\t* - iloczyn\n";
- cout << "\t/ - iloraz\n";
- cout << "\tK - wyjdz z programu\n";
- do
- {
- komenda = _getch();
- komenda = toupper(komenda);
- }
- while(komenda != 'N' && komenda != 'R' && komenda != 'W' && komenda != '+' && komenda != '-' && komenda != '*' && komenda != '/' && komenda != 'K');
- switch(komenda)
- {
- case 'N':
- cout << "Podaj dwa argumenty: ";
- cin >> x >> y;
- tablica[ile] = new LiczbaZespolona(x, y);
- ++ile;
- break;
- case 'R':
- cout << "Podaj argument: ";
- cin >> x;
- tablica[ile] = new LiczbaZespolona(x);
- ++ile;
- break;
- case 'W':
- cout << "Podaj numer liczby, ktora chcesz wyswietlic: ";
- cin >> a;
- if(a >= ile)
- cout << "Jeszcze nie wczytano liczby o tym numerze\n";
- else
- tablica[a]->wyswietl();
- break;
- case '+':
- cout << "Podaj numery dwoch liczb, ktore chcesz dodac: ";
- cin >> a >> b;
- if(a >= ile || b >= ile)
- cout << "Przynajmniej jedna z podanych liczb nie istnieje\n";
- else
- {
- tablica[ile] = suma(tablica[a], tablica[b]);
- cout << "Zapisano liczbe na indeks " << ile << endl;
- ++ile;
- }
- break;
- case '-':
- cout << "Podaj numery dwoch liczb, ktore chcesz odjac: ";
- cin >> a >> b;
- if(a >= ile || b >= ile)
- cout << "Przynajmniej jedna z podanych liczb nie istnieje\n";
- else
- {
- tablica[ile] = roznica(tablica[a], tablica[b]);
- cout << "Zapisano liczbe na indeks " << ile << endl;
- ++ile;
- }
- break;
- case '*':
- cout << "Podaj numery dwoch liczb, ktore chcesz pomnozyc: ";
- cin >> a >> b;
- if(a >= ile || b >= ile)
- cout << "Przynajmniej jedna z podanych liczb nie istnieje\n";
- else
- {
- tablica[ile] = iloczyn(tablica[a], tablica[b]);
- cout << "Zapisano liczbe na indeks " << ile << endl;
- ++ile;
- }
- break;
- case '/':
- cout << "Podaj numery dwoch liczb, ktore chcesz podzielic: ";
- cin >> a >> b;
- if(a >= ile || b >= ile)
- cout << "Przynajmniej jedna z podanych liczb nie istnieje\n";
- else
- {
- tablica[ile] = iloraz(tablica[a], tablica[b]);
- cout << "Zapisano liczbe na indeks " << ile << endl;
- ++ile;
- }
- break;
- case 'K':
- cout << "Nastapi wyjscie z programu. Wcisnij dowolny przycisk...";
- _getch();
- flaga = false;
- }
- }
- for(unsigned i = 0; i < ile; ++i)
- delete tablica[i];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement