Cod sursa(job #1411340)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 31 martie 2015 17:15:55
Problema Evaluarea unei expresii Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.24 kb
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char *p = new char[100005];
int evaluateExpresion();
int evaluateMultiplication();
int evaluateNumber();
int evaluateNumber()
{
    int result=0;
    if((*p)=='(')
    {
        p++;
        result+=evaluateExpresion();
        p++;
    }
    else
    {
        while(*p>='0' && *p<='9')
        {
            result=result*10+*p-'0';
            ++p;
        }
    }
    return result;
}
int evaluateMultiplication()
{
    int result=evaluateNumber();
    while(*p=='*' || *p=='/')
    {
        if(*p=='*')
        {
            ++p;
            result*=evaluateNumber();
        }
        else
        {
            ++p;
            result/=evaluateNumber();
        }
    }
    return result;
}

int evaluateExpresion()
{
    int result=evaluateMultiplication();
    while(*p=='+' || *p=='-')
    {
        if(*p=='+')
        {
            ++p;
            result+=evaluateMultiplication();
        }
        else
        {
            ++p;
            result+=evaluateMultiplication();
        }
    }
    return result;
}
int main()
{
    f>>p;
    g<<evaluateExpresion()<<"\n";
    return 0;
}