#include <iostream>
#include <math.h>
#include "cstdlib"
using namespace std;
class rational_number
{
double num, dn; //числитель (numerator) и знаменатель (denominator)
public:
rational_number()//конструктор
{
cout << "Введите числитель:\n";
cin >> num;
cout << "Введите знаменатель:\n";
cin >> dn;
cout << "Отработал конструктор\n";
};
~rational_number()//деструктор
{
cout << "Отработал деструктор\n";
}
friend double operator ^ (double x,rational_number &n);
friend void operator <(rational_number &n, rational_number &d);//друг с другом
friend void operator >(rational_number &n, int x);
};
/* Возведение в степень заданную РЧ */
double power()
{ double x;
cout<<"Введите вещественное число:\n";
cin>>x;
cout<<"Введите рациональное число:\n";
rational_number n;
return x^n;
system("PAUSE");
}
double operator ^ (double x,rational_number &n)
{ double p;
p=(double)(n.num/n.dn);
return pow(x,p);
}
void compare()
{
cout<<"Введите первое рациональное число:\n";
rational_number n;
cout<<"Введите второе рациональное число:\n";
rational_number d;
n<d;
return;
}
void operator <(rational_number &n, rational_number &d)
{
double res1, res2;
res1=(double)(n.num/n.dn);
res2=(double)(d.num/d.dn);
if (res1==res2)
cout<<"Числа равны\n";
else
{
if (res1>res2)
cout<<"Первое рациональное число больше второго рационального числа\n";
else
cout<<"Второе рациональное число больше первого рационального числа\n";
}
return;
}
void compare_int ()
{
int x;
cout<<"Введите первое рациональное число:\n";
rational_number n;
cout<<"Введите целое число:\n";
cin>>x;
n>x;
return;
}
void operator >(rational_number &n, int x)
{
double res1;
res1=(double)(n.num/n.dn);
if (res1==x)
cout<<"Числа равны";
else
{
if (res1>x)
cout<<"Рациональное число больше целого числа\n";
else
cout<<"Целое число больше рационального числа\n";
}
return;
}
int main()
{
setlocale(LC_ALL, "Russian");
char sw;
int run=1;
double r;
while(run)
{
system("cls");
cout<<"1.Возведение в степень\n2.Сравнение РЧ\n3.Сравнение с ЦЧ\n4.Выход\n";
cin >> sw;
switch(sw)
switch(sw)
{
case '1':r=power();
cout<<"Возведение вещественного числа в степень, заданную РЦ: \n";
cout<<r<<endl;
system("PAUSE");
break;
case '2':compare();
system("PAUSE");
break;
case '3':compare_int();
system("PAUSE");
break;
case '4':run=0;
break;
}
}
return 0;
}