Example #1
0
Litteral& Rationnel::operator/(const Rationnel & l) const {
    //diviser c'est multiplier par l'inverse
    double tmp = (getNumerator()*l.getDenominator())/(getDenominator()*l.getNumerator());
    if (isInt(tmp))
        return LitteralManager::getInstance().addEntier(static_cast<int>(tmp));
    QString s;
    s = QString("%1/%2").arg(getNumerator()*l.getDenominator()).arg(getDenominator()*l.getNumerator());
    return LitteralManager::getInstance().addRationnel(s);
}
Example #2
0
Litteral& Rationnel::operator*(const Rationnel & l) const {
    //si le nouveau dénominateur vaut 1, alors on ajoute un entier
    double tmp = (getNumerator()*l.getNumerator())/(getDenominator()*l.getDenominator());
    if (isInt(tmp))
        return LitteralManager::getInstance().addEntier(static_cast<int>(tmp));
    //Sinon on fait un rationnel
    QString s;
    s = QString("%1/%2").arg(getNumerator()*l.getNumerator()).arg(getDenominator()*l.getDenominator());
    return LitteralManager::getInstance().addRationnel(s);
}
Example #3
0
Litteral& Rationnel::operator/(const Entier& l) const {
    double tmp = l.getValue()/getValue();
    if (isInt(tmp))
        return LitteralManager::getInstance().addEntier(static_cast<int>(tmp));
    QString s;
    s = QString("%1/%2").arg(getNumerator()).arg(getDenominator()*l.getValue());
    return LitteralManager::getInstance().addRationnel(s);
}
Example #4
0
Litteral& Rationnel::operator*(const Entier& l) const {
    double tmp = l.getValue()*getValue();
    //Si le double résultant n'a plus de partie décimale, alors on le transforme en entier
    if (isInt(tmp))
        return LitteralManager::getInstance().addEntier(static_cast<int>(tmp));
    //Sinon on ajoute en tant que rationnel comme prévu
    QString s;
    s = QString("%1/%2").arg(l.getValue()*getNumerator()).arg(getDenominator());
    return LitteralManager::getInstance().addRationnel(s);
}
Example #5
0
void RationalNumber::invert(void) {
   int top = getNumerator();
   int bot = getDenominator();

   if (top == 0) {
      return;
   }

   setValue(bot, top);
}
Example #6
0
Litteral& Rationnel::operator-(const Reel & l)  const {
    double d = getNumerator() / getDenominator();
    return LitteralManager::getInstance().addReel(l.getValue()-d);
}
Example #7
0
Litteral& Rationnel::operator-(const Entier& l) const {
    QString s;
    s = QString("%1/%2").arg(l.getValue()*getDenominator()-getNumerator()).arg(getDenominator());
    return LitteralManager::getInstance().addRationnel(s);
}
Example #8
0
RationalNumber RationalNumber::getInversion(void) const {
   RationalNumber anumber(getDenominator(), getNumerator());
   return anumber;
}
const QString Rationnel::toString() const { std::stringstream s;
                                s << getNumerateur().getValeur() << "/" << getDenominator().getValeur();
                                return QString::fromStdString(s.str());
                                }