Pagini recente » Cod sursa (job #3133062) | Cod sursa (job #949937) | Cod sursa (job #1708355) | Cod sursa (job #3133059) | Cod sursa (job #796719)
Cod sursa(job #796719)
#include <fstream>
using namespace std;
const int Nmax = 100010;
char Str[ Nmax ];
char *p = Str;
ifstream F("evaluare.in");
ofstream G("evaluare.out");
int Fact();
int Term();
int Eval();
int Fact()
{
int Rez = 0;
if ( *p == '(' )
{
++p;
Rez = Eval();
++p;
}
else
{
for ( ; *p >= '0' && *p <= '9' ; ++p )
Rez = Rez * 10 + *p - '0';
}
return Rez;
}
int Term()
{
int Rez = Fact();
while ( *p == '*' || *p == '/' )
if ( *p == '*' )
++p , Rez *= Term() ;
else
++p , Rez /= Term();
return Rez;
}
int Eval()
{
int Rez = Term();
while ( *p == '+' || *p == '-' )
if ( *p == '+' )
++p , Rez += Term() ;
else
++p , Rez -= Term();
return Rez;
}
int main( void )
{
F.getline( Str , Nmax , '\n' );
G<<Eval()<<'\n';
return 0;
}