Удалить элементы массива, большие 10 - PascalABC.NET
Формулировка задачи:
Здравствуйте. Нужна помощь.
Дан двумерный массив нужно удалить все элементы которые больше 10.
Подскажите, пожалуйста, как это сделать?Решение задачи: «Удалить элементы массива, большие 10»
textual
Листинг программы
uses Arrays;
const
n = 5;
m = 5;
var a : array[1 .. n] of array of integer;
begin
writeln('before:');
for var i : integer := 1 to n do
begin
a[i] := CreateRandomIntegerArray(m, 0, 20);
a[i].Writeln(#9);
end;
writeln('after:');
for var i : integer := 1 to n do
begin
a[i] := a[i].Where(i -> i <= 10).ToArray();
if(a[i].Length > 0) then a[i].Writeln(#9);
end;
end.
Объяснение кода листинга программы
В этом коде определен массив a размером 5, который содержит в себе еще 5 массивов целых чисел.
- В первой части кода создаются эти массивы с помощью функции
CreateRandomIntegerArray, которая генерирует случайные числа от 0 до 20. - Затем с помощью цикла
forиwritelnвыводится содержимое каждого из этих массивов. - Во второй части кода происходит фильтрация каждого из массивов, которые содержатся в массиве
a. - Для этого используется метод
Where, который принимает в качестве аргумента функцию, которая определяет, должен ли элемент остаться в массиве или нет. В данном случае эта функцияi -> i <= 10означает, что в массиве должны остаться только элементы, которые меньше или равны 10. - Результатом работы метода
Whereявляется новый массив, который содержит в себе отфильтрованные элементы. Этот массив выводится на экран с помощьюwriteln. - Если после фильтрации в массиве остались элементы, то они выводятся на экран. Если нет, то на экран выводится пустой массив.