Pagini recente » Cod sursa (job #562718) | Cod sursa (job #1600016) | Cod sursa (job #1551676) | Cod sursa (job #228054) | Cod sursa (job #1574108)
#include <fstream>
using namespace std;
char sir[100001];
int p;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int sum();
int term();
int fact();
int fact(){
int val=0;
if(sir[p]=='('){
p++;
val=sum();
p++;
return val;
}
while(sir[p]<='9'&&sir[p]>='0'){
val=val*10+(sir[p]-'0');
p++;
}
return val;
}
int term(){
int suma=fact();
while(sir[p]=='*'||sir[p]=='/')
if(sir[p]=='*'){
p++;
suma*=fact();
}else{
p++;
suma/=fact();
}
return suma;
}
int sum(){
int suma=term();
while(sir[p]=='+'||sir[p]=='-')
if(sir[p]=='+'){
p++;
suma+=term();
}else{
p++;
suma-=term();
}
return suma;
}
int main()
{
f>>sir;
p=0;
g<<sum();
return 0;
}