Pagini recente » Cod sursa (job #1837492) | Cod sursa (job #1259552) | Cod sursa (job #1127852) | Cod sursa (job #2418078) | Cod sursa (job #1436589)
#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;
}