Pagini recente » Cod sursa (job #2147010) | Cod sursa (job #2737071) | Cod sursa (job #2324749) | Cod sursa (job #102769) | Cod sursa (job #2736876)
#include <bits/stdc++.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int expresie(),termen(),factor();
int i,n;
char s[100100];
int expresie()
{
int t,nr;
if(s[i]=='(')
{
i++;
t=termen();
i++;
}
else
{
nr=0;
while('0'<=s[i] && s[i]<='9')
{
nr=nr*10+(s[i]-'0');
i++;
}
t=nr;
}
return t;
}
int factor()
{
int t;
t=expresie();
while(i<=n && (s[i]=='*' || s[i]=='/'))
{
i++;
if(s[i-1]=='*')t=t*expresie();
else t=t/expresie();
}
return t;
}
int termen()
{
int t;
t=factor();
while(i<=n && (s[i]=='+' || s[i]=='-'))
{
i++;
if(s[i-1]=='+')t=t+factor();
else t=t-factor();
}
return t;
}
int main()
{
f>>(s+1);
n=strlen(s+1);
i=1;
g<<termen();
return 0;
}