Don't like ads? PRO users don't see any ads ;-)
Guest

golab to cipka

By: a guest on Mar 16th, 2012  |  syntax: None  |  size: 4.99 KB  |  hits: 30  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <cstdio>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. class ulamek {
  9.      private:
  10.              int licznik;
  11.              int mianownik;
  12.              void skracaj();
  13.      
  14.      public:
  15.             ulamek() {                                                  // definicja pierwszego konstruktora
  16.                      licznik = 1;
  17.                      mianownik = 1;
  18.             }
  19.            
  20.             ulamek (int l, int m);                                      // deklaracja drugiego kontruktora
  21.            
  22.             void wypisz () {
  23.                  skracaj();
  24.                  
  25.                  cout << licznik << "/" << mianownik;
  26.             }
  27.            
  28.             friend ulamek pomnoz (ulamek, ulamek);                          // deklaracja przyjazni
  29.             friend ulamek suma (ulamek, ulamek);
  30.             friend ulamek odejmowanie (ulamek, ulamek);
  31.             friend ulamek dzielenie (ulamek, ulamek);
  32. };                                                                           // koniec definicji klasy
  33.  
  34. void ulamek::skracaj () {
  35.     int a = abs (licznik);
  36.     int b = abs (mianownik);
  37.      
  38.     while (a != b)
  39.           if (a>b)
  40.              a = a-b;
  41.           else
  42.               b = b-a;
  43.                
  44.     licznik = licznik/a;
  45.     mianownik = mianownik/a;
  46. }
  47.  
  48. ulamek::ulamek (int l, int m) {
  49.     licznik = l;
  50.    
  51.     if (m!=0)
  52.       mianownik = m;
  53.     else {
  54.        cout << "Mianownik nie moze miec wartosci 0";
  55.        getchar ();
  56.        exit (1);
  57.     }
  58. }
  59.  
  60. ulamek pomnoz (ulamek u1, ulamek u2) {                                           // funkcja mnozaca ulamki
  61.       ulamek wynikMnoz;
  62.       wynikMnoz.licznik = u1.licznik * u2.licznik;
  63.       wynikMnoz.mianownik = u1.mianownik * u2.mianownik;
  64.      
  65.       return wynikMnoz;
  66. }                                                                                   // wynikiem funkcji jest obiekt klasy ułamek
  67.  
  68. ulamek suma (ulamek u1, ulamek u2)    {                                             // funkcja mnozaca ulamki
  69.       ulamek wynikSuma;
  70.      
  71.       wynikSuma.licznik = (u1.licznik * u2.mianownik) + (u2.licznik * u1.mianownik);          
  72.       wynikSuma.mianownik = u1.mianownik * u2.mianownik;
  73.      
  74.       return wynikSuma;
  75. }
  76.  
  77. ulamek odejmowanie (ulamek u1, ulamek u2) {                                            // funkcja mnozaca ulamki
  78.       ulamek wynikOdej;  
  79.      
  80.       wynikOdej.licznik = (u1.licznik * u2.mianownik) - (u2.licznik * u1.mianownik);          
  81.       wynikOdej.mianownik = u1.mianownik * u2.mianownik;
  82.          
  83.       return wynikOdej;
  84. }
  85.  
  86. ulamek dzielenie (ulamek u1, ulamek u2) {                                                          // funkcja mnozaca ulamki
  87.       ulamek wynikDziel;
  88.       wynikDziel.licznik = u1.licznik * u2.mianownik;
  89.       wynikDziel.mianownik = u1.mianownik * u2.licznik;
  90.      
  91.       return wynikDziel;
  92. }
  93.  
  94. int main () {    
  95.     int l, m, n;
  96.    
  97.     cout<< "Podaj 1. licznik: ";
  98.     cin >> l;
  99.     cout<< "Podaj 1. mianownik: ";
  100.     cin >> m;
  101.    
  102.     ulamek a (l, m);
  103.    
  104.     cout<< endl << "Podaj 2. licznik: ";
  105.     cin >> l;
  106.     cout << "Podaj 2. mianownik: ";
  107.     cin >> m;
  108.    
  109.     ulamek b (l, m);
  110.    
  111.     cout << endl << "1. ulamek to: ";
  112.     a.wypisz();
  113.    
  114.     cout<< endl << "2. ulamek to: ";
  115.     b.wypisz();
  116.    
  117.     cout << endl << "Jakie działanie chcesz wykonać:\n1.Dodawanie\n2.Odejmowanie\n3.Mnozenie\n4.Dzielenie\n";
  118.     cin >> n;
  119.    
  120.     switch(n)
  121.     {
  122.              case 1:
  123.                   {
  124.                            cout<< endl << "Suma ";
  125.                            a.wypisz();
  126.                            cout << " i ";
  127.                            b.wypisz();
  128.                            cout<< " wynosi ";
  129.                            suma(a, b).wypisz();
  130.                            break;
  131.                   }
  132.              case 2:
  133.                   {
  134.                            cout << endl << "Odejmowanie ";
  135.                            a.wypisz();
  136.                            cout << " i ";
  137.                            b.wypisz();
  138.                            cout << " wynosi ";
  139.                            odejmowanie(a, b).wypisz();
  140.                            break;
  141.                   }
  142.              case 3:
  143.                   {
  144.                            cout<< endl << "Iloczyn ";
  145.                            a.wypisz();
  146.                            cout<< " i ";
  147.                            b.wypisz();
  148.                            cout<< " wynosi ";
  149.                            pomnoz(a, b).wypisz();
  150.                            break;
  151.                   }
  152.              case 4:
  153.                   {
  154.                            cout << endl << "Dzielenie ";
  155.                            a.wypisz();
  156.                            cout << " i ";
  157.                            b.wypisz();
  158.                            cout<< " wynosi ";
  159.                            dzielenie(a, b).wypisz();
  160.                            break;
  161.                   }
  162.     }
  163.     getch ();
  164. }