Pagini recente » Cod sursa (job #2424913) | Cod sursa (job #1850091) | Cod sursa (job #628074) | Cod sursa (job #1619070) | Cod sursa (job #2277854)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
long ix;
string exp;
const string num = "0123456789";
long termen();
long factor();
long eval();
long eval() {
long r = termen();
if (exp[ix] == '+' ) {
ix++;
r += termen();
} else if (exp[ix] == '-') {
ix++;
r -= termen();
}
return r;
}
long termen() {
long r = factor();
if (exp[ix] == '*') {
ix++;
r *= factor();
} else if (exp[ix] == '/') {
ix++;
r /= factor();
}
return r;
}
long factor() {
long r = 0;
if (exp[ix] == '(') {
ix++;
r = eval();
ix++;
} else {
while (exp[ix] >= '0' && exp[ix] <= '9') {
r = r * 10 + exp[ix] - '0';
ix++;
}
}
return r;
}
int main() {
ifstream iff("evaluare.in");
ofstream off("evaluare.out");
iff >> exp;
ix = 0;
off << eval();
return 0;
}