Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гурик / Лабораторная работа №5 (2) — копия (1).docx
Скачиваний:
1
Добавлен:
01.04.2022
Размер:
1.01 Mб
Скачать

Лабораторная работа №5

«Алгоритмы обработки одномерных массивов. Алгоритмы сортировки»

Оглавление

Y

1. Задание на лабораторную работу 3

2. Формализация 5

3. Заставка к лабораторной работе 5

4. Схема алгоритма решения задачи 6

5. Листинг программы 15

5.1 Листинг основной программы 15

.2 Листинг dll библиотеки 16

6 Тестирование программы 20

Список использованной литературы: 22

  1. Задание на лабораторную работу

Задача: Разработать проект с двумя формами. Первая форма – заставка к приложению, вторая – решение задания лабораторной работы. Заставка в первой форме должна быть реализована при помощи надписи. Кроме этого разработать функцию VSTAVKA, PROSOYVSTAVKA, entermas,kiks и outputmas типа void , которые будут находиться в dll библиотеке.

Дан целочисленный массив, элементы которого могут принимать неотрицательные целые значения до 10000 включительно. Необходимо произвести метод вставки элемента массива и отдельно вывести массив с данным результатом, а также произвести сортировку исходного массива методом простой вставки и также вывести массив с данным результатом.

Вставка элементов массива осуществляется следующим образом:

1) Первые k элементов массива остаются без изменения;

2) Все элементы, начиная с (k - 1)-го необходимо сдвинуть вправо, чтобы

освободить место для вставляемого элемента;

3) Элементу с номером k присвоить значение m. Количество элементов

массива увеличить на 1.

Сортировка массива простой вставкой осуществляется следующим образом:

Пусть имеется массив a[1], a[2], ..., a[n]. Пусть элементы a[1], a[2], ..., a[i

– 1] уже отсортированы, и пусть имеем входную последовательность a[i], a[i

+ 1], ..., a[n]. На каждом шаге, начиная с i = 2 и увеличивая i на единицу, берем i-й элемент входной последовательности и вставляем его на подходящее место в уже отсортированную часть последовательности. Вставляемый элемент - х. Начальный массив 32 64 9 30 87 14 2 76.

i = 2 х = 64. Ищем для х подходящее место, считая, что а[1] = 32 — это уже отсортированная часть последовательности. Получаем 32 64 9 30 87 14 2 76.

i=3 х=9. Ищем для х подходящее место: 9 32 63 30 87 14 2 76.

i = 4 х = 30. Ищем для х подходящее место: 9 30 32 64 87 14 2 76.

i = 5 х = 87. Ищем для х подходящее место: 9 30 32 64 87 14 2 76.

i = 6 х = 14. Ищем для х подходящее место: 9 14 30 32 64 87 2 76.

i=7 х=2. Ищем для х подходящее место: 2 9 14 30 32 64 87 76.

i = 8 х = 76. Ищем для х подходящее место: 2 9 14 30 32 64 76 87.

При поиске подходящего места для элемента х чередуются сравнения и

пересылки.

«Просеивание» может закончиться при двух различных условиях:

1) Найден элемент, значение которого больше, чем х;

2) Достигнут конец последовательности.

Для выполнения лабораторной работы требуется разработать:

  1. Заставку в первой форме, которая должна быть реализована при помощи надписи.

  2. Функцию kiks типа void с параметрами (int* a, int len,TextBox^s, TextBox^ k, TextBox^ d, TextBox^ n), в которой будет происходить основные вычисления программы: нахождения количества четных и нечетных элементов, а также подсчет всех перемноженных значений четных цифр и отдельно нечетных цифр.

  3. Функцию outputmas типа void с параметрами (int* a, int len, DataGridView^ dgv), в которой будет происходить вывод массива, а также будут вноситься дополнительные под настройки для datagridview1 .

  4. Функцию entermas типа void с параметрами (int* mas, int n), в которой будет происходить генерация массива.

  5. Функцию VSTAVKA типа void с параметрами (int k, int* mas, int n, int m), в которой будет вставка элементов массива.

  6. Функцию PROSOYVSTAVKA типа void с параметрами (int* mas, int n), в которой будет происходить сортировка массива с помощью метода простой вставки.

  7. Разработать dll библиотеку, в которой будут находиться функция: kiks, outputmas, entermas,VSTAVKA,PROSOYVSTAVKA.

  8. Событийную в которой будет происходить считывание данных через MessageBox и генерация массива, а также будет происходить запуск функции kiks и outputmas.