Pagini recente » Cod sursa (job #1898471) | Cod sursa (job #2813955) | Cod sursa (job #833815) | Cod sursa (job #2924127) | Cod sursa (job #1971804)
#include<string>
#include<fstream>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
int Expr();
int Factor();
string ec;
int i;
int Eval()
{
int nr = Expr();
while(ec[i] == '+' || ec[i] == '-')
{
if(ec[i] == '+')
{
++i;
nr += Expr();
}
else
{
++i;
nr -= Expr();
}
}
return nr;
}
int Expr()
{
int nr = Factor();
while(ec[i] == '*' || ec[i] == '/')
{
if(ec[i] == '*')
{
++i;
nr *= Factor();
}
else
{
++i;
nr /= Factor();
}
}
return nr;
}
int Factor()
{
int nr = 0;
if(ec[i] == '(')
{
++i;
nr = Eval();
++i;
}
else
{
while(ec[i] >= '0' && ec[i] <= '9')
{
nr = nr * 10 + ec[i] - '0';
++i;
}
}
return nr;
}
int main(){
cin >> ec;
cout << Eval();
cin.close();
cout.close();
return 0;
}