Cod sursa(job #1436589)

Utilizator Alex1199Alex Bercea Alex1199 Data 16 mai 2015 09:53:08
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include<fstream>
#include<string.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char e[100000];
int i, lg;
int EvaluareExpresie();
int EvaluareTermen();
int EvaluareFactor();
int main()
{
    f.getline(e,100000);
    lg=strlen(e);
    g<<EvaluareExpresie();
    return 0;
}
int EvaluareFactor(){
    int r;
    if (e[i]=='(') i++, r=EvaluareExpresie(), i++;
    else{
         r=0;
         while(e[i]>='0'&&e[i]<='9') r=r*10+e[i]-'0', i++;
    }
 return r;
}
int EvaluareTermen(){
    int r=EvaluareFactor();
    while (i<lg && (e[i]=='*'||e[i]=='/')){
          if (e[i]=='*') i++, r*=EvaluareFactor();
          else i++, r/=EvaluareFactor();
    }
 return r;
}
int EvaluareExpresie(){
    int r=EvaluareTermen();
    while (i<=lg &&(e[i]=='+'||e[i]=='-')){
          if(e[i]=='+') i++, r+=EvaluareTermen();
          else i++, r-=EvaluareTermen();
    }
 return r;
}