Pagini recente » Cod sursa (job #447069) | Cod sursa (job #2053359) | Cod sursa (job #343091) | Cod sursa (job #794885) | Cod sursa (job #248580)
Cod sursa(job #248580)
#include <iostream.h>
#include <fstream.h>
ifstream fin("expresie.in");
ofstream fout("expresie.out");
char s[10000],*p=s;
long eval();
long termen();
long factor();
int main()
{fin>>s;
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;
}