Для студентов МГТУ им. Н.Э.Баумана по предмету ИнформатикаПоиск минимума и максимума. Сортировка выбором. Указатели на функцию. Массивы указателей на функциюПоиск минимума и максимума. Сортировка выбором. Указатели на функцию. Массивы указателей на функцию
5,00510
2021-05-192024-08-10СтудИзба
Лабораторная работа: Поиск минимума и максимума. Сортировка выбором. Указатели на функцию. Массивы указателей на функцию
-82%
Описание
Отчет по лабораторной работе 17 « Поиск минимума и максимума. Сортировка выбором. Указатели на функцию. Массивы указателей на функцию» По курсу «Информатика»
Цель: познакомится с шаблонными функциями, указателями на функцию; написать программу по обработке массива с использованием шаблонных функций.
Задание:
1. Напишите программу сортировки массива из N (1..10 000) целых чисел из диапазона -1 000 000 до +1 000 000 по возрастанию. (Используйте алгоритм сортировки выбором минимального элемента). В отдельной функции организуйте ввод элементов массива: void InputArray(int input_data[], int length); В отдельной функции организуйте поиск индекса минимального элемента на подмассиве: int FindMinimumIndex(int input_data[], int first_index, int last_index); В отдельной функции реализуйте обмен элементов массива. void Swap(int &first_element, int &second_element); В отдельной функции организуйте сортировку. void SelectionSort(int input_data[], int length); В отдельной функции организуйте вывод элементов упорядоченного массива: void OutputArray(int input_data[], int length);
2. Везде где возможно замените сравнение на функцию: int Compare(void *first_pointer, void *second_pointer ) { int *first_element_int_pointer = (int *)first_pointer; int *second_element_int_pointer = (int *)second_pointer; return *first_element_int_pointer – *second_element_int_pointer; }
3. Везде где возможно замените вызов функции Compare вызовом функции по указателю на функцию. Сам указатель требуется передавать в функцию сортировки и дальше в функцию поиска минимального элемента из основной процедуры. Для сокращенной записи объявления переменных типа «указатель на функцию сравнения» используйте конструкцию typedef.
4. Объявите две различные функции сравнения: int CompareInt0to9(void *first_pointer, void *second_pointer); int CompareInt9to0(void *first_pointer, void *second_pointer); Сделайте это так, чтобы при использовании первой функции массив сортировался по возрастанию, а при использовании второй - по убыванию. Отлаженный в третьем пункте алгоритм сортировки и поиска минимума тут менять запрещено! Объявите в основной программе массив из функций типа CompareFunctionType. const int kFunctionsCount = 2; CompareFunctionType compare_function_pointers[kFunctionsCount]; Инициализируйте его элементы указателями на функции CompareInt0to9 и CompareInt9to0. Пусть в зависимости от желания пользователя в функцию сортировки массива передается либо одна, либо другая функция сравнения.
5. Требуется написать универсальную функцию, которая может сортировать массив независимо от типа его элементов.
![]()
Цель: познакомится с шаблонными функциями, указателями на функцию; написать программу по обработке массива с использованием шаблонных функций.
Задание:
1. Напишите программу сортировки массива из N (1..10 000) целых чисел из диапазона -1 000 000 до +1 000 000 по возрастанию. (Используйте алгоритм сортировки выбором минимального элемента). В отдельной функции организуйте ввод элементов массива: void InputArray(int input_data[], int length); В отдельной функции организуйте поиск индекса минимального элемента на подмассиве: int FindMinimumIndex(int input_data[], int first_index, int last_index); В отдельной функции реализуйте обмен элементов массива. void Swap(int &first_element, int &second_element); В отдельной функции организуйте сортировку. void SelectionSort(int input_data[], int length); В отдельной функции организуйте вывод элементов упорядоченного массива: void OutputArray(int input_data[], int length);
2. Везде где возможно замените сравнение на функцию: int Compare(void *first_pointer, void *second_pointer ) { int *first_element_int_pointer = (int *)first_pointer; int *second_element_int_pointer = (int *)second_pointer; return *first_element_int_pointer – *second_element_int_pointer; }
3. Везде где возможно замените вызов функции Compare вызовом функции по указателю на функцию. Сам указатель требуется передавать в функцию сортировки и дальше в функцию поиска минимального элемента из основной процедуры. Для сокращенной записи объявления переменных типа «указатель на функцию сравнения» используйте конструкцию typedef.
4. Объявите две различные функции сравнения: int CompareInt0to9(void *first_pointer, void *second_pointer); int CompareInt9to0(void *first_pointer, void *second_pointer); Сделайте это так, чтобы при использовании первой функции массив сортировался по возрастанию, а при использовании второй - по убыванию. Отлаженный в третьем пункте алгоритм сортировки и поиска минимума тут менять запрещено! Объявите в основной программе массив из функций типа CompareFunctionType. const int kFunctionsCount = 2; CompareFunctionType compare_function_pointers[kFunctionsCount]; Инициализируйте его элементы указателями на функции CompareInt0to9 и CompareInt9to0. Пусть в зависимости от желания пользователя в функцию сортировки массива передается либо одна, либо другая функция сравнения.
5. Требуется написать универсальную функцию, которая может сортировать массив независимо от типа его элементов.



Характеристики лабораторной работы
Предмет
Учебное заведение
Вариант
Просмотров
253
Размер
381,6 Kb
Список файлов
Лабораторая работа №17 (Поиск минимума и максимума).pdf

Ваше удовлетворение является нашим приоритетом, если вы удовлетворены нами, пожалуйста, оставьте нам 5 ЗВЕЗД и позитивных комментариев. Спасибо большое!