No.2172
дорогой /s/!
это снова тян с классами.
я начала читать про классы дальше и решила обогатить свой класс с дробями полученными умениями:
#include <iostream.h>
int modul(int arg)
{
int result;
if (arg<0)
{result = -arg;}
return result;
}
class iich
{
public:
int integer;
int upper;
int lower;
iich operator+(const iich arg)const;
iich operator-(const iich arg)const;
void print();
};
iich
iich::operator +(const iich arg)const
{
const a = upper;
const b = lower;
const c = arg.upper;
const d = arg.lower;
iich result;
if (b != d)
{result.upper = (a
d)+(cb);
result.lower = b*d;
result.integer = integer+ arg.integer;}
else
{result.integer = integer+ arg.integer;
result.upper = a+c;}
if (result.upper > result.lower)
{result.integer = result.integer + (result.upper/result.lower);
result.upper = result.upper%result.lower;}
return result;
}
iich
iich::operator -(const iich arg)const
{
const a = upper;
const b = lower;
const c = arg.upper;
const d = arg.lower;
iich result;
if (b != d)
{result.upper = (a
d)-(cb);
result.lower = b*d;
result.integer = integer - arg.integer;}
else
{result.integer = integer- arg.integer;
result.upper = a-c;}
if (result.upper < 0 && result.integer>0)
{
result.upper= result.upper +(modul(result.integer)*result.lower);
result.integer=0;
}
if (modul(result.upper) > modul(result.lower) && result.upper <0)
{result.integer = result.integer + (result.upper/result.lower);
result.upper = result.upper%result.lower;}
return result;
}
void main()
{
iich lain;
lain.integer = 0;
lain.upper = 3;
lain.lower = 5;
iich jude;
jude.integer = 0;
jude.upper = 4;
jude.integer = 6;
iich sample;
sample = lain - jude;
cout << sample.upper;
}
но даже пока на этой стадии при попытке вычитания он выдает мне какуюто большую цифру.
я опять делаю что то не так...