Pagini recente » Cod sursa (job #1278881) | Cod sursa (job #2905272) | Cod sursa (job #662704) | Cod sursa (job #3001077) | Cod sursa (job #437017)
Cod sursa(job #437017)
#include <fstream>
#include <cstring>
using namespace std;
string s;
int i;
int termen();
int factor();
int expresie(void)
{
int sol=termen();
while((s[i]=='+')||(s[i]=='-'))
{
if(s[i]=='+') { i++; sol+=termen(); }
if(s[i]=='-') { i++; sol-=termen(); }
}
return sol;
}
int termen(void)
{
int sol=factor();
while((s[i]=='*')||(s[i]=='/'))
{
if(s[i]=='*') { i++; sol*=factor(); }
if(s[i]=='/') { i++; sol/=factor(); }
}
return sol;
}
int factor(void)
{
int sol=0;
if(s[i]=='(') { i++; sol=expresie(); i++; }
while((s[i]-48>=0)&&(s[i]-48<=9)) { sol=sol*10+s[i]-48; i++; }
return sol;
}
ifstream fi("evaluare.in");
ofstream fo("evaluare.out");
int main()
{
fi>>s;
fo<<expresie();
return 0;
}