С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
1

Написать шаблонную функцию max(a, b)

24.03.2018, 17:06. Показов 2849. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Напишите родовую функцию max(a, b), где a и b будут произвольными типами данных, которые можно сравнить с помощью операции <.

В этой задаче вам будут вводиться два значения одного из трёх типов:

целые числа;
символы;
дроби.
Ваша программа должна найти наибольшее значение из двух предложенных, используя родовую функцию max.

Формат входных данных
В первой строке с клавиатуры вводится индикатор, для какого типа данных нужно будет найти максимум — строка «INT» (целое число), или строка «CHAR» (символ), или строка «FRACTION» (дробь).

В следующей строке через пробел даются две переменных указанного типа. Символы имеют ASCII-коды в диапазоне от 32 до 126, числа по модулю не превышают 109, знаменатель не равен 0.

Формат выходных данных
Выведите на экран максимум из двух значений. Дроби сокращать не нужно.
Примеры
входные данные
INT
5 3
выходные данные
5
входные данные
FRACTION
1/4 1/2
выходные данные
1/2
входные данные
CHAR
f q
выходные данные
q
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2018, 17:06
Ответы с готовыми решениями:

Написать шаблонную функцию
Здравстсвуйте,нужно переделать функцию под шаблонную.Я вроде как сделал,но компилятор...

Написать шаблонную функцию std::count
Добрый день, нужно написать шаблонную функцию, которая будет вести себя как std::count. Буду...

Как правильно написать шаблонную функцию?
Как правильно написать функцию template ? в функции main не работает #include &quot;stdafx.h&quot;...

Написать шаблонную функцию, сортирующую стек
Как мне сделать чтобы я мог вводить значения любого типа? Писал что то типа: template&lt;typename...

2
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
28.03.2018, 07:38  [ТС] 2
Есть идеи?
0
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
28.03.2018, 08:09 3
Лучший ответ Сообщение было отмечено Pavlin234 как решение

Решение

Цитата Сообщение от Pavlin234 Посмотреть сообщение
родовую функцию
это значит "шаблонная функция"? впервые вижу такое название. гугл выдал только одну полезную ссылку, и та не открывается. насколько я поняла из названия + той ссылки, это значит "шаблонная".

Добавлено через 24 минуты
для выхода из программы введите EXIT
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
#include <iostream>
#include <string>
using namespace std;
 
template<class T>
T& max(T &a, T &b) {
    return (a < b? b : a);
}
 
class Fraction {
private:
    int a, b;
public:
    Fraction(int a, int b) {
        this->a = a;
        this->b = b;
    }
    bool operator<(const Fraction &right) const {
        return (static_cast<double>(a)/b) < (static_cast<double>(right.a)/right.b);
    }
    friend ostream& operator<<(ostream &out, const Fraction &fraction) {
        out << fraction.a << "/" << fraction.b;
        return out;
    }
};
 
int main() {
    int a1, b1, a2, b2;
    char ch1, ch2;
    string type;
    
    do {
        cout << "Type > ";
        cin >> type;
        if (type == "INT") {
            cin >> a1 >> b1;
            cout << max(a1, b1) << endl;
        } else if (type == "CHAR") {
            cin >> ch1 >> ch2;
            cout << max(ch1, ch2) << endl;
        } else if (type == "FRACTION") {
            scanf("%d/%d %d/%d", &a1, &b1, &a2, &b2);
            cout << max(Fraction(a1, b1), Fraction(a2, b2)) << endl;
        }
    } while (type != "EXIT");
    return 0;
}
0
28.03.2018, 08:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2018, 08:09
Помогаю со студенческими работами здесь

Написать шаблонную функцию для ввода значений
Есть класс, using std::cout; using std::cin; using std::cerr; using std::endl; ...

Написать шаблонную функцию, для обработки матриц любого типа
Написать ф-цию по матрицам,превратить в шаблон с тем,чтобы ф-ция обрабатывала матрицу любого типа.

Написать шаблонную функцию, меняющую местами значения двух переданных в нее параметров
Доброго всем дня! Ребят помогите написать функцию, меняющую местами значения двух переданных в нее...

Написать шаблонную функцию для универсальной отрисовки данных, содержащихся в объектах, засунутых в вектор
Существует базовый класс и два класса наследника от него. Хочу сделать функцию для универсальной...

Написать шаблонную, перегруженную функцию которая возвращает минимальный из трех передаваемых в нее параметров
Доброго всем дня! Помогите пожалуйста написать шаблонную, перегруженную функцию которая возвращает...

Написать шаблонную функцию, принимающую три параметра и возвращающую их среднее арифметическое как float
Функция f6, которая принимает три аргумента определенного типа (int, double или/ char) и возвращает...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru