Pagini recente » Cod sursa (job #801720) | Cod sursa (job #1813484) | Cod sursa (job #2188094) | Cod sursa (job #822649) | Cod sursa (job #2739134)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("evaluare.in");
ofstream g ("evaluare.out");
char sir[100010];
int n, dr;
int eval();
int factor ()
{
int aux = 0;
if (sir[dr] == '(')
{
dr++;
aux = eval();
dr++;
}
while (sir[dr] >= '0' && sir[dr] <= '9')
{
aux = aux * 10 + sir[dr] - '0';
dr++;
}
return aux;
}
int termen ()
{
int aux = factor();
while (sir[dr] == '/' || sir[dr] == '*')
{
if (sir[dr] == '/')
{
dr++;
aux /= factor();
}
if (sir[dr] == '*')
{
dr++;
aux *= factor();
}
}
return aux;
}
int eval ()
{
int aux = termen();
while (sir[dr] == '+' || sir[dr] == '-')
{
if (sir[dr] == '+')
{
dr++;
aux += termen();
}
if (sir[dr] == '-')
{
dr++;
aux -= termen();
}
}
return aux;
}
int main()
{
f>>sir;
g<<eval();
f.close();
g.close();
return 0;
}