Pagini recente » Cod sursa (job #3195633) | Cod sursa (job #2205633) | Cod sursa (job #2621476) | Cod sursa (job #3177812) | Cod sursa (job #2857802)
#include <bits/stdc++.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
string s;
int poz,suma(),produs(),paranteza();
int main()
{
f>>s;
s=s+"#";
g<<suma()<<'\n';
return 0;
}
int suma()
{
int rez=produs();
while(s[poz]=='+'||s[poz]=='-')
{
if(s[poz]=='+'){poz++;rez+=produs();}
else {poz++;rez-=produs();}
}
return rez;
}
int produs()
{
int rez=paranteza();
while(s[poz]=='*'||s[poz]=='/')
{
if(s[poz]=='*'){poz++;rez*=paranteza();}
else {poz++;rez/=paranteza();}
}
return rez;
}
int paranteza()
{
if(s[poz]=='(')
{
poz++;
int rez=suma();
poz++;
return rez;
}
int rez=0;
while(isdigit(s[poz]))
{
rez=10*rez+s[poz]-'0';
poz++;
}
return rez;
}