Предмет: Информатика,
автор: kirillyarovenko2
Дано целочисленный массив. Найдите количество четных элементов.Паскаль
Ответы
Автор ответа:
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
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
Автор ответа:
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
Похожие вопросы
Предмет: Обществознание,
автор: Аноним
Предмет: Физика,
автор: andreu8159
Предмет: Українська мова,
автор: jdirbjsiebeb
Предмет: Математика,
автор: tommoon