Pagini recente » Cod sursa (job #644849) | Cod sursa (job #82470) | Cod sursa (job #2584946) | Cod sursa (job #3235979) | Cod sursa (job #1881379)
#include <fstream>
using namespace std;
ofstream fout("evaluare.out");
string e;
int i = 0;
void Citire()
{
ifstream fin("evaluare.in");
getline( fin, e );
fin.close();
}
int EvaluareFactor();
int EvaluareTermen();
int EvaluareExpresie();
int EvaluareFactor()
{
int t;
if ( e[i] == '(' )
{
++i;
t = EvaluareExpresie();
}
else
t = e[i] - '0';
++i;
return t;
}
int EvaluareTermen()
{
int t = EvaluareFactor();
while ( i < e.length() && ( e[i] == '*' || e[i] == '/'))
{
++i;
if ( e[i] == '*' )
t *= EvaluareFactor();
else
t /= EvaluareFactor();
}
}
int EvaluareExpresie()
{
int t;
t = EvaluareTermen();
while ( i < e.length() && ( e[i] == '+' || e[i] == '-' ) )
{
++i;
if (e[i] == '+')
t += EvaluareTermen();
else
t -= EvaluareTermen();
}
return t;
}
int main()
{
Citire();
fout << EvaluareExpresie();
return 0;
}