Clasa Rational
Clasa Rational
#include<fstream>
class rational
private:
int x,y;
void simplifica();
public:
rational(rational&r);
};
void rational::simplifica()
int u=x,v=y,r=x%y;
while(r)
u=v;
v=r;
r=u%v;
x=x/v;
y=y/v;
rational::rational(int u,int v)
x=u;
y=v;
simplifica();
rational::rational(rational&r)
x=r.x;
y=r.y;
is>>r.x>>r.y;
r.simplifica();
return is;
}
ostream & operator<<(ostream &os, rational&r)
os<<r.x<<' '<<r.y<<endl;
return os;
int u,v;
u=r1.x*r2.y+r2.x*r1.y;
v=r1.y*r2.y;
rational r(u,v);
return r;
if((double)r1.x/(double)r1.y>(double)r2.x/(double)r2.y)
return 1;
return 0;
int u,v;
u=r1.x*r2.x;
v=r1.y*r2.y;
rational r(u,v);
return r;
x=r.x;
y=r.y;
return *this;
rational operator-(rational&r)
rational c(-r.x,r.y);
return c;
if(r1.x*r2.y==r2.x*r1.y)
return 1;
return 0;
ifstream f("date.in");
ofstream g("date.out");
rational r[100];
int main()
rational a(2,3),b(10,30),s,c(a);
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
// cin>>a>>b;
s=a+b;
cout<<"suma="<<s<<'\n';
s=a*b;
cout<<"prod="<<s<<'\n';
s=-a;
cout<<"-a="<<s<<'\n';
if(a==b)
cout<<"egale\n";
else cout<<"diferite\n";
int n,i,j;
f>>n;
f>>r[i];
if(r[i]>r[j])
{
rational aux;
aux=r[i];
r[i]=r[j];
r[j]=aux;
g<<r[i];