Pagini recente » Cod sursa (job #2334859) | Cod sursa (job #18210) | Cod sursa (job #1484427) | Cod sursa (job #444181) | Cod sursa (job #2927211)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
int i;
char v[100005];
int expresie();
int termen();
int factor();
int main()
{
in >> v;
out << expresie();
return 0;
}
int expresie()
{
int n = termen();
while (v[i] == '+' || v[i] == '-')
if (v[i] == '+')
{
i++;
n += termen();
}
else
{
i++;
n -= termen();
}
return n;
}
int termen()
{
int n = factor();
while (v[i] == '*' || v[i] == '/')
if (v[i] == '*')
{
i++;
n *= factor();
}
else
{
i++;
n /= factor();
}
return n;
}
int factor()
{
int n;
if (v[i] == '(')
{
i++;
n = expresie();
i++;
}
else
{
n = 0;
while (v[i] >= '0' && v[i] <= '9')
{
n *= 10;
n += v[i] - '0';
i++;
}
}
return n;
}