Pagini recente » Cod sursa (job #1376131) | Cod sursa (job #1010853) | Cod sursa (job #1091066) | Cod sursa (job #1429451) | Cod sursa (job #1005367)
#include<fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char sir[100005];
int ind;
int Eval();
int Termen();
int Factor();
int Numar()
{
int x=0;
while('0'<= sir[ind] && sir[ind]<='9')
{
x=x*10+sir[ind]-'0';
ind++;
}
return x;
}
inline int Factor()
{
int x;
if(sir[ind]=='(')
{
ind++;
x=Eval();
ind++;
}
else
x=Numar();
return x;
}
inline int Termen()
{
int x;
x=Factor();
while(sir[ind]=='*' || sir[ind]=='/')
{
if(sir[ind++]=='*')
x*=Factor();
else
x/=Factor();
}
return x;
}
inline int Eval()
{
int x;
x=Termen();
while(sir[ind]=='+' || sir[ind]=='-')
{
if(sir[ind++]=='+')
x+=Termen();
else
x-=Termen();
}
return x;
}
int main()
{
fin.getline(sir,100005);
fout<<Eval()<<"\n";
fin.close();
fout.close();
return 0;
}