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

Решение:

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

НАЧАЛО

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

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

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

B = 0

i = 1

-

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

|a[i]| < |a[i+1]|

B = 0

+

+

-

M = a[i]

a[i] = a[i+1]

a[i+1] = M

В = В + 1

М - вспомогательная переменная для парной перестановки элементов

КОНЕЦ

i = i + 1

i <= 14

+

-

Задание6: Ввести массив x1,x2,...,x20. Требуется расположить отрицательные

элементы в порядке убывания.

Решение:

В массиве x[1..20] нужно отсортировать в порядке убывания его отрицательные элементы. Можно использовать метод парных перестановок. При нахождении первого отрицательного элемента a[i] массива запоминаем его номер j=i. После сравниваем со следующим отрицательным элементом, если он больше, то меняем их местами, запоминаем номер и значение последнего. И так пока количество перестановок в цикле не будет равно 0.

НАЧАЛО

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

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

j - номер последнего на данный момент отрицательного элемента массива

j = 0

i, B - номер текущего элемента массива, количество перестановок

i = 1 B = 0

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

a[i] < 0

-

Q = a[i] a[i] = a[j] a[j] = Q B = B+1

+

j = 0

a[i] < a[j]

-

-

+

+

j = i

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

i = i + 1

i <= 20

+

-

B = 0

+

КОНЕЦ

-

Задание7: Ввести упорядоченный по не убыванию массив

Найти количество различных чисел среди элементов этого массива.

Решение:

Количество различных чисел среди элементов массива x[1..n] можно найти через разность n-k, где n - количество элементов массива, k - количество элементов массива, значения которых равны хотя бы одному значению другого элемента массива. То есть, если x[i]=x[i+1], то мы увеличиваем k, тем самым количество различных элементов s у нас уменьшится на 1.

НАЧАЛО

1

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

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

s - количество различных чисел в массиве

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

k - количество элементов массива, значения которых равны хотя бы одному значению другого элемента массива

s = n - k

i = 1

k = 0

ВЫВОД: в массиве s различных чисел

i<=n-1

1

-

+

x[i] = x[i+1]

-

i = i + 1

+

i = i + 1

k = k + 1

КОНЕЦ

Задание8: Ввести два упорядоченных по возрастанию числовых массива

Найти количество общих элементов в этих массивах, то есть количество К таких чисел X(i)=Y(j).

Решение: Для того, чтобы найти количество общих элементов двух массивов, можно сравнить попарно все элементы обоих массивов x[1..n] и y[1..m]. Но, чтобы сократить время, так как у нас массивы упорядочены по возрастанию, а значит это и то, что в одном массиве нет равных элементов, мы можем при нахождении одной пары равных элементов продолжать потом сравнение только элементов, которые стоят правее этой пары.

НАЧАЛО

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