PDA

View Full Version : Помощ за C++



DaniP
01-07-2017, 05:29
Здравейте, трябва ми помощ за една задача по програмиране.
Да се моделира дадения в задачата "реален" обект с неговите
свойства като се използват класове, т.е. да се създаде клас с членове:
- констуктор и деструктор;
- set и get функции;
- print функция;
- функцията, описана в конкретната задача;
- предефиниране на операцията, описана в задачата.


Обект: проста дроб
Функция: проверка дали дробта не е цяло число
Операция: събиране на дроби

Нова съм в програмирането и не мога да се справя :( Моля ви за помощ

CoNviCt
01-07-2017, 09:22
Момент.
Питай, ако не разбираш.

CoNviCt
01-07-2017, 10:02
#include <iostream>
using namespace std;

class Fraction {
private:
int numerator;
int denominator;

public:
Fraction()
{
numerator = 1;
denominator = 1;
}

Fraction(int n, int d)
{
numerator = n;
denominator = d;
}

Fraction (Fraction &f)
{
numerator = f.numerator;
denominator = f.denominator;
}

int GetNumerator()
{
return numerator;
}

int GetDenominator()
{
return denominator;
}

void SetNumerator(int n)
{
numerator = n;
}

void SetDenominator(int d)
{
denominator = d;
}

bool CheckIfFraction()
{
if(numerator > denominator && (numerator%denominator) != 0)
{
return true;
}
else
return false;
}

void print()
{
cout<<numerator<<"/"<<denominator;
}

Fraction operator +(Fraction b)
{

int gcd;
for(int i=1; i <= numerator && i <= b.numerator; ++i)
{
// Checks if i is factor of both integers
if(numerator%i==0 && b.numerator%i==0)
gcd = i;
}

int n = numerator*b.denominator+b.numerator*denominator;
int d = denominator*b.denominator;

return Fraction(n/gcd,d/gcd);
}
};

int main()
{
Fraction f = Fraction(3,4);
Fraction f2 = Fraction(5,3);
Fraction sum;
sum = f+f2;
cout<<sum.CheckIfFraction()<<endl;
sum.print();
system("pause");
}

DaniP
01-07-2017, 14:02
Много благодаря :)

CoNviCt
01-07-2017, 20:52
Написах ти отговор на личното, но не знам дали се прати. xd
Ако не се е пратил, пиши тук, за да ти пратя пак.