Задача на вычисление высоты второго дома при известной высоте первого дома (15 м) по формуле на Знания.site
Приветствую вас. Настоящее срочное прошение о помощи. Задача состояла в том, чтобы написать на C++ все необходимые функции для операций с дробями. Однако у меня возникли сложности с созданием функции для преобразования обычной дроби в десятичную форму.

Вот моя программа:
#include <iostream>
class fraction
{
public:
int num;
int denum;
bool vec;
void print()
{
std::cout<< this-> num << «/» << this-> denum << std::endl;
}
void swap (int *a, int *b)
{
int f;
f= *a;
*a = *b;
*b = f;
}
int NOD(int a, int b)
{
int div;
if (a<0)
a=-a;
if (b<0)
b=-b;
while (a != b)
{
if (a < b)
swap(&a,&b);
a = a — b;
}
div = a;
return div;
}
fraction mul (fraction arg)
{
fraction temp;
temp.num = this->num * arg.num;
temp.denum = this->denum * arg.denum;
return temp;
}
fraction mul_number(fraction arg)
{
fraction temp;
int integer = 2;
temp.num = num * integer;
temp.denum = denum;
int common = NOD(temp.num, temp.denum);
temp.num /=common;
temp.denum/=common;
return temp;
}

fraction del(fraction arg)
{
fraction temp;
temp.num = this-> num * arg.denum;
temp.denum = this->denum * arg.num;
return temp;
}
fraction del_number(fraction arg)
{
fraction temp;
int integer = 2;
temp.num = num;
temp.denum = denum * integer;
return temp;
}
fraction del_number_two(fraction arg)
{
fraction temp;
int integer = 2;
temp.num = denum * integer;
temp.denum = num;
return temp;
}
fraction add(fraction arg)
{
fraction temp;
temp.num = (this ->num *arg.denum) + (arg.num*denum);
temp.denum = this -> denum * arg.denum;
return temp;
}
fraction add_number(fraction arg)
{
fraction temp;
int integer = 2;
temp.num = integer * this->denum + this-> num;
temp.denum = this->denum;
return temp;
}
fraction sub(fraction arg)
{
fraction temp;
temp.num = (this->num *arg.denum) — (arg.num*denum);
temp.denum = this ->denum * arg.denum;
return temp;
}
fraction sub_number(fraction arg) //вычитание целого числа из дроби
{
fraction temp;
int integer = 2;
temp.num -= integer * this-> denum — this-> num ;
temp.denum = this->denum;
return temp;
}
fraction sub_number2(fraction arg) // вычитание дроби из целого числа

{
fraction temp;
int integer = 2;
temp.num = integer * this->denum — this-> num;
temp.denum = this->denum;
return temp;
}
fraction step(fraction arg)
{
fraction temp;
temp.num = (num *num);
temp.denum = (denum*denum);
return temp;
}
fraction sokr(fraction arg)
{
fraction temp;
int div;
div = NOD(num,denum);
temp.num = (this -> num / div);
temp.denum = (this-> denum / div);
return temp;
}
};
int main()
{
fraction fr1;
fr1.num = 1;
fr1.denum = 2;
fraction fr2;
fr2.num = 3;
fr2.denum = 5;
fr1.print();
fr2.print();
fr1.mul(fr1).print();
fr1.mul_number(fr1).print();
fr1.del(fr2).print();
fr1.del_number(fr1).print();
fr1.del_number_two(fr1).print();
fr1.add(fr2).print();
fr1.add_number(fr1).print();
fr1.sub(fr2).print();
fr1.sub_number(fr1).print();
fr1.sub_number2(fr1).print();
fr1.step(fr1).print();
fr1.sokr(fr1).print();
}
Как определить высоту цокольного этажа?
Высота цокольного этажа определяется как расстояние от уровня земли до нижней части первого этажа дома. Для определения высоты цоколя дома можно использовать измерительную ленту или лазерный уровень.
- Измерьте высоту земли до точки, где начинается стена дома.
- Определите высоту первого этажа дома.
- Измерьте расстояние от нижней части первого этажа до уровня земли.
- Вычтите это расстояние из измеренной высоты земли до начала стены дома, чтобы получить высоту цокольного этажа.
Например, если вы измерили, что расстояние от земли до начала стены дома составляет 2 метра, а высота первого этажа дома — 3 метра, а расстояние от нижней части первого этажа до уровня земли — 1 метр, то высота цокольного этажа будет равна 2 метрам (2 м — 1 м = 1 м).