MeehoweCK

Untitled

Apr 10th, 2021
755
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Zadanie 3.
  2. #include <iostream>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6.  
  7. class LiczbaZespolona
  8. {
  9.     friend LiczbaZespolona* suma(LiczbaZespolona*, LiczbaZespolona*);
  10.     friend LiczbaZespolona* roznica(LiczbaZespolona*, LiczbaZespolona*);
  11.     friend LiczbaZespolona* iloczyn(LiczbaZespolona*, LiczbaZespolona*);
  12.     friend LiczbaZespolona* iloraz(LiczbaZespolona*, LiczbaZespolona*);
  13.     double im;
  14.     double re;
  15. public:
  16.     LiczbaZespolona();
  17.     LiczbaZespolona(double);
  18.     LiczbaZespolona(double, double);
  19.     void wyswietl() const;
  20. };
  21.  
  22. LiczbaZespolona::LiczbaZespolona() : im(0), re(0) {}
  23. LiczbaZespolona::LiczbaZespolona(double x) : im(x), re(x) {}
  24. LiczbaZespolona::LiczbaZespolona(double x, double y) : im(x), re(y) {}
  25.  
  26. void LiczbaZespolona::wyswietl() const
  27. {
  28.     cout << re << ", im = " << im << endl;
  29. }
  30.  
  31. LiczbaZespolona* suma(LiczbaZespolona* A, LiczbaZespolona* B)
  32. {
  33.     LiczbaZespolona* wynik = new LiczbaZespolona;
  34.     wynik->re = A->re + B->re;
  35.     wynik->im = A->im + B->im;
  36.     return wynik;
  37. }
  38.  
  39. LiczbaZespolona* roznica(LiczbaZespolona* A, LiczbaZespolona* B)
  40. {
  41.     LiczbaZespolona* wynik = new LiczbaZespolona;
  42.     wynik->re = A->re - B->re;
  43.     wynik->im = A->im - B->im;
  44.     return wynik;
  45. }
  46.  
  47. LiczbaZespolona* iloczyn(LiczbaZespolona* A, LiczbaZespolona* B)
  48. {
  49.     LiczbaZespolona* wynik = new LiczbaZespolona;
  50.     wynik->re = A->re * B->re;
  51.     wynik->im = A->im * B->im;
  52.     return wynik;
  53. }
  54.  
  55. LiczbaZespolona* iloraz(LiczbaZespolona* A, LiczbaZespolona* B)
  56. {
  57.     LiczbaZespolona* wynik = new LiczbaZespolona;
  58.     wynik->re = A->re / B->re;
  59.     wynik->im = A->im / B->im;
  60.     return wynik;
  61. }
  62.  
  63. int main()
  64. {
  65.     LiczbaZespolona* tablica[100];
  66.     unsigned ile = 0;
  67.     for(unsigned i = 0; i < 100; ++i)
  68.         tablica[i] = nullptr;
  69.  
  70.     char komenda;
  71.     double x, y;
  72.     unsigned a, b;
  73.     bool flaga = true;
  74.  
  75.     while(flaga)
  76.     {
  77.         cout << "Co chcesz zrobic?\n";
  78.         cout << "\tN - utworzenie nowej liczby zespolonej (2 argumenty)\n";
  79.         cout << "\tR - utworzenie nowej liczby zespolonej (1 argument)\n";
  80.         cout << "\tW - wyswietl wartosc liczby\n";
  81.         cout << "\t+ - suma\n";
  82.         cout << "\t- - roznica\n";
  83.         cout << "\t* - iloczyn\n";
  84.         cout << "\t/ - iloraz\n";
  85.         cout << "\tK - wyjdz z programu\n";
  86.  
  87.         do
  88.         {
  89.             komenda = _getch();
  90.             komenda = toupper(komenda);
  91.         }
  92.         while(komenda != 'N' && komenda != 'R' && komenda != 'W' && komenda != '+' && komenda != '-' && komenda != '*' && komenda != '/' && komenda != 'K');
  93.  
  94.         switch(komenda)
  95.         {
  96.         case 'N':
  97.             cout << "Podaj dwa argumenty: ";
  98.             cin >> x >> y;
  99.             tablica[ile] = new LiczbaZespolona(x, y);
  100.             ++ile;
  101.             break;
  102.         case 'R':
  103.             cout << "Podaj argument: ";
  104.             cin >> x;
  105.             tablica[ile] = new LiczbaZespolona(x);
  106.             ++ile;
  107.             break;
  108.         case 'W':
  109.             cout << "Podaj numer liczby, ktora chcesz wyswietlic: ";
  110.             cin >> a;
  111.             if(a >= ile)
  112.                 cout << "Jeszcze nie wczytano liczby o tym numerze\n";
  113.             else
  114.                 tablica[a]->wyswietl();
  115.             break;
  116.         case '+':
  117.             cout << "Podaj numery dwoch liczb, ktore chcesz dodac: ";
  118.             cin >> a >> b;
  119.             if(a >= ile || b >= ile)
  120.                 cout << "Przynajmniej jedna z podanych liczb nie istnieje\n";
  121.             else
  122.             {
  123.                 tablica[ile] = suma(tablica[a], tablica[b]);
  124.                 cout << "Zapisano liczbe na indeks " << ile << endl;
  125.                 ++ile;
  126.             }
  127.             break;
  128.         case '-':
  129.             cout << "Podaj numery dwoch liczb, ktore chcesz odjac: ";
  130.             cin >> a >> b;
  131.             if(a >= ile || b >= ile)
  132.                 cout << "Przynajmniej jedna z podanych liczb nie istnieje\n";
  133.             else
  134.             {
  135.                 tablica[ile] = roznica(tablica[a], tablica[b]);
  136.                 cout << "Zapisano liczbe na indeks " << ile << endl;
  137.                 ++ile;
  138.             }
  139.             break;
  140.         case '*':
  141.             cout << "Podaj numery dwoch liczb, ktore chcesz pomnozyc: ";
  142.             cin >> a >> b;
  143.             if(a >= ile || b >= ile)
  144.                 cout << "Przynajmniej jedna z podanych liczb nie istnieje\n";
  145.             else
  146.             {
  147.                 tablica[ile] = iloczyn(tablica[a], tablica[b]);
  148.                 cout << "Zapisano liczbe na indeks " << ile << endl;
  149.                 ++ile;
  150.             }
  151.             break;
  152.         case '/':
  153.             cout << "Podaj numery dwoch liczb, ktore chcesz podzielic: ";
  154.             cin >> a >> b;
  155.             if(a >= ile || b >= ile)
  156.                 cout << "Przynajmniej jedna z podanych liczb nie istnieje\n";
  157.             else
  158.             {
  159.                 tablica[ile] = iloraz(tablica[a], tablica[b]);
  160.                 cout << "Zapisano liczbe na indeks " << ile << endl;
  161.                 ++ile;
  162.             }
  163.             break;
  164.         case 'K':
  165.             cout << "Nastapi wyjscie z programu. Wcisnij dowolny przycisk...";
  166.             _getch();
  167.             flaga = false;
  168.         }
  169.     }
  170.  
  171.     for(unsigned i = 0; i < ile; ++i)
  172.         delete tablica[i];
  173.  
  174.     return 0;
  175. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×