#include #include #include "cstdlib" using namespace std; int NOD(int x, int y) { if (y == 0) return x; return NOD(y, x % y); } class rational_number { int num, dn; //числитель (numerator) и знаменатель (denominator) public: rational_number()//конструктор { cout << "Отработал конструктор\n"; }; void init() { cout << "Введите числитель:\n"; cin >> num; cout << "Введите знаменатель:\n"; cin >> dn; } ~rational_number()//деструктор { cout << "Отработал деструктор\n"; } rational_number(rational_number &a) //конструктор копирования { num=a.num; dn=a.dn; } void reduction() { int n=NOD(num,dn); cout < " <<(num/n)<<'/' << (dn/n)<=(rational_number &n, rational_number &d); friend int operator <=(rational_number &n, rational_number &d); friend int operator >(int x, rational_number &n); int operator >(int x); friend int operator <(int x, rational_number &n); int operator <(int x); }; double operator ^ (double x,rational_number &n) { float p; p=(float)(n.num/n.dn); return pow(x,p); } int operator >=(rational_number &n, rational_number &d) { n.reduction(); d.reduction(); if (n.num*d.dn>d.num*n.dn) return 0; else if (n.num*d.dn==d.num*n.dn) return -1; else return 1; } int operator <=(rational_number &n, rational_number &d) { n.reduction(); d.reduction(); if (n.num*d.dn(int x, rational_number &n) { n.reduction(); if (x*n.dn>n.num) return 0; else if (x*n.dn==n.num) return -1; else return 1; } int rational_number::operator >(int x) { reduction(); /*как в таких функциях */ if (num>x*dn) return 0; else if (num==x*dn) return -1; else return 1; } int operator <(int x, rational_number &n) { n.reduction(); if (x*n.dn= " << endl << "3.Сравнение двух рациональных чисел <= \n4.Сравнение целого числа с рациональным числом >= \n5.Сравнение рационального числа с целым числом >= "<< endl << "6.Сравнение целого числа с рациональным числом <= \n7.Сравнение рационального числа с целым числом <= \n8.Выход\n"; cin >> sw; switch(sw) { case '1': //ЖЕЕЕЕЕЕЕНЬ, почему он не работает :СССС first.init(); cout<<"Введите вещественное число:"; cin>>number; cout<<"Результат:"<< (number^first); system("PAUSE"); break; case '2': first.init(); second.init(); //first.reduction(); //second.reduction(); switch(first>=second) { case 0:cout<<"Первое рациональное число > второго рационального числа";break; case 1:cout<<"Первое рациональное число < второго рационального числа";break; case -1:cout<<"Первое рациональное число = второму рациональному числу";break; }; system("PAUSE"); break; case '3': first.init(); second.init(); //first.reduction(); //second.reduction(); switch(first<=second) { case 0:cout<<"Первое рациональное число < второго рационального числа";break; case 1:cout<<"Первое рациональное число > второго рационального числа";break; case -1:cout<<"Первое рациональное число = второму рациональному числу";break; }; system("PAUSE"); break; case '4': cout<<"Введите целое число:\n"; cin>>cnumber; first.init(); switch(cnumber>first) { case 0:cout<<"Целое число > рационального числа";break; case 1:cout<<"Целое число < рационального числа";break; case -1:cout<<"Целое число = рациональному числу";break; } system("PAUSE"); break; case '5': first.init(); cout<<"Введите целове число:\n"; cin>>cnumber; switch(first>cnumber) { case 0:cout<<"Рациональное число > целого числа";break; case 1:cout<<"Рациональное число < целого числа";break; case -1:cout<<"Рациональное число = целому числу";break; } system("PAUSE"); break; case '6': cout<<"Введите целове число:\n"; cin>>cnumber; first.init(); switch(cnumber рационального числа";break; case -1:cout<<"Целое число = рациональному числу";break; } system("PAUSE"); break; case '7': first.init(); cout<<"Введите целове число:\n"; cin>>cnumber; switch(first целого числа";break; case -1:cout<<"Рациональное число = целому числу";break; } system("PAUSE"); break; case '8':run=0; break; } } return 0; }