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


C++ Entier::getXAsInt方法代码示例

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


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

示例1: mod

Element* Calculateur::mod()
{
    if(typeid(*this->pileC->top()) == typeid(Expression))
    {
        this->eval();
    }
    if(typeid(*this->pileC->top()) == typeid(Complexe))
    {   qDebug()<<"on est en complexe";
         throw std::logic_error( "mod : le premier parametre doit être une constante");
    }
    if(typeid(*this->pileC->top()) != typeid(Entier))
    {
         throw std::logic_error("Il faut que l'élément soit un entier");
    }
    if(typeid(*this->pileC->top()) == typeid(Entier))
    {   qDebug()<<"on est en entier";
        Entier* m = dynamic_cast<Entier*>(this->pileC->pop()); /*!< module */
        qDebug()<<"l'entier est"<<m->toQString();

        if(typeid(*this->pileC->top()) == typeid(Expression))
        { qDebug()<<"on est en expression";
            this->pileC->push(m);
            throw std::logic_error("Le deuxième élément est une expression");
        }
        if(typeid(*this->pileC->top()) == typeid(Complexe))
        {   qDebug()<<"on est en complexe";
            this->pileC->push(m);
             throw std::logic_error("Le deuxième élément est un complexe");
        }
        if(typeid(*this->pileC->top()) != typeid(Entier))
        {   qDebug()<<"on est en non entier";
             throw std::logic_error("Le deuxième élément n'est pas de type entier");
        }
        if(typeid(*this->pileC->top()) == typeid(Entier))
        {   qDebug()<<"on est en entier";
            Entier* e = dynamic_cast<Entier*>(this->pileC->pop());
            qDebug()<<e->toQString();
            Entier* tmp = new Entier(e->getXAsInt()%m->getXAsInt());
            qDebug()<<tmp->toQString();
            delete m;
            delete e;
            this->pileC->push(tmp);
            return tmp;
        }
        else
        {
             throw std::logic_error("Le deuxième élément n'est pas un élément valide");
        }
    }
    else
    {
         throw std::logic_error("Le premier élément n'est pas un élément valide");
    }
}
开发者ID:playbill,项目名称:Comfortably-Numb-0.2,代码行数:54,代码来源:calculateur.cpp

示例2: fact

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: 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

示例4: 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

示例5: pow

Element* Calculateur::pow()
{
    if(typeid(*this->pileC->top()) == typeid(Expression))
    {
        this->eval();
    }
    if(typeid(*this->pileC->top()) == typeid(Complexe))
    {
         throw std::logic_error("Le premier élément ne peut pas être un complexe");
    }
    else if(typeid(*this->pileC->top())== typeid(Entier))
    {
        Entier* e = dynamic_cast<Entier*>(this->pileC->pop());

        if(typeid(*this->pileC->top()) == typeid(Expression))
        {
            Element* tmp = this->eval();
        }

        else if(typeid(*this->pileC->top())== typeid(Entier) || typeid(*this->pileC->top())== typeid(Rationnel))
        {
            Constante* c = dynamic_cast<Constante*>(this->pileC->pop());

            if(e->getXAsInt()>= 0)
            {
                Rationnel* tmp = new Rationnel(::pow(c->getXAsInt(),e->getXAsInt()),::pow(c->getYAsInt(),e->getXAsInt()));
                qDebug()<<tmp->toQString();
                Element* res = this->cast(tmp);
                delete e;
                delete c;
                delete tmp;
                this->pileC->push(res);
            }
            else
            {
                Reel* tmp = new Reel(::pow(c->getXAsFloat()/c->getYAsFloat(),e->getXAsInt()));

                Element* res = this->cast(tmp);
                delete e;
                delete c;
                delete tmp;
                this->pileC->push(res);
            }
        }
        else if(typeid(*this->pileC->top()) == typeid(Reel))
        {
            Constante* c = dynamic_cast<Constante*>(this->pileC->pop());
            Reel* tmp = new Reel(::pow(c->getXAsFloat(),e->getXAsFloat()));
            Element* res = this->cast(tmp);
            delete e;
            delete c;
            delete tmp;
            this->pileC->push(res);

        }
        else
        {
         throw std::logic_error("L'élément n'est pas un type connu");
        }
    }
    else if(typeid(*this->pileC->top()) == typeid(Reel) || typeid(*this->pileC->top()) == typeid(Rationnel))
    {
        Constante* p = dynamic_cast<Constante*>(this->pileC->pop());

        if((typeid(*this->pileC->top()) == typeid(Entier))||(typeid(*this->pileC->top()) == typeid(Rationnel)) || typeid(*this->pileC->top()) == typeid(Reel))
        {
            Constante* c = dynamic_cast<Constante*>(this->pileC->pop());
            Reel* tmp = new Reel(::pow(c->getXAsFloat()/c->getYAsFloat(),p->getXAsFloat()/p->getYAsFloat()));
            Element* res = this->cast(tmp);
            delete p;
            delete c;
            delete tmp;
            this->pileC->push(res);
            return res;

        }
        else
        {
           throw std::logic_error("Le deuxième élément n'est pas un type valide");
        }
    }
    else
    {
     throw std::logic_error("Le premier élément n'est pas un élément valide");
    }

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


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