В основном я пытаюсь ответить на вопрос, основанный на выполнении вычислений, которые могут реализовать арифметические c операции, чтобы калькулятор мог вычислять базовые c выражения, такие как:
5 4 + 3 2 - / // should be 9
3 4 5 6 + + + // should be 18
1.23 4.5 67 / * // should be 0.0826119
It Другими словами, напишите программу для эмуляции вычислений, выполненных на калькуляторе HP-35. Как я могу сделать в C ++. У меня возникли проблемы с этим вопросом, но я до сих пор его начал. Вот код, который у меня есть, который я начал до сих пор:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
class HPStack {
public:
double pop() {
return 0;
}
void push(double d) {
}
char peek() {
return 0;
}
};
int main(int argc, char* argv[])
{
HPStack stack;
string line;
while (getline(cin, line)) {
stringstream expression(line);
string token;
while (expression >> token) {
if (isdigit(token[0])) {
stack.push(atof(token.data()));
}
else if (token=="+") { // similar for other arithmetic ops
double x = stack.pop();
double y = stack.pop();
stack.push(y+x);
}
}
cout << stack.peek();
}
return 0;
}