Pagini recente » Cod sursa (job #1847836) | Cod sursa (job #226951) | Cod sursa (job #2026351) | Cod sursa (job #2273218) | Cod sursa (job #2882017)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("evaluare.in");
ofstream out ("evaluare.out");
string s;
int poz = 0;
int suma(), produs();
int make_number ()
{
int k = 0;
while (s[poz] <= '9' && s[poz] >= '0')
{
k = k * 10 + s[poz] - '0';
poz++;
}
return k;
}
int eval ()
{
int rez = 0;
if (s[poz] == '(')
{
poz++;
rez = suma();
poz++;
}
else
rez = make_number();
return rez;
}
int suma ()
{
int rez = produs();
if (s[poz] == '+')
{
poz++;
return rez + produs();
}
else if (s[poz] == '-')
{
poz++;
return rez - produs();
}
return rez;
}
int produs ()
{
int rez = eval();
if (s[poz] == '*')
{
poz++;
return rez * eval();
}
else if (s[poz] == '/')
{
poz++;
return rez / eval();
}
return rez;
}
int main()
{
in >> s;
out << suma();
return 0;
}