Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
klyuka
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 5
#1

Выполнить одно из указанных пользователем арифметических действий над двумя числами - C++

21.01.2014, 14:26. Просмотров 379. Ответов 5
Метки нет (Все метки)

Всем доброго дня! Помогите пожалуйста решить задачу.
Задача: Разработайте программу, которая бы выполняла одно из указанных пользователем арифметических действий над двумя числовыми значениями.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2014, 14:26     Выполнить одно из указанных пользователем арифметических действий над двумя числами
Посмотрите здесь:

C++ Выполнить над числами указанное действие и вывести результат.
C++ Программа выполнения арифметических действий с очень большим целыми числами
Реализация арифметических операций над вещественными числами C++
C++ Swich: реализовать все возможные операции над двумя целыми числами
Выполнить над числами указанное действие и вывести результат C++
Выполнить над квадратной матрицей А порядка n последовательность действий, указанную в задании C++
C++ Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами
C++ Вычислить сумму всех целых чисел, лежащих между двумя целыми числами, выбранными пользователем
Класс для выполнения арифметических операций над числами с учётом абсолютной и относительной погрешностей C++
Выполнить над прямоугольной матрицей последовательность действий C++
Выполнить над числами указанное действие C++
C++ Класс MyMath обеспечивающий выполнение операций сравнения над двумя вещественными числами

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TSed
19 / 19 / 1
Регистрация: 22.01.2013
Сообщений: 76
21.01.2014, 17:07     Выполнить одно из указанных пользователем арифметических действий над двумя числами #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
template <class T>
struct func{
    T add(T fNum, T sNum){
        return fNum + sNum;
    }
    T sub(T fNum, T sNum){
        return fNum - sNum;
    }
    T mul(T fNum, T sNum){
        return fNum * sNum;
    }
    T div(T fNum, T sNum){
        if (sNum == 0) {
            std::count<<"Error! Division by zero!"<<std::endl;
            exit(1);
        }
        return fNum / sNum;
    }
};
int main(){
    func<int> f;
    std::cout<<f.add(1,2)<<std::endl;
    system ("pause");
    return 0;
}
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
21.01.2014, 17:11     Выполнить одно из указанных пользователем арифметических действий над двумя числами #3
TSed, программа должна выполнять действие, выбираемое пользователем, а не жестко зашитое в коде...
Т.е. нужно организовать еще диалог по выбору одной из арифметических операций и ввода двух числовых значений.
TSed
19 / 19 / 1
Регистрация: 22.01.2013
Сообщений: 76
21.01.2014, 17:13     Выполнить одно из указанных пользователем арифметических действий над двумя числами #4
Extrim88, знаю, читал. Это просто пример шаблонных функций, диалог написать не трудно, надеялся что автор это сам сможет сделать.
klyuka
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 5
21.01.2014, 17:35  [ТС]     Выполнить одно из указанных пользователем арифметических действий над двумя числами #5
Цитата Сообщение от TSed Посмотреть сообщение
Extrim88, знаю, читал. Это просто пример шаблонных функций, диалог написать не трудно, надеялся что автор это сам сможет сделать.
Спасибо большое, дописал. Все работает
Kastaneda
Форумчанин
Эксперт С++
4258 / 2790 / 219
Регистрация: 12.12.2009
Сообщений: 7,119
Записей в блоге: 1
Завершенные тесты: 1
21.01.2014, 18:11     Выполнить одно из указанных пользователем арифметических действий над двумя числами #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот немного извращения
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <map>
 
#define OPS_TO_FUNC(name) name##func
 
#define CREATE_FUNCTION(name, op) \
    template <class T> \
    T OPS_TO_FUNC(name) (T left, T right) \
    { \
        return left op right; \
    }
 
enum Ops {Begin, Add, Sub, Mul, Div, End};
 
CREATE_FUNCTION (Add, +)
CREATE_FUNCTION (Sub, -)
CREATE_FUNCTION (Mul, *)
CREATE_FUNCTION (Div, /)
 
template <class T>
void init (std::map<Ops, T(*)(T, T)> &functions)
{
    functions[Add] = OPS_TO_FUNC(Add);
    functions[Sub] = OPS_TO_FUNC(Sub);
    functions[Mul] = OPS_TO_FUNC(Mul);
    functions[Div] = OPS_TO_FUNC(Div);
}
 
int main ()
{
    std::map<Ops, int(*)(int, int)> functions;
    init (functions);
 
    int left, right;
    std::cout << "Enter first operand: ";
    std::cin >> left;
    std::cout << "Enter second operand: ";
    std::cin >> right;
 
    std::cout << "Enter operation:\n\t1: +\n\t2: -\n\t3: *\n\t4: /\n";
 
    int operation = (int)Begin;
    do {
        std::cin >> operation;
    } while (!(operation > (int)Begin && operation < (int)End) &&
           std::cout << "Invalid input, repeat" << std::endl);
 
    std::cout << "Answer: " << functions[(Ops)operation](left, right) << std::endl;
}
Yandex
Объявления
21.01.2014, 18:11     Выполнить одно из указанных пользователем арифметических действий над двумя числами
Ответ Создать тему
Опции темы

Текущее время: 10:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru