Ответы
Ответ дал:
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
Вас заинтересует
2 года назад
7 лет назад
9 лет назад
10 лет назад