Pagini recente » Cod sursa (job #1143411) | Cod sursa (job #182752) | Cod sursa (job #1692981) | Cod sursa (job #377177) | Cod sursa (job #248586)
Cod sursa(job #248586)
#include <iostream.h>
#include <fstream.h>
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[10005],*p=s;
long eval();
long termen();
long factor();
int main()
{fin>>s; fin.close();
fout<<eval();
fout.close();
return 0;
}
long eval()
{long x;
x=termen();
while (*p=='+' || *p=='-')
if (*p=='+')
{++p;
x+=termen();
}
else
{++p;
x-=termen();
}
return x;
}
long termen()
{long x;
x=factor();
while (*p=='*' || *p=='/')
if (*p=='*')
{++p;
x=x*factor();
}
else
{++p;
x=x/factor();
}
return x;
}
long factor()
{long x=0;
if (*p=='(')
{++p;
x=eval();
++p;
}
else
while (*p>='0' && *p<='9')
{x=x*10+(*p-'0');
++p;
}
return x;
}