Pagini recente » Cod sursa (job #858586) | Cod sursa (job #2640799) | Cod sursa (job #2865811) | Cod sursa (job #1664177) | Cod sursa (job #2256061)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int expresie(),termen(),factor();
int i,lg;
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 f;
f=expresie();
while(i<lg && (s[i]=='*'||s[i]=='/'))
{
i++;
if(s[i-1]=='*')f=f*expresie();
else f=f/expresie();
}
return f;
}
int termen()
{
int t;
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;
lg=strlen(s);
i=0;
g<<termen();
return 0;
}