Advertisement
Guest User

Kod ułamki

a guest
Apr 23rd, 2013
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.94 KB | None | 0 0
  1.  
  2.  
  3. #include "stdafx.h"
  4. #include <fstream>
  5. #include <iostream>
  6. #include <cstdlib>
  7. #include <cmath>
  8.  
  9. using namespace std;
  10.  
  11. class ulamek
  12.    {
  13.    public:
  14.          int licznik;
  15.          int mianownik;
  16.  
  17.    
  18.  
  19.    public:
  20.       ulamek(int licz, int mian);
  21.  
  22.    
  23.  
  24.    };
  25.  
  26. ulamek::ulamek(int licz, int mian)
  27. {
  28.    licznik = licz;
  29.    mianownik = mian;
  30. }
  31.  
  32. //funkcja wyswietla ulamek w formie mieszanej
  33. int mieszany(int l, int m)
  34. {
  35.     int wyn, reszt;
  36.     wyn = (l/m);
  37.     reszt = l%m;
  38.     cout << wyn << "+" << reszt << "/" << m << endl;
  39.     return 0;
  40. }  
  41.  
  42. //funkcja wyswietla ulamek w formie dziesietnej
  43. int dziesietny(int l, int m)
  44. {
  45.         double wyn = (double)l / (double) m;
  46.         cout << wyn << endl;
  47.         return 0;
  48. }
  49.  
  50.  //funkcja, która powinna skracac ulamek
  51. int skroc(int licz1, int mian1)
  52. {    
  53.  
  54.      if(licz1 >0 && mian1 >0)
  55.      {
  56.         int l=licz1;
  57.         int m=mian1;
  58.  
  59.         while (l != m)
  60.         {
  61.               if (l > m)
  62.                  l = l-m;
  63.               else
  64.                   m = m-l;
  65.         }
  66.      
  67.         licz1 = licz1 / l;
  68.         mian1 = mian1 / l;
  69.       }
  70.      if ( licz1 <0 && mian1 >0)
  71.       {
  72.         int l = -1* licz1;
  73.         int m=mian1;
  74.  
  75.         while (l != m)
  76.         {
  77.               if (l > m)
  78.                  l = l-m;
  79.               else
  80.                   m = m-l;
  81.         }
  82.      
  83.         licz1 = licz1 / l;
  84.         mian1 = mian1 / l;
  85.       }
  86.       if (licz1 <0 && mian1 <0)
  87.      {
  88.          int l=-1*licz1;
  89.          int m=-1*mian1;
  90.  
  91.         while (l != m)
  92.         {
  93.               if (l > m)
  94.                  l = l-m;
  95.               else
  96.                   m = m-l;
  97.         }
  98.      
  99.         licz1 = licz1 / l;
  100.         mian1 = mian1 / l;
  101.      }
  102.       if (licz1 >0 && mian1 <0)
  103.      {
  104.          int l=licz1;
  105.          int m=-1 *mian1;
  106.          while (l != m)
  107.         {
  108.               if (l > m)
  109.                  l = l-m;
  110.               else
  111.                   m = m-l;
  112.         }
  113.      
  114.         licz1 = licz1 / l;
  115.         mian1 = mian1 / l;
  116.  
  117.     cout << licz1 << "/" << mian1 << endl;
  118.     return 0;
  119.      }
  120.      
  121. }
  122.  
  123.  
  124. int main(int argc, char* argv[])
  125. {
  126.  
  127.    int a,b,z;
  128.    a=0;
  129.    b=0;
  130.    char c;
  131.    
  132.  
  133.  
  134.     //wczytywanie danych z pliku
  135.     fstream plik("ulamki.txt", fstream::in);
  136.     plik >> a >> c >> b;
  137.     plik.close();
  138.  
  139.     ulamek pierwszy(a,b);
  140.  
  141.     cout << pierwszy.licznik;
  142.     cout << "/";
  143.     cout << pierwszy.mianownik;
  144.     cout << endl;
  145.  
  146.  
  147.     //wczytywanie danych do pliku
  148.     fstream plik2("ulamki2.txt", fstream::out);
  149.     plik2 << a << c << b;
  150.     plik2.close();
  151.  
  152.     ulamek drugi(a,b);
  153.  
  154.     //mieszany wywolanie
  155.     mieszany(pierwszy.licznik,pierwszy.mianownik);
  156.  
  157.     //dziesietny wywolanie
  158.     dziesietny(pierwszy.licznik,pierwszy.mianownik);
  159.    
  160.  
  161.     //kalkulator
  162.     cout << "Wybierz jakie dzialanie chcesz wykonac:\n[1]Dodawanie\n[2]Odejmowanie\n[3]Mnozenie\n[4]Dzielenie\n[5]Potegowanie\n[6]Pierwiastkowanie\n";
  163.     cin >> z;
  164.     cout << "\n";
  165.     switch(z)
  166.     {
  167.         case 1 :{ cout << "\nWynik: " << (pierwszy.licznik / pierwszy.mianownik) + (drugi.licznik / drugi.mianownik)<< "\n" ; break;}      
  168.         case 2 :{ cout << "\nWynik: " << (pierwszy.licznik / pierwszy.mianownik) - (drugi.licznik / drugi.mianownik) << "\n" ; break;}
  169.         case 3 :{ cout << "\nWynik: " << (pierwszy.licznik / pierwszy.mianownik) * (drugi.licznik / drugi.mianownik) << "\n" ; break;   }  
  170.         case 4 :{
  171.                     if((drugi.licznik / drugi.mianownik)==0)
  172.                     cout << "NIE DZIEL PRZEZ 0!";
  173.                     else   
  174.                     cout << "\nWynik: " << (pierwszy.licznik / pierwszy.mianownik) / (drugi.licznik / drugi.mianownik) << "\n" ; break;}
  175.        
  176.         case 5 : { cout << "\nWynik: " << (pierwszy.licznik / pierwszy.mianownik) * (pierwszy.licznik / pierwszy.mianownik) << "\n" ; break;}
  177.         case 6 : { cout << "\nWynik: " << sqrt((double)(pierwszy.licznik / pierwszy.mianownik)) << "\n" ; break;}
  178.         default : {cout << "PODAJ POPRAWNA WARTOSC!\n"; break;}
  179.        
  180.     }
  181.    
  182.     skroc(pierwszy.licznik, pierwszy.mianownik);
  183.  
  184.    system("pause");
  185.    return 0;
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement