Pagini recente » Cod sursa (job #2066760) | Cod sursa (job #2788645) | Cod sursa (job #3245968) | Cod sursa (job #2859360) | Cod sursa (job #2719278)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string s;
int poz;
int Sum();
int Prod();
int termen();
int Sum()
{
int sum = Prod();
while(s[poz] == '+' || s[poz] == '-')
{
int semn;
if(s[poz] == '+')
semn = 1;
else
semn = -1;
poz++;
sum += semn * Prod();
}
return sum;
}
int Prod()
{
int sum = termen();
while(s[poz] == '*' || s[poz] == '/')
{
if(s[poz] == '*')
{
poz++;
sum *= termen();
}
else
{
poz++;
sum /= termen();
}
}
return sum;
}
int termen()
{
int nr = 0;
if(s[poz] == '(')
{
poz++;
nr += Sum();
poz++;
}
else
while(s[poz] >= '0' && s[poz] <= '9')
nr = nr * 10 + s[poz] - '0', poz++;
return nr;
}
int main()
{
fin >> s;
fout << Sum();
return 0;
}