Pagini recente » Cod sursa (job #1462658) | Cod sursa (job #1234938) | Cod sursa (job #1380177) | Cod sursa (job #613162) | Cod sursa (job #2721838)
#include <bits/stdc++.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int eval();
int termen();
int factor();
int poz,n;
char s[100005];
int eval()
{
int rez=termen();
while (poz<n&&(s[poz]=='+'||s[poz]=='-'))
{
if (s[poz]=='+')
{
poz++;
rez=rez+termen();
}
else
{
poz++;
rez=rez-termen();
}
}
return rez;
}
int termen()
{
int rez=factor();
while (poz<n&&(s[poz]=='*'||s[poz]=='/'))
{
if (s[poz]=='*')
{
poz++;
rez=rez*factor();
}
else
if (s[poz]=='/')
{
poz++;
rez=rez/factor();
}
}
return rez;
}
int factor()
{
int rez=0;
if (s[poz]=='(')
{
poz++;
rez=eval();
poz++;
}
while (poz<n&&('0'<=s[poz]&&s[poz]<='9'))
{
rez=rez*10+(s[poz]-'0');
poz++;
}
return rez;
}
int main()
{
f.getline(s,100003);
n=strlen(s);
g<<eval();
return 0;
}