Pagini recente » Cod sursa (job #2575274) | Cod sursa (job #2319895) | Cod sursa (job #2368382)
#include <fstream>
#include <queue>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char S[100010],*p = S;
int expresie();
int factor()
{
int r;
if(*p== '('){ ++p; r = expresie();++p}
else {
r = 0;
while('0' <= *p && *p <= '9'){r = r * 10 + *p - '0'; ++p;}
}
return r;
}
int termen(){
int r = factor();
while(*p == '*' || *p == '/')
{
switch(*p)
{
case '*': ++p; r*= factor(); break;
case '/': ++p; r/= factor(); break;
}
}
return r;
}
int expresie()
{
int r = termen();
while(*p == '+' || *p == '-')
switch(*p)
{
case '+' : ++p; r+= termen();break;
case '-' : ++p; r-= termen();break;
}
return r;
}
int main()
{
f >> S;
g << expresie();
g.close();
return 0;
}