/****************************************************************************** Задание 8. *******************************************************************************/ #include #include // Функция для вычисления факториала long factorial(int n) { long result = 1; for (int i = 1; i <= n; i++) { result *= i; } return result; } int main() { char operation; // Переменная для хранения математической операции int num1, num2; // Переменные для хранения целых чисел // Запрос ввода математической операции от пользователя std::cout << "Введите математическую операцию (+, -, *, /, !, ^): "; std::cin >> operation; // Запрос ввода целых чисел от пользователя std::cout << "Введите первое целое число: "; std::cin >> num1; std::cout << "Введите второе целое число: "; std::cin >> num2; // Выполнение математической операции switch (operation) { case '+': std::cout << "Результат: " << num1 + num2 << std::endl; break; case '-': std::cout << "Результат: " << num1 - num2 << std::endl; break; case '*': std::cout << "Результат: " << num1 * num2 << std::endl; break; case '/': if (num2 != 0) { std::cout << "Результат: " << num1 / num2 << std::endl; } else { std::cout << "Ошибка: деление на ноль!" << std::endl; } break; case '!': if (num1 >= 0 && num2 >= 0) { std::cout << "Результат: " << factorial(num1) << std::endl; std::cout << "Результат: " << factorial(num2) << std::endl; } else { std::cout << "Ошибка: факториал не определен для отрицательных чисел или для двух аргументов!" << std::endl; } break; case '^': std::cout << "Результат: " << pow(num1, num2) << std::endl; break; default: std::cout << "Ошибка: неизвестная математическая операция!" << std::endl; break; } return 0; }