Pagini recente » Cod sursa (job #1927138) | Cod sursa (job #1932095) | Cod sursa (job #1730579) | Cod sursa (job #944202) | Cod sursa (job #1908128)
#include <fstream>
#include <cstring>
#define VAL 100005
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[VAL], *P=s;
int evaluare();
int termen();
int factor();
int evaluare()
{
int nr=termen();
while (*P=='+' || *P=='-')
{
if (*P=='+')
{
P++;
nr+=termen();
}
if (*P=='-')
{
P++;
nr-=termen();
}
}
return nr;
}
int termen()
{
int nr=factor();
while (*P=='*' || *P=='/')
{
if (*P=='*')
{
P++;
nr*=factor();
}
if (*P=='/')
{
P++;
nr/=factor();
}
}
return nr;
}
int factor()
{
int nr=0;
if (*P=='(')
{
P++;
nr=evaluare();
P++;
}
else
{
while (*P>='0' && *P<='9')
{
nr*=10;
nr+=*P-'0';
}
}
return nr;
}
int main()
{
fin >> s;
fout << s;
fout << evaluare();
fin.close();
fout.close();
return 0;
}