Pagini recente » Cod sursa (job #2988145) | Cod sursa (job #3243060) | Cod sursa (job #1276358) | Cod sursa (job #138244) | Cod sursa (job #1416514)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100001], *p = s;
long eval();
long termen();
long factor();
long eval()
{
long r = termen();
while(*p == '+' || *p == '-')
{
if (*p == '+')
p++, r += termen();
else if (*p == '-')
p++, r -= termen();
}
return r;
}
long termen()
{
long r = factor();
while (*p == '/' || *p == '*')
{
if (*p == '/')
p++, r /= factor();
else if (*p == '*')
p++, r *= factor();
}
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 >> s;
g << eval();
return 0;
}