Pagini recente » Cod sursa (job #1774855) | Cod sursa (job #2225435) | Cod sursa (job #1427042) | Cod sursa (job #2466830) | Cod sursa (job #1320848)
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
string s;
int p = 0;
int expresie();
int factor()
{
int r;
if (s[p] == '(')
{
p++;
r = expresie();
p++;
}
else
for (r = 0; '0' <= s[p] and s[p] <= '9'; p++)
r = 10 * r + s[p] - '0';
return r;
}
int termen()
{
int r = factor();
while (s[p] == '*' or s[p] == '/')
if (s[p] == '*')
{ p++;
r *= factor();
}
else
{ p++;
r /= factor();
}
return r;
}
int expresie()
{
int r = termen();
while (s[p] == '+' or s[p] == '-')
if (s[p] == '+')
{ p++;
r += termen();
}
else
{ p++;
r -= termen();
}
return r;
}
int main()
{
f >> s;
g << expresie();
return 0;
}