- •Лабораторная работа 7
- •Лабораторная работа 8
- •Примеры выполнения перегрузки функции и использования шаблона функции
- •Лабораторная работа №9
- •Форматирование данных
- •Пример.Операции с текстовым файлом.
- •Пример. Операции с двоичным файлом
- •Лабораторная работа 12
- •Лабораторная работа 13
- •Лабораторная работа 14
- •Лабораторная работа №10(дерево)
- •Лабораторная работа 11
- •Ввод – вывод потоковый
- •Закрытие файла
- •Методы для управления ошибками потоков
Лабораторная работа 8
Тема: Функция - шаблон. Перегрузка операторов. Перегрузка функций. Рекурсивные функции.
Цель.
получить навыки по разработке и применению функции – шаблона
получить навыки по использованию нестандартных типов;
получить практический опыт по разработке рекурсивных функций.
Задание
Разработайте функцию сортировки массива и протестируйте ее.
Перегрузите функцию сортировки для каждого из указанных в варианте типов элементов.
Разработайте функцию шаблон для сортировки элементов произвольного типа.
Перегрузите (операцию) операции сравнения, которые используются в алгоритме сортировки для сравнения значений структуры. В сравнении значений типа структура будут использоваться ключи сортировки, которые в структуре определены курсивом.
Реализуйте рекурсии.
Для первого задания на рекурсии разработайте функцию. Опишите рекурсивную зависимость в виде табличной функции. Определите глубину рекурсии.
Для второй задачи разработайте рекурсивную функцию для обработки списковой структуры согласно варианту. Информационная часть узла – простого типа – целого. Для создания списка может быть разработана простая или рекурсивная функция по желанию (в тех вариантах, где не требуется рекурсивное создание списка).
Разработайте программу, демонстрирующую работу всех функций.
Варианты
Номер |
Сортировка |
Перегрузка функции для типов |
Рекурсия |
1 |
обменная |
Int, double, Struct{int x; int y;} |
|
2 |
вставками |
Short, float, Struct{double x; int y;} |
|
3 |
выбора |
Char, int, Struct{short x; int y;} |
|
4 |
шейкер |
Char,double, Struct{int x; char y;} |
|
5 |
Улучшенная обменная сортировка |
Int, short, Struct{unsigned x; int y;} |
|
6 |
Вставками с использованием второго массива. |
Unsigned long, double, Struct{char x[20]; doble y; } |
|
7 |
Сортировка вставками |
Int, short, Struct{unsigned x; int y; char z} |
|
8 |
Поразрядная сортировка посредством второго массива |
Int, long, Struct{float x; double y; } |
|
9 |
Обменная |
Double, char, Struct{long x; char y; } |
|
10 |
Шейкер сортировка |
Unsigned short, long, Struct{long x; double y; } |
|
11 |
Сортировать по правилу: положительные, отрицательные, нули |
Unsigned long, long, Struct{char x; double y; } |
|
12 |
Сортировка методом подсчета. |
Unsignedint, long, Struct{chsr x[5]; double y; } |
|
13 |
Вставками |
Unsigned short,float , Struct{long x; double y; } |
|
14 |
Шейкер сортировка |
Unsigned short, unsigned long, Struct{long x; double y; } |
|
15 |
Метод Хоара |
short, long, float Struct{char x; int y; } |
|
16 |
Обменная |
Unsigned short, long, Struct{long x; double y; } |
|
