Удалить элементы массива, большие 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
. - Если после фильтрации в массиве остались элементы, то они выводятся на экран. Если нет, то на экран выводится пустой массив.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д