#include <iostream>
using namespace std;
class Frazione{
public:
int Numeratore;
int Denominatore;
Frazione(){
}
Frazione(int Numeratore,int Denominatore){
this->Numeratore=Numeratore;
this->Denominatore=Denominatore;
}
Frazione(int Numeratore){
this->Numeratore=Numeratore;
this->Denominatore=1;
}
void InsDati(){
if(this->Denominatore==1){
cout<<"Inserisci il Numeratore: ";
cin>>this->Numeratore;
cout<<endl;
}else{
cout<<"Inserisci il Numeratore: ";
cin>>this->Numeratore;
cout<<endl;
do{
cout<<"Inserisci il Denominatore: ";
cin>>this->Denominatore;
cout<<endl;
}while(this->Denominatore==0);
}
};
void visDati(){
cout<<this->Numeratore<<"/"<<this->Denominatore<<endl;
};
void aggDati(){
cout<<"Inserisci il Numeratore: ";
cin>>this->Numeratore;
cout<<endl;
do{
cout<<"Inserisci il Denominatore: ";
cin>>this->Denominatore;
cout<<endl;
}while(this->Denominatore==0);
};
void Somma(Frazione a){
float risultato;
risultato=(((this->Numeratore*a.Denominatore)+(a.Numeratore*this->Denominatore))/(this->Denominatore*a.Denominatore));
cout<<"La somma e': "<<risultato<<endl;
};
void Somma(Frazione a,Frazione b){
float risultato;
risultato=((((a.Numeratore*b.Denominatore)+(b.Numeratore*a.Denominatore))*this->Denominatore)+(this->Numeratore*(a.Denominatore*b.Denominatore)))/((a.Denominatore*b.Denominatore)*this->Denominatore);
cout<<"La somma e': "<<risultato<<endl;
};
};
int main(){
Frazione c;
c.InsDati();
c.visDati();
Frazione r(7);
r.visDati();
Frazione e(3,2);
e.visDati();
c.Somma(r);
c.Somma(r,e);
return 0;
};
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBGcmF6aW9uZXsKICAgICAgcHVibGljOgogICAgICAgICAgICAgaW50IE51bWVyYXRvcmU7CiAgICAgICAgICAgICBpbnQgRGVub21pbmF0b3JlOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBGcmF6aW9uZSgpewogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBGcmF6aW9uZShpbnQgTnVtZXJhdG9yZSxpbnQgRGVub21pbmF0b3JlKXsKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5OdW1lcmF0b3JlPU51bWVyYXRvcmU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+RGVub21pbmF0b3JlPURlbm9taW5hdG9yZTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBGcmF6aW9uZShpbnQgTnVtZXJhdG9yZSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+TnVtZXJhdG9yZT1OdW1lcmF0b3JlOwogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPkRlbm9taW5hdG9yZT0xOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgdm9pZCBJbnNEYXRpKCl7CiAgICAgICAgICAgICAgICAgIGlmKHRoaXMtPkRlbm9taW5hdG9yZT09MSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwiSW5zZXJpc2NpIGlsIE51bWVyYXRvcmU6ICAiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2luPj50aGlzLT5OdW1lcmF0b3JlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8ZW5kbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8Ikluc2VyaXNjaSBpbCBOdW1lcmF0b3JlOiAgIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpbj4+dGhpcy0+TnVtZXJhdG9yZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PGVuZGw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJJbnNlcmlzY2kgaWwgRGVub21pbmF0b3JlOiAgIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpbj4+dGhpcy0+RGVub21pbmF0b3JlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8ZW5kbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfXdoaWxlKHRoaXMtPkRlbm9taW5hdG9yZT09MCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgdm9pZCB2aXNEYXRpKCl7CiAgICAgICAgICAgICAgICAgIGNvdXQ8PHRoaXMtPk51bWVyYXRvcmU8PCIvIjw8dGhpcy0+RGVub21pbmF0b3JlPDxlbmRsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgIHZvaWQgYWdnRGF0aSgpewogICAgICAgICAgICAgICAgICBjb3V0PDwiSW5zZXJpc2NpIGlsIE51bWVyYXRvcmU6ICAiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2luPj50aGlzLT5OdW1lcmF0b3JlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8ZW5kbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291dDw8Ikluc2VyaXNjaSBpbCBEZW5vbWluYXRvcmU6ICAiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2luPj50aGlzLT5EZW5vbWluYXRvcmU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDxlbmRsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9d2hpbGUodGhpcy0+RGVub21pbmF0b3JlPT0wKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgIHZvaWQgU29tbWEoRnJhemlvbmUgYSl7CiAgICAgICAgICAgICAgICAgIGZsb2F0IHJpc3VsdGF0bzsKICAgICAgICAgICAgICAgICAgcmlzdWx0YXRvPSgoKHRoaXMtPk51bWVyYXRvcmUqYS5EZW5vbWluYXRvcmUpKyhhLk51bWVyYXRvcmUqdGhpcy0+RGVub21pbmF0b3JlKSkvKHRoaXMtPkRlbm9taW5hdG9yZSphLkRlbm9taW5hdG9yZSkpOwogICAgICAgICAgICAgICAgICBjb3V0PDwiTGEgc29tbWEgZSc6ICAgIjw8cmlzdWx0YXRvPDxlbmRsOwogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgdm9pZCBTb21tYShGcmF6aW9uZSBhLEZyYXppb25lIGIpewogICAgICAgICAgICAgICAgICBmbG9hdCByaXN1bHRhdG87CiAgICAgICAgIAogICAgICAgICAgICAgICAgICByaXN1bHRhdG89KCgoKGEuTnVtZXJhdG9yZSpiLkRlbm9taW5hdG9yZSkrKGIuTnVtZXJhdG9yZSphLkRlbm9taW5hdG9yZSkpKnRoaXMtPkRlbm9taW5hdG9yZSkrKHRoaXMtPk51bWVyYXRvcmUqKGEuRGVub21pbmF0b3JlKmIuRGVub21pbmF0b3JlKSkpLygoYS5EZW5vbWluYXRvcmUqYi5EZW5vbWluYXRvcmUpKnRoaXMtPkRlbm9taW5hdG9yZSk7CiAgICAgICAgICAgICAgICAgIGNvdXQ8PCJMYSBzb21tYSBlJzogICAiPDxyaXN1bHRhdG88PGVuZGw7CiAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGludCBtYWluKCl7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgRnJhemlvbmUgYzsKICAgICAgICAgICAgICAgICBjLkluc0RhdGkoKTsKICAgICAgICAgICAgICAgICBjLnZpc0RhdGkoKTsKICAgICAgICAgICAgICAgICBGcmF6aW9uZSByKDcpOwogICAgICAgICAgICAgICAgIHIudmlzRGF0aSgpOwogICAgICAgICAgICAgICAgIEZyYXppb25lIGUoMywyKTsKICAgICAgICAgICAgICAgICBlLnZpc0RhdGkoKTsKICAgICAgICAgICAgICAgICBjLlNvbW1hKHIpOwogICAgICAgICAgICAgICAgIGMuU29tbWEocixlKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgfTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK