Pagini recente » Cod sursa (job #384347) | Cod sursa (job #1355134) | Cod sursa (job #268029) | Cod sursa (job #801263) | Cod sursa (job #1210817)
#include<fstream>
#include<string.h>
#include<cstdio>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
const long MAX=100010;
char S[MAX],*p=S;
long termen();
long factor();
long eval()
{long r=termen();
while(*p=='+'||*p=='-')
switch (*p)
{case '+':
p++;
r=r+termen();
break;
case '-':
p++;
r=r-termen();
break;
}
return r;
}
long termen()
{long r=factor();
while(*p=='*'||*p=='/')
switch(*p)
{case '*':
p++;
r=r*factor();
break;
case '/':
p++;
r=r/factor();
break;
}
return r;
}
long factor()
{long r=0;
if(*p=='(')
{p++;
r=eval();
p++;
}
else
while(*p>='0'&&*p<='9')
{r=r*10+*p-'0';
p++;
}
return r;
}
int main()
{f.get(S,MAX);
g<<eval();
}