Cod sursa(job #1572748)

Utilizator SirStevensIonut Morosan SirStevens Data 19 ianuarie 2016 08:49:09
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("evaluare.in");
ofstream out("evaluare.out");

typedef  long long int var;
const int Nmax=1e5+5;
char s[Nmax],*p=s;
var Adunare();
var Inmultire();
var Valuare();

var Adunare(){

    var x = Inmultire();
    while(*p == '+' || *p == '-')
    {
        if(*p=='+')
            p++, x+=Inmultire();
        else
            p++, x-=Inmultire();
    }
    return x;


}



var Inmultire(){

    var x = Valuare();
    while(*p == '*' || *p=='/')
    {
        if(*p == '*')
            p++,x*=Valuare();
        else
            p++,x/=Valuare();
    }
    return x;


}

var Valuare(){

    var x =0;
    if(*p == '(')
    {   p++;
        x=Adunare();
        p++;
    }
    if(isdigit(*p))
    {
        for(;isdigit(*p);p++)
            x=x*10 + (*p -'0');
    }

    return x;

}

int main()
{
    in>>s;
    out<<Adunare();
    return 0;
}