Pagini recente » Cod sursa (job #1188776) | Cod sursa (job #542519) | Cod sursa (job #454157) | Cod sursa (job #1580656) | Cod sursa (job #1045034)
#include<fstream>
using namespace std;
char p[100001];
int i;
fstream f("evaluare.in",ios::in);
fstream g("evaluare.out",ios::out);
int eval();
int termen();
int factor();
int nr();
int main()
{
f.getline(p,100001);
i=0;
g<<eval()<<'\n';
return 0;
}
int eval()
{
int r=termen();
while (p[i]=='+' || p[i]=='-')
{
if (p[i]=='+') {++i;r+=termen();}
else {++i;r-=termen();}
}
return r;
}
int termen()
{
int r=factor();
while (p[i]=='*' || p[i]=='/')
{
if (p[i]=='*') {++i;r*=factor();}
else {++i;r/=factor();}
}
return r;
}
int factor()
{
int r;
if (p[i]=='(') {++i;r=eval();++i;}
else r=nr();
return r;
}
int nr()
{
int r=0;
while(p[i]>='0'&& p[i]<='9')
{
r*=10;
r+=p[i]-'0';
++i;
}
return r;
}