
Напиши свой собственный калькулятор, который будет содержать функции: для сложения двух чисел,
вычитание для двух чисел, умножение для двух чисел, деление для двух чисел, возведение числа в квадрат, факториал числа. Все числа передаются вещественные! ЭТО С++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Ответы на вопрос

Ответ:
#include <iostream>
#include <cmath>
using namespace std;
#include <string>
int factorial(int i)
{
if (i==0) return 1;
else return i*factorial(i-1);
}
int main() {
float a, b;
string operation;
cout << "Введите два числа в одну строку через пробел: " << endl;
cin >> a >> b;
cout << "Выберите операцию(+, -, *, /, fact, **///при выборе факториала или возведения в квадрат операция будет проделана с первым числом" << endl;
cin >> operation;
if (operation == "+") {
cout << a+b << endl;
} else if (operation == "-") {
cout << a-b << endl;
} else if (operation == "*") {
cout << a*b << endl;
} else if(operation == "/") {
cout << a/b << endl;
} else if (operation == "fact"){
cout << factorial(a) << endl;
} else if (operation=="**") {
cout << pow(a, 2) << endl;
}
}
Объяснение:



Конечно, вот пример простого калькулятора на C++, который включает в себя указанные вами функции:
cpp#include <iostream>
#include <cmath>
// Функция для сложения двух чисел
double add(double a, double b) {
return a + b;
}
// Функция для вычитания двух чисел
double subtract(double a, double b) {
return a - b;
}
// Функция для умножения двух чисел
double multiply(double a, double b) {
return a * b;
}
// Функция для деления двух чисел
double divide(double a, double b) {
if (b != 0) {
return a / b;
} else {
std::cout << "Ошибка: деление на ноль!" << std::endl;
return 0.0; // Возвращаем 0 в случае деления на ноль
}
}
// Функция для возведения числа в квадрат
double square(double a) {
return a * a;
}
// Функция для вычисления факториала числа
double factorial(double n) {
if (n < 0) {
std::cout << "Ошибка: факториал отрицательного числа не определен!" << std::endl;
return 0.0; // Возвращаем 0 в случае отрицательного аргумента
} else if (n == 0) {
return 1.0; // Факториал 0 равен 1
} else {
double result = 1.0;
for (int i = 1; i <= n; ++i) {
result *= i;
}
return result;
}
}
int main() {
double num1, num2;
char operation;
std::cout << "Введите первое число: ";
std::cin >> num1;
std::cout << "Введите операцию (+, -, *, /, ^, !): ";
std::cin >> operation;
if (operation != '!') {
std::cout << "Введите второе число: ";
std::cin >> num2;
}
double result;
switch (operation) {
case '+':
result = add(num1, num2);
break;
case '-':
result = subtract(num1, num2);
break;
case '*':
result = multiply(num1, num2);
break;
case '/':
result = divide(num1, num2);
break;
case '^':
result = square(num1);
break;
case '!':
result = factorial(num1);
break;
default:
std::cout << "Ошибка: недопустимая операция!" << std::endl;
return 1; // Возвращаем ненулевой код ошибки
}
std::cout << "Результат: " << result << std::endl;
return 0; // Возвращаем нулевой код завершения
}
Этот код предоставляет интерфейс для ввода двух чисел и операции, а затем вызывает соответствующую функцию в зависимости от выбранной операции.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili