October 9, 2022

Как заполнить массив арифметической прогрессией

В PascalABC.NET существует множество способов заполнить массив арифметический прогрессией

1 3 5 7 9 11 13 15 17 19

Способ 1. В цикле - как в старом Паскале:

var a := new integer[10];
for var i:=0 to a.Length-1 do
  a[i] := i*2 + 1;

Способ 2. С помощью функции ArrGen с явной формулой, задаваемой в виде лямбды:

var a := ArrGen(10,i → i*2 + 1);

Способ 3. С помощью модификации функции ArrGen, где передается первый элемент и формула получения следующего элемента по предыдущему:

var a := ArrGen(10,1,i → i + 2);

Способ 4. С помощью операции .. диапазона с методом Step. Поскольку таким образом генерируется последовательность, следует преобразовывать её назад к массиву методом ToArray:

var a := (1..20).Step(2).ToArray;

Способ 5. С помощью функции Range с параметром-шагом:

var a := Range(1,20,2).ToArray;

Итоговая программа: