Pagini recente » Cod sursa (job #1747901) | Cod sursa (job #236693) | Cod sursa (job #3133026) | Cod sursa (job #1936526) | Cod sursa (job #2712037)
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
string str;
string::iterator i;
int eval();
int mult();
int nr();
int eval() {
int res = mult();
while(*i == '+' || *i == '-') {
if(*i == '+') {
i++;
res += mult();
} else {
i++;
res -= mult();
}
}
return res;
}
int mult() {
int res = nr();
while(*i == '*' || *i == '/') {
if(*i == '*') {
i++;
res *= nr();
} else {
i++;
res /= nr();
}
}
return res;
}
int nr() {
if(*i == '(') {
i++;
int res = eval();
i++;
return res;
}
int res = 0;
while('0' <= *i && *i <= '9') {
res = res * 10 + *i - '0';
i++;
}
return res;
}
int main() {
f >> str;
str.push_back('x');
i = str.begin();
g << eval() << "\n";
return 0;
}