Advertisement
fcamuso

Corso recupero c++ 37

Dec 26th, 2024
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  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.   //GETTER = conoscere il valore attuale dei dati privati
  27.   int getNumeratore() { return numeratore; }
  28.   int getDenominatore() { return denominatore;}
  29.  
  30.  
  31.    void setDenominatore(int den)
  32.    {
  33.       if(den==0)
  34.         throw string("Denominatore zero!");
  35.       else
  36.       {
  37.         denominatore = den;
  38.       }
  39.     }
  40.  
  41.  
  42.   void stampa()
  43.   {
  44.      cout << numeratore << "/" << denominatore << endl;
  45.   }
  46.  
  47.  
  48.   string to_string() {
  49.     return std::to_string(numeratore) + "/" + std::to_string(denominatore);
  50.   }
  51.  
  52.    Frazione somma_con(Frazione altra) {
  53.      int num_somma=0, den_somma=1;
  54.  
  55.      den_somma = denominatore*altra.denominatore;
  56.      num_somma = numeratore*altra.denominatore+
  57.                  altra.numeratore*denominatore;
  58.   //
  59.   //   Frazione somma(num_somma, den_somma);
  60.   //   return somma;
  61.  
  62.    return Frazione(num_somma, den_somma);
  63.  
  64.   }
  65. };
  66.  
  67.  
  68.  
  69. int main()
  70. {
  71.  
  72.    Frazione f1 = Frazione(23, 7);
  73.    cout << f1.to_string() << endl;
  74.  
  75.    Frazione f2(3,4);
  76.  
  77.    Frazione f3 = f1.somma_con(f2);
  78.  
  79.    cout << f3.to_string() << endl;
  80.  
  81.  
  82.  
  83.  
  84.     return 0;
  85. }
  86.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement