Cod sursa(job #1210933)

Utilizator azkabancont-vechi azkaban Data 21 iulie 2014 17:21:09
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.72 kb
#include<fstream>
#include<string>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");

int l;
string s;

int rezultat();

int factor() 
{
 int f=0;
 if (s[l]=='(') { 
                 ++l; 
                 f=rezultat(); 
                 ++l; 
                 }
            else
 while (s[l]>='0'&& s[l]<='9') { 
                               f=f*10+s[l]-'0'; 
                               ++l; 
                               }
 return(f);
}
 
int termen() {
    int t=factor();
    while (s[l]=='*'||s[l]=='/') {
                                  if (s[l]=='*') { 
                                                  ++l; 
                                                  t*=factor(); 
                                                  }
                                             else { 
                                                   ++l; 
                                                   t/=factor(); 
                                                   }
                                  }
   return(t);
}
 
int rezultat(){
    int v=termen();
    while (s[l]=='+'||s[l]=='-') {
                                  if (s[l]=='+') { 
                                                  ++l; 
                                                  v+=termen(); 
                                                  }
                                             else { 
                                                   ++l; 
                                                   v-=termen(); 
                                                   }
                                  }
   return(v);
} 
 
int main() 
{
 getline(cin,s);  
 cout<<rezultat();
 return 0;
}