Найти максимальный элемент последовательности среди тех элементов, порядковый номер которого делится на 3 - PascalABC.NET
Формулировка задачи:
Ввести с клавиатуры последовательность из n целых чисел. Найти максимальный элемент
этой последовательности среди тех элементов, порядковый номер которого делится на 3.
Решение задачи: «Найти максимальный элемент последовательности среди тех элементов, порядковый номер которого делится на 3»
textual
Листинг программы
uses System.Linq;
begin
writeln('Max = ',
Enumerable.Range(0, integer.MaxValue - 1).Select(i -> ReadlnInteger()).TakeWhile(i -> i <> 0).
Where((v, i) -> Succ(i) mod 3 = 0).DefaultIfEmpty(-1).Max()
);
end.
Объяснение кода листинга программы
В данном коде на языке PascalABC.Net реализуется следующая задача: необходимо найти максимальный элемент последовательности, причем только среди тех элементов, порядковый номер которых делится на 3. Вот что делает код:
Enumerable.Range(0, integer.MaxValue - 1)- создает последовательность чисел от 0 доinteger.MaxValue - 1(поскольку индексация в Паскале начинается с 0).Select(i -> ReadlnInteger())- преобразует каждый элемент последовательности в целое число, используя функциюReadlnInteger(). Это значит, что программа будет запрашивать ввод числа с клавиатуры для каждого элемента последовательности.TakeWhile(i -> i <> 0)- из полученной последовательности удаляет все элементы, равные 0. Таким образом, в последовательности остаются только ненулевые числа.Where((v, i) -> Succ(i) mod 3 = 0)- фильтрует полученную последовательность, оставляя только те элементы, порядковый номер которых делится на 3.DefaultIfEmpty(-1)- добавляет в конец последовательности значение -1, если в предыдущем шаге не было найдено ни одного элемента, удовлетворяющего условию.Max()- находит максимальный элемент в полученной последовательности.writeln('Max = ', value)- выводит на экран значение максимального элемента. Обратите внимание, что в данном коде используется функцияReadlnInteger(), которая запрашивает ввод числа с клавиатуры. Поэтому при запуске программы вам будет необходимо вводить числа.