Pagini recente » Cod sursa (job #548803) | Cod sursa (job #3163855) | Cod sursa (job #2207889) | Cod sursa (job #1368250) | Cod sursa (job #2791913)
#include <fstream>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string str;
int i;
int adunare();
int factor()
{
int nr;
if(str[i]=='(')
{
i++;
nr=adunare();
i++;
}
else
{
nr=0;
while(i<str.size() and str[i]>='0' and str[i]<='9')
{
nr=nr*10+str[i]-'0';
i++;
}
}
return nr;
}
int inmultire()
{
int rez=factor();
while(str[i]=='*' or str[i]=='/')
{
if(str[i++]=='*')
rez=rez*factor();
else
rez=rez/factor();
}
return rez;
}
int adunare()
{
int rez=inmultire();
while(str[i]=='+' or str[i]=='-')
{
if(str[i++]=='+')
rez+=inmultire();
else
rez-=inmultire();
}
return rez;
}
int main()
{
getline(cin,str);
i=0;
cout<<adunare();
return 0;
}