Pagini recente » Cod sursa (job #957267) | Cod sursa (job #2805025) | Cod sursa (job #2285726) | Cod sursa (job #270797) | Cod sursa (job #1004434)
#include<fstream>
#define N 100005
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[N];
int pas;
long Eval();
long Par();
long Termen();
long Factor();
long Numar()
{
int x=0;
while('0'<= s[pas] && s[pas]<='9')
{
x=x*10+s[pas]-48;
pas++;
}
return x;
}
long Factor()
{
int x;
if(s[pas]=='(')
{
pas++;
x=Eval();
pas++;
}
else
x=Numar();
return x;
}
long Termen()
{
int Nr;
Nr=Factor();
while(s[pas]=='*' || s[pas]=='/')
{
if(s[pas++]=='*')
Nr*=Factor();
else
Nr/=Factor();
}
return Nr;
}
long Eval()
{
int Nr;
Nr=Termen();
while(s[pas]=='+' || s[pas]=='-')
{
if(s[pas++]=='+')
Nr+=Termen();
else
Nr-=Termen();
}
return Nr;
}
int main()
{
fin>>s;
pas=0;
fout<<Eval()<<"\n";
return 0;
}