Pagini recente » Cod sursa (job #1835409) | Cod sursa (job #1562117) | Cod sursa (job #1744329) | Cod sursa (job #3254671) | Cod sursa (job #677970)
Cod sursa(job #677970)
#include <iostream>
#include <fstream>
#include <cctype>
#define IN "evaluare.in"
#define OUT "evaluare.out"
using namespace std;
string exp;
string::iterator it;
int unu(); int doi(); int trei();
void citire();
int main()
{
citire();
ofstream fout(OUT);
fout<<unu();
fout.close();
return 0;
}
int trei()
{
int x = 0;
if(*it == '(')
{
++it;
x = unu();
++it;
}
else
while(isdigit(*it) )
{
x = x *10 + (*it - '0');
++it;
}
return x;
}
int doi()
{
int r = trei();
while(*it == '*' || *it == '/' )
{
switch(*it)
{
case '*':
++it;
r *= trei();
break;
case '/':
++it;
r /= trei();
break;
}
}
return r;
}
int unu()
{
int r = doi();
while(*it == '+' || *it == '-')
{
switch(*it)
{
case '+':
++it;
r += doi();
break;
case '-':
++it;
r -= doi();
break;
}
}
return r;
}
void citire()
{
ifstream fin(IN);
fin>>exp;
fin.close();
it = exp.begin();
}