Pagini recente » Cod sursa (job #2745616) | Cod sursa (job #1052239) | Cod sursa (job #1398282) | Cod sursa (job #2657538) | Cod sursa (job #783662)
Cod sursa(job #783662)
#include<fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int nr,p;
char s[100001];
int evaluare();
int factor()
{int rez=0;
if(s[p]=='(')
{++p;
rez=evaluare();
++p;
}
else
while(s[p]>=48&&s[p]<=57)
{rez=rez*10+s[p]-48;
++p;
}
return rez;
}
int termen()
{int rez=factor();
while(s[p]=='*'||s[p]=='/')
{++p;
if(s[p-1]=='*')
rez*=factor();
else
rez/=factor();
break;
}
return rez;
}
int evaluare()
{int rez=termen();
while(s[p]=='+'||s[p]=='-')
{++p;
if(s[p-1]=='+')
rez+=termen();
else
rez-=termen();
break;
}
return rez;
}
int main()
{f>>s;
p=0;
nr=evaluare();
g<<nr<<'\n';
return 0;
}