Cod sursa(job #1881379)

Utilizator ReeeBontea Mihai Reee Data 16 februarie 2017 13:52:01
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>

using namespace std;

ofstream fout("evaluare.out");

string e;

int i = 0;

void Citire()
{
    ifstream fin("evaluare.in");
    getline( fin, e );
    fin.close();
}

int EvaluareFactor();
int EvaluareTermen();
int EvaluareExpresie();

int EvaluareFactor()
{
    int t;
    if ( e[i] == '(' )
    {
        ++i;
        t = EvaluareExpresie();
    }
    else
        t = e[i] - '0';
    ++i;
    return t;
}

int EvaluareTermen()
{
    int t = EvaluareFactor();
    while ( i < e.length() && ( e[i] == '*' || e[i] == '/'))
    {
        ++i;
        if ( e[i] == '*' )
            t *= EvaluareFactor();
        else
            t /= EvaluareFactor();
    }
}

int EvaluareExpresie()
{
    int t;
    t = EvaluareTermen();
    while ( i < e.length() && ( e[i] == '+' || e[i] == '-' ) )
    {
        ++i;
        if (e[i] == '+')
            t += EvaluareTermen();
        else
            t -= EvaluareTermen();
    }
    return t;
}

int main()
{
    Citire();
    fout << EvaluareExpresie();
    return 0;
}