|
5Лабораторная работа Перегрузка функций и операторов. Шаблоны функций. Цель работы
5-Лабораторная работа: Перегрузка функций и операторов. Шаблоны функций.
Цель работы: На языке программирования С++ существует такое понятие как ООП (объектно-ориентированное программирование). Данное понятие включает в себя такие понятие как перегрузка функций и операторов, шаблоны функций. Данные понятия даёт полное представление об высоком уровне программирования на языке С++.
Постановления задачи:
По заданным вариантам выполнить следующие действия:
- Выполнить задания по таблице для перегрузки функций.
- Выполнить задания по таблице для перегрузки операторов.
- Выполнить задания по таблице для шаблонов функций.
Перегрузка функций
1
| Перегрузить функцию максимума для двух чисел (использовать int, float, double);
| 2
| Перегрузить функцию минимума для двух чисел (использовать int, float, double);
| 3
| Перегрузить функцию суммы для двух чисел (использовать int, float, double);
| 4
| Перегрузить функцию вычитания для двух чисел (использовать int, float, double);
| 5
| Перегрузить функцию максимума для трех чисел (использовать int, float, double);
| 6
| Перегрузить функцию минимума для трех чисел (использовать int, float, double);
| 7
| Перегрузить функцию суммы для трех чисел (использовать int, float, double);
| 8
| Перегрузить функцию вычитания трех двух чисел (использовать int, float, double);
| 9
| Перегрузить функцию максимума для четырех чисел (использовать int, float, double);
| 10
| Перегрузить функцию минимума для четырех чисел (использовать int, float, double);
| 11
| Перегрузить функцию суммы для четырех чисел (использовать int, float, double);
| 12
| Перегрузить функцию вычитания для четырех чисел (использовать int, float, double);
| 13
| Перегрузить функцию максимума для двух чисел (использовать int, float, double);
| 14
| Перегрузить функцию минимума для двух чисел (использовать int, float, double);
| 15
| Перегрузить функцию суммы для двух чисел(использовать int, float, double);
| 16
| Перегрузить функцию вычитания для двух чисел (использовать int, float, double);
| 17
| Перегрузить функцию определения количества четных чисел для двух чисел (использовать int, float, double);
| 18
| Перегрузить функцию определения количества нечетных чисел для двух чисел (использовать int, float, double);
| 19
| Перегрузить функцию определения количества положительных чисел для двух чисел (использовать int, float, double);
| 20
| Перегрузить функцию определения количества отрицательных чисел для двух чисел (использовать int, float, double);
|
Перегрузка операторов
1
| Перегрузить оператор + для двух комплексных чисел;
| 2
| Перегрузить оператор + для двух дробных чисел;
| 3
| Перегрузить оператор - для двух комплексных чисел;
| 4
| Перегрузить оператор - для двух дробных чисел;
| 5
| Перегрузить оператор * для двух комплексных чисел;
| 6
| Перегрузить оператор * для двух дробных чисел;
| 7
| Перегрузить оператор / для двух комплексных чисел;
| 8
| Перегрузить оператор / для двух дробных чисел;
| 9
| Перегрузить оператор ++ для одномерных массивов;
| 10
| Перегрузить оператор ++ для двухмерных массивов;
| 11
| Перегрузить оператор -- для одномерных массивов;
| 12
| Перегрузить оператор -- для двухмерных массивов;
| 13
| Перегрузить оператор + элементов для двух одномерных массивов;
| 14
| Перегрузить оператор - элементов для двух одномерных массивов;
| 15
| Перегрузить оператор * элементов для двух одномерных массивов;
| 16
| Перегрузить оператор / элементов для двух одномерных массивов;
| 17
| Перегрузить оператор + для двух целых чисел;
| 18
| Перегрузить оператор - для двух целых чисел;
| 19
| Перегрузить оператор * для двух целых чисел;
| 20
| Перегрузить оператор / для двух целых чисел;
|
Шаблон функций
Задачи
| 1
| Создать шаблонную функцию для возведения в степень (степень может быть только целым числом), которая принимает два аргумента: число и степень. Число может иметь только тип int, float, double или char. Любой другой тип или модификация указанных должна считаться ошибочным значением и вывести соответствующее сообщение. Степень – только целое число.
| 2
| Создать шаблонную функцию для суммы трех значений одного типа. Если тип – числовой, то должна выйти сумма чисел; если тип – строковый, должно выйти объединенное значение строк/символов.
| 3
| Создать шаблонную функцию для вычисления синуса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 4
| Создать шаблонную функцию для вычисления косинуса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 5
| Создать шаблонную функцию для вычисления тангенса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 6
| Создать шаблонную функцию для вычисления котангенса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 7
| Создать шаблонную функцию для вычисления арксинуса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 8
| Создать шаблонную функцию для вычисления арккосинуса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 9
| Создать шаблонную функцию для вычисления арктангенса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 10
| Создать шаблонную функцию для вычисления арккотангенса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 11
| Создать шаблонную функцию для вычисления суммы трех значений одного типа. Данные три значения могут быть типа int, float, double, char и char* (например, ''25'', ''12'', ''45''). Результат должен выйти как числовое значение
| 12
| Создать шаблонную функцию, принимающую два аргумента одинакового типа. Если оба аргумента – типа int, то функция должна вывести их сумму; если они – типа float или double, функция должна вывести их произведение; если они – типа char, функция должна вывести символ, код которого соответствует усредненному значению кодов данных аргументов; если они – типа char * (массивы символов), то функция должна вывести те символы, которые встречаются в обоих массивах.
| 13
| Создать шаблонную функцию, принимающую два аргумента одинакового типа. Если оба аргумента – типа int, то функция должна вывести их произведение; если они – типа float или double, функция должна вывести их разность; если они – типа char, функция должна вывести символ, код которого соответствует удвоенному значению суммы кодов данных аргументов; если они – типа char * (массивы символов), то функция должна вывести те символы, которые встречаются в обоих массивах.
| 14
| Создать шаблонную функцию, принимающую два аргумента одинакового типа. Если оба аргумента – типа int, то функция должна вывести первое число, возведенное в степень «второе_число»; если они – типа float или double, функция должна вывести модуль от их разности; если они – типа char, функция должна вывести символ, код которого соответствует значению (сумма_кодов_обоих_аргументов + 64); если они – типа char * (массивы символов), то функция должна вывести те символы, которые встречаются только в одном массиве (может быть несколько повторений символа внутри массива).
| 15
| Создать шаблонную функцию, принимающую два аргумента одинакового типа. Если оба аргумента – типа int, то функция должна вывести (первое_число * 2 + второе_число * -1); если они – типа float или double, функция должна вывести (модуль_от_их_разности * -2 - 2); если они – типа char, функция должна вывести символ, код которого соответствует значению (модуль_от(сумма_кодов_обоих_аргументов * 2 – 120)); если они – типа char * (массивы символов), то функция должна вывести те символы, которые встречаются только в одном массиве и только один раз.
| 16
| Создать шаблонную функцию для возведения в степень (степень может быть только целым числом), которая принимает два аргумента: число и степень. Число может иметь только тип int, float, double или char. Любой другой тип или модификация указанных должна считаться ошибочным значением и вывести соответствующее сообщение. Степень – только целое число.
| 17
| Создать шаблонную функцию для суммы трех значений одного типа. Если тип – числовой, то должна выйти сумма чисел; если тип – строковый, должно выйти объединенное значение строк/символов.
| 18
| Создать шаблонную функцию для вычисления синуса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 19
| Создать шаблонную функцию для вычисления косинуса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
| 20
| Создать шаблонную функцию для вычисления тангенса числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
|
Образец__№_1.'>Перегрузка функций
Образец №1. Перегрузить функцию деления для двух чисел (использовать int, float, double). Решения задачи №1.
Перегрузка операторов
Базовый уровень
Образец №2. Перегрузить оператор – для объектов класса.
Решения задачи №2.
Перегрузка операторов
Образец №3. Перегрузить оператор < для объектов класса.
Решения задачи №3.
Шаблон функций
Образец №4. Создать шаблонную функцию для вычисления логарифма числа. Ограничение: число иметь только тип int, float или double. При использовании любого другого типа должно выдаваться соответствующее сообщение.
Решения задачи №4.
|
|
|