Pagini recente » Clasament oji20171112 | Cod sursa (job #580999) | Cod sursa (job #2705793) | Cod sursa (job #796138) | Cod sursa (job #2063495)
#include <fstream>
#include <string>
using namespace std;
string sir;
int i;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int aduna();
int produs();
int exp();
int aduna(){
int rez=produs();
while(sir[i]=='+' || sir[i]=='-')
{
if(sir[i]=='+')
{ i++;
rez=rez+produs();
}
else
{
i++;
rez=rez-produs();
}
}
return rez;
}
int produs(){
int rez=exp();
while(sir[i]=='*' || sir[i] == '/')
{
if(sir[i]=='*')
{
i++;
rez*=exp();
}
else
{
i++;
rez/=exp();
}
}
return rez;
}
int exp(){
int rez=0;
if(sir[i]=='(')
{
i++;
rez=aduna();
i++;
}
else
{
while(sir[i]>='0' && sir[i] <='9')
{
rez=rez*10+(sir[i]-'0');
i++;
}
}
return rez;
}
int main()
{
f >> sir;
g << aduna();
return 0;
}