Conan
Moderator
 Inregistrat: acum 17 ani
Postari: 198
|
|
/*sa se implementeze clasa numerelor rationale care sa contina ca atribute numitorul si numaratorul. clasa contine un constructor cu parametrii si metode pentru adunare, scadere, inmultire*/
#include <iostream.h> #include <conio.h>
int cmmdc(int a, int b) { if (a==b) return a; else if (a>b) return cmmdc(a-b,b); else return cmmdc(a,b-a); }
int cmmmc(int a,int b) { return (a*b)/cmmdc(a,b); }
class rat { private: int a,b; public: rat(); rat(int x, int y); rat adun(rat& nr); rat scad(rat& nr); rat ori(rat& nr); int geta(); int getb(); void seta(int nr); void setb(int nr); };
rat::rat() { a=0;b=1; }
rat::rat(int x, int y) { a=x;b=y; }
int rat::geta() { return a; }
int rat::getb() { return b; }
void rat::seta(int nr) { a=nr; }
void rat::setb(int nr) { b=nr; }
rat rat::adun(rat& nr) { rat aux; int c; c=cmmmc(b,nr.getb()); aux.seta(a*(c/b)+nr.geta()*(c/nr.getb())); aux.setb(c); return aux; }
rat rat::scad(rat& nr) { rat aux; int c; c=cmmmc(b,nr.getb()); aux.seta(a*(c/b)-nr.geta()*(c/nr.getb())); aux.setb(c); return aux; }
rat rat::ori(rat& nr) { rat aux; aux.seta(a*nr.geta()); aux.setb(b*nr.getb()); return aux; }
void main() { clrscr(); rat n1(2,3),n2(3,4),n3; n3=n1.ori(n2); cout<<n3.geta()<<" "<<n3.getb(); getch(); }
|
|