Для студентов МГТУ им. Н.Э.Баумана по предмету ИнформатикаЛабораторая работа №17 (Поиск минимума и максимума) - Вариант 19Лабораторая работа №17 (Поиск минимума и максимума) - Вариант 19
5,0051
2021-05-192021-05-19СтудИзба
Лабораторная работа: Лабораторая работа №17 (Поиск минимума и максимума) - Вариант 19 вариант 19
-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. Требуется написать универсальную функцию, которая может сортировать массив независимо от типа его элементов.
Характеристики лабораторной работы
Предмет
Учебное заведение
Вариант
Просмотров
245
Покупок
9
Размер
381,6 Kb
Список файлов
Ваше удовлетворение является нашим приоритетом, если вы удовлетворены нами, пожалуйста, оставьте нам 5 ЗВЕЗД и позитивных комментариев. Спасибо большое!