Pagini recente » Cod sursa (job #2692242) | Cod sursa (job #1399673) | Cod sursa (job #1707204) | Cod sursa (job #297539) | Cod sursa (job #3286939)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string s;
int i;
int grad1();
int grad2();
int grad3();
int grad1()
{
int rez=grad2();
while (s[i]=='+' || s[i]=='-')
{
i++;
if (s[i-1]=='+') rez+=grad2();
else rez-=grad2();
}
return rez;
}
int grad2()
{
int rez=grad3();
while (s[i]=='*' || s[i]=='/')
{
i++;
if (s[i-1]=='*') rez*=grad2();
else rez/=grad2();
}
return rez;
}
int grad3()
{
int rez;
if (s[i]=='(')
{
i++;
rez=grad1();
i++;
}
else
{
rez=0;
while (i<s.size() && isdigit(s[i])) rez=rez*10+(s[i]-'0'),i++;
}
return rez;
}
int main()
{
fin>>s;
fout<<grad1();
return 0;
}