Дано целочисленный массив. Найдите количество четных элементов.Паскаль

0 голосов
49 просмотров

Дано целочисленный массив. Найдите количество четных элементов.Паскаль


Информатика (122 баллов) | 49 просмотров
0

массив вводится вручную?

Дано ответов: 2
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
begin
  var a:=ArrRandom(ReadInteger('n='),1,100); a.Println;
  Writeln('Четных элементов: ',a.Where(x->x.IsEven).Count)
end.

Тестовое решение
n= 15
48 48 85 94 39 45 22 16 75 51 85 97 91 31 92
Четных элементов: 6

(142k баллов)
0

Здорово. А что за знак "->"?

0

Это введенная в ПаскальАВС.НЕТ начиная с версии 3.0 операция, взятая из функционального программирования. x->x.IsEven читается "х переходит в х.Нечетное". Подробнее смотрите в интернет по поиску "лямбда-выражения".

0

Все это работает следующим образом. ReadInteger('n=') делает запрос на ввод целого числа и как обычная функция возвращает введенное значение. ArrRandom(количество,1,100) динамически создает целочисленный массив нужного размера и заполняет его случайными числами от 1 до 100. Результат присваивается массиву а. Далее a.Println; выводит этот массив.

0

Конструкция a.Where(x->x.IsEven).Count при помощи a.Where обращается к каждому элементу массива и выбирает только те, которые удовлетворяют условию четности. Такая "отфильтрованная" последовательность попадает "в руки" Count, и получаем количество элементов в ней.

0

И да, описка. Надо читать x->x.IsEven читается "х переходит в х.Четное".

0 голосов

В ответе прилагаю файл.

(464 баллов)