Информатика, вопрос задал VincentGir , 2 года назад

Объясните для чайников пожалуйста. Begin Var z:= ArrRandom(200, 1,50) ; z. PrintIn; z[4::5].Aggregate(BigInteger.One, (p, x) -> ( p*x). Print end. Мне надо составить блок схему, но я не понимаю что здесь за что отвечает

Ответы на вопрос

Ответил KnowsUser1
1

Ответ:

Как я понимаю, это PascalABC.NET

Функция ArrRandom(n, a, b) возвращает массив целых чисел из n элементов, сгеренированный случайным образом в диапазоне от a до b включительно

.println() - вывод значения в консоль

z[4::5] - вернёт срез массива z, начиная с 4го индекса с шагом 5.

Метод Aggregate применяет агрегатную функцию к последовательности.  

Агрегатная функция - функция, выполняющая вычисление на наборе значений, и возвращающая какое либо одно значение.

В Вашем случае - для массива z вызывается метод Aggregate, в котором исходным значением вычислений является BigInteger.One (целое число 1, имеющее тип BigInteger - бесконечно больше целое), в это же время являющееся промежуточным значением, которое каждый раз умножается на значение следующего элемента последовательности.

Грубо говоря, Z[4::5].Aggreage(BigInteger.One, (p, x) -> p*x) Вернёт произведение каждого пятого элемента массива Z, начиная с 4го индекса.


VincentGir: Спасибо
Новые вопросы