Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Frazione
- {
- private:
- //STATO INTERNO
- int numeratore = 0, denominatore = 1;
- public:
- //COSTRUTTORI
- Frazione(int _numeratore, int _denominatore)
- {
- if (_denominatore==0)
- throw string("Denominatore ZERO");
- else
- {
- numeratore = _numeratore;
- denominatore = _denominatore;
- }
- }
- Frazione(int _numeratore) : Frazione(_numeratore, 1) {
- }
- //GETTER = conoscere il valore attuale dei dati privati
- int getNumeratore() { return numeratore; }
- int getDenominatore() { return denominatore;}
- void setDenominatore(int den)
- {
- if(den==0)
- throw string("Denominatore zero!");
- else
- {
- denominatore = den;
- }
- }
- void stampa()
- {
- cout << numeratore << "/" << denominatore << endl;
- }
- string to_string() {
- return std::to_string(numeratore) + "/" + std::to_string(denominatore);
- }
- Frazione somma_con(Frazione altra) {
- int num_somma=0, den_somma=1;
- den_somma = denominatore*altra.denominatore;
- num_somma = numeratore*altra.denominatore+
- altra.numeratore*denominatore;
- //
- // Frazione somma(num_somma, den_somma);
- // return somma;
- return Frazione(num_somma, den_somma);
- }
- Frazione moltiplica_per(Frazione altra)
- {
- return Frazione(numeratore*altra.numeratore,
- denominatore*altra.denominatore);
- }
- Frazione sottrai(Frazione altra)
- {
- int num_differenza=0, den_differenza=1;
- den_differenza = denominatore*altra.denominatore;
- num_differenza = numeratore*altra.denominatore -
- altra.numeratore*denominatore;
- return Frazione(num_differenza, den_differenza);
- }
- Frazione reciproco() {
- return Frazione(denominatore, numeratore);
- }
- };
- int main()
- {
- // Frazione f1 = Frazione(23, 7);
- // cout << f1.to_string() << endl;
- //
- // Frazione f2(3,4);
- //
- // Frazione f3 = f1.somma_con(f2);
- //
- // cout << f3.to_string() << endl;
- Frazione f4(3, 2);
- //Frazione f5 = f4.moltiplica_con(Frazione(2, 9));
- Frazione f5 = f4.moltiplica_per(Frazione(2,9)); //6/18
- Frazione f6 = f5.sottrai(f4); // 6/18 - 3/2
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement