Pagini recente » Cod sursa (job #2982463) | Cod sursa (job #1802306) | Cod sursa (job #805264) | Cod sursa (job #1599434) | Cod sursa (job #2978535)
#include <bits/stdc++.h>
using namespace std ;
ifstream fin("evaluare.in") ;
ofstream fout("evaluare.out") ;
string s ;
int eval(),termen(),factor(),numar(),i ;
int main()
{
fin>>s ;
fout<<eval() ;
return 0 ;
}
int numar()
{
int nr=0 ;
while(isdigit(s[i])) nr=nr*10+(s[i]-'0'),i++ ;
return nr ;
}
int eval()
{
int cnt=termen() ;
while(s[i]=='+' || s[i]=='-')
{
if(s[i]=='+') i++,cnt+=termen() ;
else i++,cnt-=termen() ;
}
return cnt ;
}
int termen()
{
int cnt=factor() ;
while(s[i]=='*' || s[i]=='/')
{
if(s[i]=='*') i++,cnt*=termen() ;
else i++,cnt/=termen() ;
}
return cnt ;
}
int factor()
{
int cnt ;
if(s[i]=='(') i++,cnt=eval(),i++ ;
else cnt=numar() ;
return cnt ;
}