Pagini recente » Cod sursa (job #916215) | Cod sursa (job #1098822) | Cod sursa (job #2662110) | Cod sursa (job #60102) | Cod sursa (job #2736582)
#include <bits/stdc++.h>
#define INF 1e9
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string s;
int poz;
int sum();
int prod();
int termen();
int sum()
{
int x = prod();
while(s[poz] == '+' || s[poz] == '-')
{
if(s[poz] == '+')
poz++, x += prod();
else
poz++, x -= prod();
}
return x;
}
int prod()
{
int x = termen();
while(s[poz] == '*' || s[poz] == '/')
{
if(s[poz] == '*')
poz++, x *= termen();
else
poz++, x /= termen();
}
return x;
}
int termen()
{
int x = 0;
if(s[poz] == '(')
{
poz++;
x = sum();
poz++;
}
else
{
x = 0;
while(s[poz] >= '0' && s[poz] <= '9')
x = x * 10 + s[poz] - '0', poz++;
}
return x;
}
int main()
{
fin >> s;
fout << sum();
return 0;
}