Pagini recente » Cod sursa (job #2794859) | Cod sursa (job #1275687) | Cod sursa (job #2297699) | Cod sursa (job #2753848) | Cod sursa (job #1849494)
#include <bits/stdc++.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char e[100010],*c;
int suma(),produs(),factor(),numar();
int main()
{
f>>e;
c=e;
g<<suma();
return 0;
}
int suma()
{
int rezultat=produs();
while(*c=='+'||*c=='-')
{
if(*c=='+'){c++;rezultat+=produs();}
else {c++;rezultat-=produs();}
}
return rezultat;
}
int produs()
{
int rezultat=factor();
while(*c=='*'||*c=='/')
{
if(*c=='*'){c++;rezultat*=factor();}
else {c++;rezultat/=factor();}
}
return rezultat;
}
int factor()
{
//paranteza sau numar
int rezultat;
if(*c=='(')
{
c++;rezultat = suma();c++;
}
else
rezultat=numar();
return rezultat;
}
int numar()
{
int rezultat=0;
while(*c>='0'&&*c<='9')
{
rezultat=10*rezultat+*c-'0';
c++;
}
return rezultat;
}