Pagini recente » Cod sursa (job #1259963) | Cod sursa (job #2451740) | Cod sursa (job #137025) | Cod sursa (job #1090114) | Cod sursa (job #2946875)
#include <fstream>
using namespace std;
long long expresie(),termen(),factor();
string cuv;
int p=0;
long long expresie()
{
long long val=termen();
while(cuv[p]=='+' || cuv[p]=='-')
{
if(cuv[p]=='+')
{
p++;
val=val+termen();
}
else
{
p++;
val=val-termen();
}
}
return val;
}
long long termen()
{
long long val=factor();
while(cuv[p]=='*' || cuv[p]=='/')
{
if(cuv[p]=='*')
{
p++;
val=val*factor();
}
else
{
p++;
val=val/factor();
}
}
return val;
}
long long factor()
{
long long val=0;
if(cuv[p]=='(')
{
p++;
val=expresie();
p++;
}
else
{
while(cuv[p]>='0' && cuv[p]<='9')
{
val=val*10+(cuv[p]-'0');
p++;
}
}
return val;
}
int main()
{
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
cin>>cuv;
cuv+='$';
cout<<expresie();
return 0;
}