Решение:
Абсолютное значение элемента - это его модуль. То есть при сортировке элементов массива 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]. Но, чтобы сократить время, так как у нас массивы упорядочены по возрастанию, а значит это и то, что в одном массиве нет равных элементов, мы можем при нахождении одной пары равных элементов продолжать потом сравнение только элементов, которые стоят правее этой пары.
НАЧАЛО
