Advertisement
fcamuso

Corso recupero c++ 38

Dec 27th, 2024
3,052
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Frazione
  6. {
  7. private:
  8.   //STATO INTERNO
  9.     int numeratore = 0, denominatore = 1;
  10.  
  11. public:
  12.  
  13.   //COSTRUTTORI
  14.   Frazione(int _numeratore, int _denominatore)
  15.   {
  16.     if (_denominatore==0)
  17.       throw string("Denominatore ZERO");
  18.     else
  19.     {
  20.       numeratore   = _numeratore;
  21.       denominatore = _denominatore;
  22.     }
  23.   }
  24.  
  25.  
  26.   Frazione(int _numeratore) : Frazione(_numeratore, 1) {
  27.  
  28.   }
  29.  
  30.   //GETTER = conoscere il valore attuale dei dati privati
  31.   int getNumeratore() { return numeratore; }
  32.   int getDenominatore() { return denominatore;}
  33.  
  34.  
  35.    void setDenominatore(int den)
  36.    {
  37.       if(den==0)
  38.         throw string("Denominatore zero!");
  39.       else
  40.       {
  41.         denominatore = den;
  42.       }
  43.     }
  44.  
  45.  
  46.   void stampa()
  47.   {
  48.      cout << numeratore << "/" << denominatore << endl;
  49.   }
  50.  
  51.  
  52.   string to_string() {
  53.     return std::to_string(numeratore) + "/" + std::to_string(denominatore);
  54.   }
  55.  
  56.    Frazione somma_con(Frazione altra) {
  57.      int num_somma=0, den_somma=1;
  58.  
  59.      den_somma = denominatore*altra.denominatore;
  60.      num_somma = numeratore*altra.denominatore+
  61.                  altra.numeratore*denominatore;
  62.   //
  63.   //   Frazione somma(num_somma, den_somma);
  64.   //   return somma;
  65.  
  66.    return Frazione(num_somma, den_somma);
  67.  
  68.   }
  69.  
  70.   Frazione moltiplica_per(Frazione altra)
  71.   {
  72.     return Frazione(numeratore*altra.numeratore,
  73.                     denominatore*altra.denominatore);
  74.   }
  75.  
  76.   Frazione sottrai(Frazione altra)
  77.   {
  78.      int num_differenza=0, den_differenza=1;
  79.  
  80.      den_differenza = denominatore*altra.denominatore;
  81.      num_differenza = numeratore*altra.denominatore -
  82.                       altra.numeratore*denominatore;
  83.  
  84.      return Frazione(num_differenza, den_differenza);
  85.   }
  86.  
  87.   Frazione reciproco() {
  88.     return Frazione(denominatore, numeratore);
  89.   }
  90.  
  91. };
  92.  
  93.  
  94.  
  95. int main()
  96. {
  97.  
  98. //   Frazione f1 = Frazione(23, 7);
  99. //   cout << f1.to_string() << endl;
  100. //
  101. //   Frazione f2(3,4);
  102. //
  103. //   Frazione f3 = f1.somma_con(f2);
  104. //
  105. //   cout << f3.to_string() << endl;
  106.  
  107.   Frazione f4(3, 2);
  108.  
  109.   //Frazione f5 = f4.moltiplica_con(Frazione(2, 9));
  110.   Frazione f5 = f4.moltiplica_per(Frazione(2,9));  //6/18
  111.  
  112.   Frazione f6 = f5.sottrai(f4);  // 6/18 - 3/2
  113.  
  114.  
  115.     return 0;
  116. }
  117.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement