Cod sursa(job #1757546)

Utilizator DobosDobos Paul Dobos Data 15 septembrie 2016 12:18:50
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 fin ("evaluare.in");
ofstream fout ("evaluare.out");
typedef  long long int var;
const int MAX  = 100005;
char s[100005] , *p = s;
var Adunare();
var Imultire();
var Valoare();

var Adunare()
{
    var x  = Imultire();
    while(*p == '+' || *p == '-'){
        if(*p == '+')
            p++, x += Imultire();
        else
            p++, x -= Imultire();
    }
    return x;
}
var Imultire()
{
    var x = Valoare();
    while(*p == '*' || *p == '/')
    {
        if(*p == '*')
            p++, x *= Valoare();
        else
            p++, x /= Valoare();
    }
    return x;
}
var Valoare()
{
    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()
{
    fin >> s;
    fout << Adunare();

    return 0;
}