Pagini recente » Cod sursa (job #1087653) | Cod sursa (job #2334152) | Cod sursa (job #2090790) | Cod sursa (job #3260950) | Cod sursa (job #2793148)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char a[100010];
int i;
int expresie();
int termen();
int factor();
int expresie()
{
int rez = termen();
while(a[i] == '+' || a[i] == '-')
if (a[i] == '+')
{
i++;
rez += termen();
}
else
{
i++;
rez -= termen();
}
}
int termen()
{
int rez = factor();
while(a[i] == '*' || a[i] == '/')
if (a[i] == '*')
{
i++;
rez *= factor();
}
else
{
i++;
rez /= factor();
}
}
int factor()
{
int rez;
if(a[i] == '(')
{
i++;
rez = expresie();
i++;
}
else
{
rez = 0;
while (a[i] >= '0' && a[i] <= '9')
{
rez = rez * 10 + a[i] - '0';
i++;
}
}
return rez;
}
int main()
{
fin >> a;
fout << expresie();
}