Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лр 4.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
69.81 Кб
Скачать

Самарский национальный исследовательский университет имени академика С.П. Королева

Институт двигателей и энергетических установок,

кафедра Автоматические системы энергетических установок

Отчёт по лабораторной работе №4

по дисциплине Программирование и алгоритмизация

" Алгоритмы обработки одномерных числовых массивов "

Выполнил: студент группы 2114

Сухова Ксения Михайловна

Принял: доцент Федотов Ю.А.

Самара, 2016

Цель заданий. Приобрести умения в синтезе формальной и алгоритмической моделей решения задач. Сформировать компетенции анализа и синтеза при решении простых задач циклической обработки значений массива.

Задание1: В одномерном массиве определить первый отрицательный элемент и его номер.

Решение:

В массиве А[1..N] нужно последовательно определять положительный ли элемент A[i] или нет, начиная с первого. При нахождении первого отрицательного элемента нужно запомнить его значение A[i] и его номер i и завершить цикл.

НАЧАЛО

N - количество элементов в массиве

A[1..N] - одномерный массив

ВВОД: N, A[1..N]

i = 1

i - текущий номер элемента массива

ВЫВОД: в массиве нет отрицательных элементов

i <= N

-

+

A[i] < 0

ВЫВОД: A[i], i

+

-\-

i = i + 1

КОНЕЦ

Задание2: Исключить из массива а1,…, аn первый отрицательный элемент.

Решение:

При нахождении отрицательного элемента в массиве a[1..n] нужно все элементы после него (то есть правее) сдвинуть на один элемент влево. Тогда на месте отрицательного элемента a[i] будет следующий элемент a[i+1], на месте элемента a[i+1] - элемент a[i+2] и так далее. На месте последнего элемента будет 0.

НАЧАЛО

n - количество элементов в массиве

a[1..n] - одномерный массив

ВВОД: n, a[1..n]

i = 1

i - текущий номер элемента массива

а[i] < 0

k = i

+

k - вспомогательная переменная

-

k <= n-1

i = i + 1

a[n] = 0

-

i <= n

+

-

a[k]=a[k+1]

k = k + 1

+

ВЫВОД: a[1..n]

ВЫВОД: отрицательных элементов в массиве нет

КОНЕЦ

Задание3: Ввести массив a1, a2,..., a15. Расположить ненулевые элементы по убыванию.

Решение:

Д ля сортировки для начала ненулевые элементы массива a[1..15] перенесем в новый массив b[1..m], где m - количество ненулевых элементов начального массива, m<=15. Для массива b[1..m] произведем сортировку элементов по убыванию. После заменим ненулевые элементы массива a[1..15] упорядоченными элементами b[1..m].

НАЧАЛО

B = 0 k = 1

ВВОД: a[1..15]

a[1..15] - одномерный массив

b[k] > b[k+1]

+

i, j - текущие номера элементов массивов a[1..15, b[1..m]

i = 1 j = 1 m = 0

-

M = b[k] b[k]=b[k+1] b[k+1]=M B = B + 1

i <= 15

-

k = k + 1

+

-

a[i]<>0

-

k<=m-1

+

-

B = 0

+

+

b[1..m] - одномерный массив m - количество элементов массива

b[j] = a[i] m = m + 1 j = j + 1

i = 1 j = 1

Сортировка методом парных перестановок B - количество перестановок M - вспомогательная переменная

i = i + 1

i <= 15

-

+

a[i]<>0

-

ВЫВОД: a[1..n]

Замена ненулевых элементов a[1..15] упорядоченными элементами b[1..m]

+

a[i] = b[j] j = j + 1

КОНЕЦ

i = i + 1

Задание4: Ввести массив x1,x2,...,x20. Элементы на нечетных местах,

расположить в порядке возрастания, а на четных – в порядке убывания.

Решение: В массиве a[1..20] сортируем сначала элементы на четных местах, то есть элементы, начиная с i=1, и далее i+2, i+2+2 и т.д. Их сортируем в порядке возрастания методом парных перестановок. Потом сортируем в порядке убывания элементы на четных местах, но уже начиная с i=2.

НАЧАЛО

i = 2

B = 0

a[1..20] - одномерный массив

ВВОД: a[1..20]

a[i] > a[i+2]

+

i - текущий номер элемента В - количество перестановок в массиве за один цикл

i = 1

B = 0

-

Цикл сортировки элементов массива на нечетных местах по убыванию

M = a[i] a[i] = a[i+2] a[i+2] = M B = B + 1

a[i] < a[i+2]

+

Цикл сортировки элементов массива на нечетных местах по возрастанию М - вспомогательная переменная для парной перестановки элементов

-

M = a[i] a[i] = a[i+2] a[i+2] = M B = B + 1

i = i + 2

i <= 18

+

-

i = i + 2

B = 0

-

-

i <= 17

B = 0

+

+

-

+

ВЫВОД: a[1..20]

КОНЕЦ

Задание5: Ввести массив a1,a2,...,a15. Требуется упорядочить его по возрастанию

абсолютных значений элементов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]