Pagini recente » Cod sursa (job #1375874) | Cod sursa (job #1026837) | Cod sursa (job #2519580) | Cod sursa (job #1707616) | Cod sursa (job #2926591)
#include <fstream>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string s;
int caracter=0;
int e();
int expresie();
int factor();
int expresie()
{
int raspuns = factor();
while (s[caracter] == '+' || s[caracter] == '-') {
if (s[caracter] == '+') {
caracter++;
raspuns += factor();
} else {
caracter++;
raspuns -= factor();
}
}
return raspuns;
}
int factor()
{
int raspuns = e();
while (s[caracter] == '*' || s[caracter] == '/') {
if (s[caracter] == '*') {
caracter++;
raspuns *= e();
} else {
caracter++;
raspuns /= e();
}
}
return raspuns;
}
int e()
{
int raspuns=0;
if(s[caracter]=='(')
{
caracter++;
raspuns=expresie();
caracter++;
}
else
{
int nr=0;
while(s[caracter] >= '0' && s[caracter] <= '9')
{
nr=nr*10+(s[caracter]-'0');
caracter++;
}
raspuns+=nr;
}
return raspuns;
}
int main()
{
cin >> s;
cout << expresie();
return 0;
}