Pagini recente » Cod sursa (job #3203502) | Cod sursa (job #2907774) | Cod sursa (job #1319415) | Cod sursa (job #1626934) | Cod sursa (job #1647275)
#include <fstream>
#include <cstdio>
#include <cctype>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char *p,s[100001];
int evaluare();
int numar()
{
int x=0;
while (isdigit(*p)) x=x*10+(*p-'0'), p++;
return x;
}
int factor()
{
int aux;
if (*p=='(') p++,aux=evaluare(),p++;
else aux=numar();
return aux;
}
int termen()
{
int aux=factor();
while (*p=='*' || *p=='/')
{
if (*p=='*') p++,aux*=factor();
else p++,aux/=factor();
}
return aux;
}
int evaluare()
{
int aux=termen();
while (*p=='+' || *p=='-')
{
if (*p=='+') p++,aux+=termen();
else p++,aux-=termen();
}
return aux;
}
int main()
{
f.getline(s,100001);
p=s;
g<<evaluare();
return 0;
}