Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите написать калькулятор в С++

x2dead Знаток (366), закрыт 1 неделю назад
Лучший ответ
Николай Веселуха Высший разум (368755) 1 месяц назад
 #include <iostream> 
using namespace std;

struct Operation {
static double add(const double a, const double b) {
return a + b;
}
static double subtract(const double a, const double b) {
return a - b;
}
static double multiply(const double a, const double b) {
return a * b;
}
static double divide(const double a, const double b) {
return a / b;
}
static double power(const double a, const double b) {
return exp(b * log(a));
}
};

struct Calculator {
void calc() const {
double a, b, result;
char op;
bool error;
while (true) {
error = false;
cout << ">>> ";
cin >> a >> op >> b;
switch (op) {
case '+':
result = Operation::add(a, b);
break;
case '-':
result = Operation::subtract(a, b);
break;
case '*':
result = Operation::multiply(a, b);
break;
case '/':
if (!b) {
puts("Division by zero.");
error = true;
break;
}
result = Operation::divide(a, b);
break;
case '^':
result = Operation::power(a, b);
if (isnan(result)) {
puts("Invalid argument.");
error = true;
}
break;
default:
cout << "Unknown operation: " << op << '\n';
error = true;
}
if (!error) {
cout << "<<< " << result << '\n';
}
}
}
};

int main() {
Calculator calculator;
calculator.calc();
}
Остальные ответы
Ушёл в закат Мудрец (14660) 1 месяц назад
если это "калькулятор" то какая науй формула, зачем она вообще нужна?
явно какие-то выдумки учителя которые ты разумеется нам не сможешь раскрыть из-за того что не слушал.
 #include <iostream> 
#include <cmath>
using namespace std;

int main()
{
char x;
int a, b;
const int e = 2.7;
setlocale(LC_ALL, "RUS");
cout << "Действие: ";
cin >> x;
cout << "Число a: ";
cin >> a;
cout << "Число b: ";
cin >> b;

switch (x) {
case '+': cout << sqrt(pow(e,b*log(a))) + b; break
case '-': cout << sqrt(pow(e, b * log(a))) - b; break
case '*': cout << sqrt(pow(e, b * log(a))) * b; break
case '/': cout << sqrt(pow(e, b * log(a))) / b; break
case '^': cout << pow(sqrt(pow(e, b * log(a))),b);
}
}
чё кароче в бошку взбрело то и написал
x2deadЗнаток (366) 1 месяц назад
Вот именно этого я и не понял.. обычный калькулятор у меня не вызвал бы сложности
Ушёл в закат Мудрец (14660) x2dead, учитель вообще ниче не говорил?
V̲i̲s̲t̲a̲s̲t̲e̲r̲Искусственный Интеллект (263690) 1 месяц назад
Это выражение, выражает возведение числа a в степень b через экспоненту и логарифм. Видимо специально задание такое, оно уже здесь фигурировало, практикумы-то одинаковые ... И разумеется делается это элементарно
Ушёл в закат Мудрец (14660) V̲i̲s̲t̲a̲s̲t̲e̲r̲, а ну да, я так и понял??
kaiu Высший разум (117582) 1 месяц назад
Использовать формулу, не значит использовать её везде. Вам задана операция a^b (a в степени b) и сказано, что надо использовать эту формулу, а не pow
Похожие вопросы