当前位置: 首页>>代码示例>>C++>>正文


C++ Entier类代码示例

本文整理汇总了C++中Entier的典型用法代码示例。如果您正苦于以下问题:C++ Entier类的具体用法?C++ Entier怎么用?C++ Entier使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Entier类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: getMean

void CalculatriceModele::getMean(int type){
    if(pile.size()>=1){
        Constante* a = pile.pop();
        if(typeid (*a).name()==typeid (Entier).name()){
            Entier* e = dynamic_cast<Entier*>(a);

            if(pile.size()>=e->GetEntier())
            {
                Rationnel nb_moyenne = e->inv();

                pile.push(e);
                emit getSum(type);

                a = pile.pop();
                Constante* res = nb_moyenne * a;
                qDebug()<<"res :"<<res->ConvertChaine();
                pile.push(res);
            }
            else{
                pile.push(a);
                logger1->Write(&LogMessage(ERROR,"taille pile insuffisante"));
                logger2->Write(&LogMessage(ERROR,"taille pile insuffisante"));
            }
        }
        else{
        logger1->Write(&LogMessage(ERROR,"type non conforme"));
        logger2->Write(&LogMessage(ERROR,"type non conforme"));
        }
        emit finOp(&pile);
    }
    else{
    logger1->Write(&LogMessage(ERROR,"taille pile insuffisante"));
    logger2->Write(&LogMessage(ERROR,"taille pile insuffisante"));
    }
}
开发者ID:lilireli,项目名称:LO21_LilireliAfsanee,代码行数:35,代码来源:CalculatriceFonctionPile.cpp

示例2: qDebug

Element* Calculateur::fact()
{
    if(typeid(*this->pileC->top()) == typeid(Expression))
    {
         throw std::logic_error("L'élément du haut de la pile est une expression");
    }
    if(typeid(*this->pileC->top()) == typeid(Complexe))
    {   qDebug()<<"on est en complexe";
         throw std::logic_error("La fonction factorielle ne s'applique pas au complexe");
    }
    if(typeid(*this->pileC->top()) != typeid(Entier))
    {   qDebug()<<"on est en non entier";
        throw std::logic_error("La fonction factorielle ne s'applique qu'au entier");
    }
    if(typeid(*this->pileC->top()) == typeid(Entier))
    {   qDebug()<<"on est en entier";
        Entier* m = dynamic_cast<Entier*>(this->pileC->pop()); /*!< module */
        int a,f;
        for(a=1,f=1;a<m->getXAsInt()+1;f*=a,a++);
        this->push(new Entier(f));
        delete m;
    }
    else
    {
        throw std::logic_error("L'élément du haut de la pile n'est pas un élement valide");
    }
}
开发者ID:playbill,项目名称:Comfortably-Numb-0.2,代码行数:27,代码来源:calculateur.cpp

示例3: while

Reelle::Reelle(const Entier& p,const Entier& m){
    /*Un réel ne peut pas être construit avec une mantisse nulle*/
    if(m.getValeur()==0){LitteraleException("Construction: Mantisse nulle !","Reelle");}
    else{value=p.getValeur();
            double mantisse=(double)m.getValeur();
           while(mantisse>=1)
            mantisse=mantisse/10.0;
            value+=mantisse;}
}
开发者ID:gabriel-hurtado,项目名称:UTComputer,代码行数:9,代码来源:litterales.cpp

示例4: sum

Element* Calculateur::sum()
{
   Entier* e = dynamic_cast<Entier*>(this->pop());
    qDebug()<<"ici ça marche";
    for(unsigned int i=0;i<e->getXAsInt()-1;i++)
    {
        this->addition();
    }
    qDebug()<<this->getPile()->top()->toQString();

}
开发者ID:playbill,项目名称:Comfortably-Numb-0.2,代码行数:11,代码来源:calculateur.cpp

示例5: Reel

Element& Reel::operator*(Element& e)
{
   {

    if(typeid(e) == typeid(Complexe))
    {
        Complexe& ecast = dynamic_cast<Complexe &>(e);

        if(typeid(*ecast.getRe()) == typeid(Entier))
        {
            Entier* ccast = dynamic_cast<Entier *>(ecast.getRe());
            Reel* tmp = new Reel(this->getX() * (float)ccast->getX());
            Reel* tmpim = new Reel(this->getXAsFloat() * ecast.getIm()->getXAsFloat());
            return *(new Complexe(tmp, tmpim));
        }
        else if(typeid(*ecast.getRe()) == typeid(Reel))
        {
            Reel* tmp = new Reel(this->getX() * ecast.getRe()->getXAsFloat());
            Reel* tmpim = new Reel(this->getXAsFloat() * ecast.getIm()->getXAsFloat());
            return *(new Complexe(tmp, tmpim));
        }
        else if(typeid(*ecast.getRe()) == typeid(Rationnel))
        {

            Reel* tmp = new Reel(this->getX()*(ecast.getRe()->getXAsFloat()/ecast.getRe()->getYAsFloat()));
            Reel* tmpim = new Reel(this->getXAsFloat()* (ecast.getIm()->getXAsFloat()/ecast.getIm()->getYAsFloat()));
            return *(new Complexe(tmp, tmpim));
        }
        else{}

    }
    else if(typeid(e) == typeid(Entier))
    {
        Entier& ecast = dynamic_cast<Entier &>(e);
        return *(new Reel(this->getX() * (float)ecast.getX()));
    }
    else if(typeid(e) == typeid(Expression))
    {
        Expression& ecast = dynamic_cast<Expression &>(e);
        return *(new Expression( this->toQString() + ' ' + ecast.getX() + ' * '));
    }
    else if(typeid(e) == typeid(Rationnel))
    {
        Rationnel& rcast = dynamic_cast<Rationnel &>(e);
        return *(new Reel(this->getX()*(rcast.getXAsFloat()/rcast.getYAsFloat())));
    }
    else if(typeid(e) == typeid(Reel))
    {
        Reel& rcast = dynamic_cast<Reel &>(e);
        return *(new Reel(this->getX()*rcast.getX()));
    }
    else{}
}
}
开发者ID:joollyjumper,项目名称:Comfortably-Numb-0.2,代码行数:54,代码来源:element.cpp

示例6: ComputerException

Litterale* OpMod::fonctionNum(Nombres *arg1, Litterale *arg2){
    Entier* n1 = dynamic_cast<Entier*>(arg1);
    Entier* n2 = dynamic_cast<Entier*>(arg2);
    if (n1 == nullptr || n2 == nullptr)
        throw ComputerException("Arguments invalides");

    int val = (int)n1->getValue()%(int)n2->getValue();
    Entier* res = new Entier(val);
    if (n1->getNeg() || n2->getNeg())
        res->setNeg(true);

    return res;
}
开发者ID:AlexisDrch,项目名称:UTComputer_LO21,代码行数:13,代码来源:operatorAutre.cpp

示例7: mean

Element* Calculateur::mean()
{
    Entier* e = dynamic_cast<Entier*>(this->pop());
    unsigned int i;
    for(i=0;i<e->getXAsInt()-1;i++)
    {
        this->addition();
    }
    Reel* div = new Reel(i+1);
    Element* sum = this->pop();
    Element* res = this->cast(&(sum->operator /(*div)));
    delete div;
    delete sum;
    this->push(res);
}
开发者ID:playbill,项目名称:Comfortably-Numb-0.2,代码行数:15,代码来源:calculateur.cpp

示例8: Entier

Element& Entier::operator-(Element& e)
{
     if(typeid(e) == typeid(Complexe))
    {
        Complexe& ecast = dynamic_cast<Complexe &>(e);

        if(typeid(ecast.getRe()) == typeid(Entier*))
        {
            Entier* ccast = dynamic_cast<Entier *>(ecast.getRe());
            Entier* tmp = new Entier(this->getX() - ccast->getX());
            return *(new Complexe(tmp, ecast.getIm()->clone()));
        }
        else if(typeid(ecast.getRe()) == typeid(Reel*))
        {
            Reel* rcast = dynamic_cast<Reel *>(ecast.getRe());
            Reel* tmp = new Reel((float) this->getX() - rcast->getX());
            return *(new Complexe(tmp, ecast.getIm()->clone()));
        }
        else if(typeid(ecast.getRe()) == typeid(Rationnel*))
        {
            Rationnel* rcast = dynamic_cast<Rationnel *>(ecast.getRe());
            Rationnel* tmp = new Rationnel(this->getX()*rcast->getY() - rcast->getX(), rcast->getY());
            return *(new Complexe(tmp, ecast.getIm()->clone()));
        }

    }
    else if(typeid(e) == typeid(Entier))
    {
        Entier& ecast = dynamic_cast<Entier &>(e);
        return *(new Entier(this->getX() - ecast.getX()));
    }
    else if(typeid(e) == typeid(Expression))
    {
        Expression& ecast = dynamic_cast<Expression &>(e);
        return *(new Expression( this->toQString() + ' ' + ecast.getX() + ' - '));
    }
    else if(typeid(e) == typeid(Rationnel))
    {
        Rationnel& rcast = dynamic_cast<Rationnel &>(e);
        return *(new Rationnel(this->getX()*rcast.getY() - rcast.getX(), rcast.getY()));
    }
    else if(typeid(e) == typeid(Reel))
    {
        Reel& rcast = dynamic_cast<Reel &>(e);
        return *(new Reel((float)this->getX() - rcast.getX()));
    }
}
开发者ID:joollyjumper,项目名称:Comfortably-Numb-0.2,代码行数:47,代码来源:element.cpp

示例9: simplifier

int simplifier(Entier a, Entier b){

    Entier& test = a.mod(b);

    if (test.getValue() == 0){
        return 1;
    } else return 0;
}
开发者ID:flute19,项目名称:LO21,代码行数:8,代码来源:entier.cpp

示例10: CalculatriceException

Nombre& Entier::division(const Nombre& n) const {
    // Nombre -> Entier
    const Entier* ptEntier = dynamic_cast<const Entier*>(&n);
    if (ptEntier == 0) {
        // Nombre -> Reel
        const Reel* ptReel = dynamic_cast<const Reel*>(&n);
        if (ptReel == 0) {
            // Nombre -> Rationnel
            const Rationnel* ptRationnel = dynamic_cast<const Rationnel*>(&n);
            if (ptRationnel == 0) {
                throw CalculatriceException("Entier : division : Impossible d'effectuer le dynamic cast!");
            } else { //  Entier / Rationnel
                if (ptRationnel->getNum().getX()/ptRationnel->getDen().getX()==0) {
                    throw CalculatriceException("Entier : division : Division par 0");
                }
                Entier num = Entier(mX  * ptRationnel->getDen().getX());
                Entier den = Entier(ptRationnel->getNum().getX());
                Rationnel* res= new Rationnel(num.toEntier(), den.toEntier());
                res->simplifier();
                Nombre& ref = *res;
                return(ref);
            }
        } else { // Entier / Reel
            if (ptReel->getX()==0) {
                throw CalculatriceException("Entier : division : Division par 0");
            }
            Nombre& ref = this->division(ptReel->toRationnel());
            return(ref);
        }
    } else { // Entier / Entier
        if (ptEntier->getX()==0) {
            throw CalculatriceException("Entier : division : Division par 0");
        }
        Reel* res = new Reel(mX / ptEntier->getX());
        Nombre& ref = *res;
        return(ref);
    }
}
开发者ID:tudorluchy,项目名称:Calculatrice,代码行数:38,代码来源:Entier.cpp

示例11: getSum

void CalculatriceModele::getSum(int type){
    if(pile.size()>=1){
        Constante* a = pile.pop();
        if(typeid (*a).name()==typeid (Entier).name()){
            Entier* e = dynamic_cast<Entier*>(a);
            int k = e->GetEntier();

            if(pile.size()>=k)
            {
                for(int i=0; i<k-1; i++){
                    emit getAdd(type);
                }

                Constante* res = pile.pop();
                pile.push(res);
                if(typeid (*res).name()==typeid (Expression).name()){
                    emit getExpression();
                }
            }
            else {
                logger1->Write(&LogMessage(ERROR,"pas assez d'expressions"));
                logger2->Write(&LogMessage(ERROR,"pas assez d'expressions"));
                pile.push(a);}
        }else{
            pile.push(a);
            logger1->Write(&LogMessage(ERROR,"type non conforme"));
            logger2->Write(&LogMessage(ERROR,"type non conforme"));
        }

        emit finOp(&pile);
    }
    else{
    logger1->Write(&LogMessage(ERROR,"taille pile insuffisante"));
    logger2->Write(&LogMessage(ERROR,"taille pile insuffisante"));
    }
}
开发者ID:lilireli,项目名称:LO21_LilireliAfsanee,代码行数:36,代码来源:CalculatriceFonctionPile.cpp

示例12: savePileAvtExe

void CommandeDivision::execute()throw(LogMessage){
    savePileAvtExe();
    Constante* c1;
    Constante* c2;
    try{
        c1 = _pileCourante->depiler();
        c2 = _pileCourante->depiler();

        if(typeid(*c1)==typeid(Expression) && typeid(*c2)==typeid(Expression)){
            throw LogMessage("addition(): impossible d'appliquer un operateur sur 2 expressions",1);
        }
        if (typeid(*c1)==typeid(Expression)){
            Expression* oldExpr=dynamic_cast<Expression*>(c1);
            QString oldChaine=oldExpr->getExp();
            QString newChaine;
            if(typeid(*c2)!=typeid(Complexe)){
                Nombre* nb=dynamic_cast<Nombre*>(c2);
                newChaine = nb->toQString();
            }
            else{
                Complexe* nb=dynamic_cast<Complexe*>(c2);
                newChaine = nb->toQString();
            }
            oldChaine.remove(oldChaine.length()-1,1);
            _pileCourante->empilerExpression(oldChaine.append(" "+newChaine+" "+'/'+'\''));
        }

        else if (typeid(*c2)==typeid(Expression)){
            Expression* oldExpr=dynamic_cast<Expression*>(c2);
            QString oldChaine=oldExpr->getExp();
            QString newChaine;
            if(typeid(*c1)!=typeid(Complexe)){
                Nombre* nb=dynamic_cast<Nombre*>(c1);
                newChaine = nb->toQString();
            }
            else{
                Complexe* nb=dynamic_cast<Complexe*>(c1);
                newChaine = nb->toQString();
            }
            oldChaine.remove(oldChaine.length()-1,1);
            _pileCourante->empilerExpression(oldChaine.append(" "+newChaine+" "+'/'+'\''));
        }

        else{

        if(_utilisateur->useComplexe()){
            Complexe *co1;
            Complexe *co2;

            if(typeid(*c1)==typeid(Complexe))
                co1 =dynamic_cast<Complexe*>(c1);
            else if(typeid(*c1)==typeid(Entier)){
                Entier* nb = dynamic_cast<Entier*>(c1);
                co1 = nb->toComplexe();
            }
            else if(typeid(*c1)==typeid(Rationnel)){
                Rationnel* nb = dynamic_cast<Rationnel*>(c1);
                co1 = nb->toComplexe();
            }
            else if(typeid(*c1)==typeid(Reel)){
                Reel* nb = dynamic_cast<Reel*>(c1);
                co1 = nb->toComplexe();
            }

            if(typeid(*c2)==typeid(Complexe))
                 co2 = dynamic_cast<Complexe*>(c2);
            else if(typeid(*c2)==typeid(Entier)){
                Entier* nb = dynamic_cast<Entier*>(c2);
                co2 = nb->toComplexe();
            }
            else if(typeid(*c2)==typeid(Rationnel)){
                Rationnel* nb = dynamic_cast<Rationnel*>(c2);
                co2 = nb->toComplexe();
                }
            else if(typeid(*c2)==typeid(Reel)){
                 Reel* nb = dynamic_cast<Reel*>(c2);
                 co2 = nb->toComplexe();
             }

            if(_utilisateur->useEntier()){
                co1->attrToEntier();
                co2->attrToEntier();
            }
            else if(_utilisateur->useRationnel()){
                co1->attrToRationnel();
                co2->attrToRationnel();
            }
            else if(_utilisateur->useReel()){
                co1->attrToReel();
                co2->attrToReel();
            }

            if(co1->getReel()==0 && co2->getImg()==0)
                throw LogMessage("division(): impossible de diviser par 0",1);
            else{
            Complexe * res = *(co1)/co2;
            _pileCourante->empilerConstante(res);
            savePileApresExe();
            }
        }
//.........这里部分代码省略.........
开发者ID:martinni,项目名称:Calculatrice,代码行数:101,代码来源:commandedivision.cpp

示例13: mod

Entier Entier::mod(Entier e){return n%e.GetEntier();}
开发者ID:lilireli,项目名称:LO21_LilireliAfsanee,代码行数:1,代码来源:Entier.cpp

示例14:

Entier::Entier(const Entier &e)
{
    this->value = e.getValue();
}
开发者ID:Kyri0n,项目名称:LO21,代码行数:4,代码来源:entier.cpp

示例15: res

Entier operator+(Entier& a,  Entier& b){

    double valeur=a.getVal()+b.getVal();
    Entier res(valeur);
    return res;
}
开发者ID:Maerig,项目名称:LO21,代码行数:6,代码来源:entier.cpp


注:本文中的Entier类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。