Печать
Категория: Param
Просмотров: 1369

Param9. Описать процедуру RemoveForInc(A, N), удаляющую из вещественного массива A размера N «лишние» элементы так, чтобы оставшиеся элементы оказались упорядоченными по возрастанию: первый элемент не удаляется, второй элемент удаляется, если он меньше первого, третий — если он меньше предыдущего элемента, оставленного в массиве, и т. д. Например, массив 5.5, 2.5, 4.6, 7.2, 5.8, 9.4 должен быть преобразован к виду 5.5, 7.2, 9.4. Массив A и число N являются входными и выходными параметрами. С помощью этой процедуры преобразовать массивы A, B, C размера \(N_A, N_B, N_C\) соответственно и вывести размер и содержимое полученных массивов.

Решение на Python 3:

import random

def RemoveForInc(Arr):
i = 0
while i < len(Arr)-1:
if Arr[i] < Arr[i+1]:
i += 1
else:
del Arr[i+1]

N = random.randrange(2,15)
A = [random.randrange(20) for e in range(N)]
print("A before filtering:", A)
RemoveForInc(A)
print("A after filtering:", A)

B = [random.randrange(20) for e in range(N)]
print("B before filtering:", B)
RemoveForInc(B)
print("B after filtering:", B)

C = [random.randrange(20) for e in range(N)]
print("C before filtering:", C)
RemoveForInc(C)
print("C after filtering:", C)