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