Pagini recente » Cod sursa (job #2864215) | Cod sursa (job #3195256) | Cod sursa (job #414884) | Borderou de evaluare (job #2029704) | Cod sursa (job #3144599)
#include <fstream>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string s;
int i;
int Expresie();
int Termen();
int Factor();
int main()
{
cin >> s;
cout << Expresie();
return 0;
}
int Expresie()
{
int rez = Termen();
while(s[i] == '+' || s[i] == '-')
if(s[i] == '+')
{
i++;
rez += Termen();
}
else
{
i++;
rez += Termen();
}
return rez;
}
int Termen()
{
int rez = Factor();
while(s[i] == '*' || s[i] == '/')
if(s[i] == '*')
{
i++;
rez *= Factor();
}
else
{
i++;
rez /= Factor();
}
return rez;
}
int Factor()
{
int rez = 0;
if(s[i] == '(')
{
i++;
rez = Expresie();
i++;
}
else
{
while(s[i] >= '0' && s[i] <= '9')
{
rez = rez * 10 + (s[i] - '0');
i++;
}
}
return rez;
}