Pagini recente » Cod sursa (job #3286813) | Cod sursa (job #3292770) | Cod sursa (job #3285758) | Cod sursa (job #3291809) | Cod sursa (job #3294120)
#include <bits/stdc++.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
string s;
int i;
int Termen();
int Factor();
int Eval()
{
int x=Termen();
while (s[i]=='+' || s[i]=='-')
{
if (s[i]=='+')
{
i++;
x+=Termen();
}
if (s[i]=='-')
{
i++;
x-=Termen();
}
}
return x;
}
int Termen()
{
int x = Factor();
while (s[i]=='*' || s[i]=='/')
{
if(s[i]=='*')
{
i++;
x*=Factor();
}
if(s[i]=='/')
{
i++;
x/=Factor();
}
}
return x;
}
int Factor()
{
int x;
if (s[i]== '(')
{
i++;
x=Eval();
i++;
}
else
{
x=0;
while(isdigit(s[i]))
{
x=x*10+s[i]-'0';
i++;
}
}
return x;
}
int main()
{
i=0;
f>> s;
g<<Eval();
return 0;
}