Pagini recente » Cod sursa (job #2449505) | Cod sursa (job #1555510) | Cod sursa (job #1287810) | Cod sursa (job #1711011) | Cod sursa (job #248587)
Cod sursa(job #248587)
#include <iostream.h>
#include <fstream.h>
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[100005],*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;
}