Pagini recente » Cod sursa (job #2402170) | Cod sursa (job #3244279) | Cod sursa (job #2244464) | Cod sursa (job #1824392) | Cod sursa (job #970327)
Cod sursa(job #970327)
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int eval();
int term();
int fact();
int main()
{
g<<eval();
return 0;
}
int eval()
{
int r = term();
char x = f.peek();
while(x == '+'||x == '-'){
f.get(x);
if(x == '+')
r += term();
else
r -= term();
x = f.peek();
}
return r;
}
int term()
{
int r = fact();
char x = f.peek();
while(x == '*' || x=='/'){
f.get(x);
if(x == '*')
r *= fact();
else
r /= fact();
x = f.peek();
}
return r;
}
int fact()
{
int r = 0;
char x = f.peek();
if(x == '('){
f.get(x);
r = eval();
f.get(x);
}
else
f >> r;
return r;
}