Pagini recente » Cod sursa (job #287671) | Cod sursa (job #266655) | Cod sursa (job #3211088) | Cod sursa (job #429528) | Cod sursa (job #1969800)
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
#define nmax 100010
char s[nmax],*p;
int evaluare();
int factor();
int termen();
int evaluare()
{
int t=factor();
while(*p=='+' or *p=='-')
{
if(*p=='+')
{
p+=1;
t+=factor();
}
else
{
p+=1;
t-=factor();
}
}
return t;
}
int factor()
{
int t=termen();
while(*p=='*' or *p=='/')
{
if(*p=='*')
{
p+=1;
t*=termen();
}
else
{
p+=1;
t/=termen();
}
}
return t;
}
int termen()
{
if(*p=='(')
{
p+=1;
int t=evaluare();
p+=1;
return t;
}
else
{
int t=0;
while(*p<='9' and *p>='0')
{
t=t*10+*p-'0';
p+=1;
}
return t;
}
}
int main()
{
f>>s;
p=s;
g<<evaluare();
return 0;
}