Напиши консольное приложение, которое будет выполнять функции простого калькулятора с помощью языка С++. Программа должна запрашивать два целых или вещественных числа, а также знак математической операции. Программа должна поддерживать следующие операции: сложение, вычитание, деление, умножение, возведение в степень. При вычислении частного чисел программа должна проверять не пытается ли пользователь осуществить деление на 0. При делении на 0 в консоль должно выводиться сообщение о невозможности вычисления частного. Приложение должно иметь возможность производить вычисление за вычислением без необходимости перезапускать программу.
double num1;
cout << "Введите первое число: ";
cin >> num1;
Аналогичным образом можно запросить второе число и знак операции.
После получения чисел и знака операции следует выполнить соответствующую математическую операцию. Для этого можно использовать конструкцию switch-case, где значение переменной "operation" выступит в качестве селектора. Внутри каждого case следует выполнить соответствующую операцию и вывести результат на экран. Например, для операции сложения код может выглядеть следующим образом:
case '+':
cout << "Сумма чисел равна: " << num1 + num2 << endl;
break;
Однако перед выполнением математических операций следует проверить, что пользователь не попытается делить на ноль. Для этого можно использовать условное выражение if, которое проверяет знак операции и второе число. Если знак операции равен "/" и второе число равно нулю, следует вывести сообщение о невозможности вычисления частного и прекратить выполнение текущей итерации цикла. Например:
if (operation == '/' && num2 == 0) {
cout << "Невозможно выполнить деление на ноль!" << endl;
break;
}
По окончании выполнения математической операции следует запросить у пользователя, хочет ли он продолжить вычисления. Если пользователь вводит "n" или "N", следует изменить значение переменной "continueCalculation" на false, чтобы завершить цикл. Для этого можно использовать стандартный ввод/вывод следующим образом:
char continueInput;
cout << "Хотите продолжить вычисления? (y/n): ";
cin >> continueInput;
if (continueInput == 'n' || continueInput == 'N') {
continueCalculation = false;
}
Изначальным значением переменной "continueCalculation" должно быть true, чтобы цикл запустился при первом выполнении программы.
Таким образом, завершенное решение задачи будет выглядеть примерно следующим образом:
cpp
#include <iostream>
#include <cmath>
using namespace std;
int main() {
bool continueCalculation = true;
while (continueCalculation) {
double num1, num2;
char operation;
cout << "Введите первое число: ";
cin >> num1;
cout << "Введите второе число: ";
cin >> num2;
cout << "Введите знак математической операции (+, -, *, /, ^): ";
cin >> operation;
switch(operation) {
case '+':
cout << "Сумма чисел равна: " << num1 + num2 << endl;
break;
case '-':
cout << "Разность чисел равна: " << num1 - num2 << endl;
break;
case '*':
cout << "Произведение чисел равно: " << num1 * num2 << endl;
break;
case '/':
if (num2 == 0) {
cout << "Невозможно выполнить деление на ноль!" << endl;
break;
}
cout << "Частное чисел равно: " << num1 / num2 << endl;
break;
case '^':
cout << "Возведение в степень равно: " << pow(num1, num2) << endl;
break;
default:
cout << "Неправильный знак операции!" << endl;
break;
}
char continueInput;
cout << "Хотите продолжить вычисления? (y/n): ";
cin >> continueInput;
if (continueInput == 'n' || continueInput == 'N') {
continueCalculation = false;
}
}
return 0;
}
Это примерное решение проблемы, которое выполняет все основные требования. Однако следует учесть, что приведенное решение не предусматривает проверку правильности введенных пользователем данных. Например, если пользователь вводит неверный знак операции или не число, программа может работать некорректно. В реальном приложении следует добавить проверку правильности введенных данных и сообщать пользователю об ошибках.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет