Pagini recente » Cod sursa (job #1865041) | Cod sursa (job #1760462) | Cod sursa (job #1035941) | Cod sursa (job #2158071) | Cod sursa (job #2208568)
#include <fstream>
using namespace std;
string s;
int i;
bool cif(char c)
{
return (c>='0' and c<='9');
}
int getexp();
int getfactor()
{
int nr=0;
if(s[i]=='(')
{
i++;
nr=getexp();
i++;
}
while(cif(s[i]))
{
nr=nr*10+s[i]-'0';
i++;
}
return nr;
}
int getterm()
{
int nr=getfactor();
while(s[i]=='*' or s[i]=='/' )
{
i++;
if(s[i-1]=='*') nr*=getfactor();
if(s[i-1]=='/') nr/=getfactor();
}
return nr;
}
int getexp()
{
int nr=getterm();
while(s[i]=='+' or s[i]=='-')
{
i++;
if(s[i-1]=='+') nr+=getterm();
if(s[i-1]=='-') nr-=getterm();
}
return nr;
}
int main()
{
ifstream f("evaluare.in");
ofstream g("evaluare.out");
f>>s;
g<<getexp();
return 0;
}