ПАСКАЛЬ ABC.NET
Найти среднее арифметическое первых подряд идущих положительных элементов массива.
Ответы
Ответ дал:
1
begin
var n := ReadInteger('n =');
var a := ArrRandom(n, -10, 99);
a.Println;
a.TakeWhile(p -> p > 0).DefaultIfEmpty.Average.Println
end.
Объяснение:
TakeWhile(p -> p > 0) - отбирает элементы от начала до тех пор, пока условие p > 0 истинно, т.е. со значением, большим нуля.
DefaultIfEmpty - если первое же значение не положительно, результатом будет один элемент, равный нулю (нельзя найти среднее, если элементов не отобрано вообще, получим 0/0)
Average - находит среднее отобранных элементов
Приложения:
Василиса695:
мой паскаль такое не вывозит)
Чтобы вывозил, надо писать в вопросе, какой требуется паскаль.
Ну либо просто признать, что незачем учиться на хламе и перейти на современную версию.
Вас заинтересует
1 год назад
1 год назад
3 года назад
3 года назад
8 лет назад
8 лет назад