Pagini recente » Cod sursa (job #1846110) | Cod sursa (job #1243843) | Cod sursa (job #1739917) | Cod sursa (job #1706447) | Cod sursa (job #2777852)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("evaluare.in");
ofstream fout ("evaluare.out");
char cc;
int citire_caracter ()
{
if (fin>>cc)
return 1;
return 0;
}
int citire_numar ()
{
int nr=0;
while (cc>='0' && cc<='9')
{
nr=nr*10+cc-'0';
if (citire_caracter()==0)
break;
}
return nr;
}
int terms ();
int factors ()
{
int nr;
if (cc=='(')
{
citire_caracter();
nr=terms();
citire_caracter();
}
else
nr=citire_numar();
if (cc=='*')
{
citire_caracter();
nr=nr*factors();
}
else if (cc=='/')
{
citire_caracter();
nr=nr/factors();
}
return nr;
}
int terms ()
{
int nr;
nr=factors();
if (cc=='+')
{
citire_caracter();
nr=nr+terms();
}
else if (cc=='-')
{
citire_caracter();
nr=nr-terms();
}
return nr;
}
int main()
{
char n;
int nr=0;
fin >> cc;
fout << terms();
return 0;
}