# Модуль: Arrays

## fillArray(array, count, min, max);

Эта процедура заполняет массив случайными числами в Integer диапазоне, где count - количество чисел в массиве. \
Опционально можно указать минимум и максимум диапазона для рандома в массиве.

```
// Создаёт массив c 20 псевдослучайными числами в диапазоне Integer. [-2,147,483,647 ~ 2,147,483,647]
  var arr: array of integer;
  FastPascal.fillArray(arr, 20);

// Создаёт массив c 13 псевдослучайными числами в диапазоне от 1 до 5.
  var arr: array of integer;
  FastPascal.fillArray(arr, 13, 1, 5);

// Создаёт массив c 8 псевдослучайными дробными числами (типа real) в диапазоне от 1.1 до 3.24.
  var arr: array of real;
  FastPascal.fillArray(arr, 8, 1.1, 3.24);
```

## writeArray(array, index, rounding);

Эта процедура выводит массив, где index - количество чисел, которое необходимо вывести. \
Опционально можно указать rounding - количество цифр после запятой, если массив состоит из чисел типа real.

```
  var arr: array of integer;
// Заполните массив a чем-либо или сгенерируйте псведослучайные элементы через fillArray(array, count, min, max).

// Выведется массив до 3-его элемента.
  FastPascal.writeArray(arr, 3);

// Выведется массив до 3-его элемента и округлятся все элементы до сотых.
  var arr: array of integer;
// Заполните массив arr чем-либо или сгенерируйте псведослучайные элементы через fillArray(array, count, min, max).
  FastPascal.writeArray(arr, 3, 2);
```

## findMinInArray(array);

Эта функция выводит минимальный элемент в массиве.

```
  var a: array of integer;
// Заполните массив a чем-либо или сгенерируйте псведослучайные элементы через fillArray(array, count, min, max).
// FastPascal.fillArray(a, 3, 1, 5);
  writeln(FastPascal.findMinInArray(a)); // Вывод максимального элемента напрямую.

  var a: array of integer;
// Заполните массив a чем-либо или сгенерируйте псведослучайные элементы через fillArray(array, count, min, max).
// FastPascal.fillArray(a, 3, 1, 5);
  var i := FastPascal.findMinInArray(a);
  writeln(i); // Вывод максимального элемента через параметр i.
```

## findMaxInAray(array);

Эта функция выводит максимальный элемент в массиве.

```
  var a: array of integer;
// Заполните массив a чем-либо или сгенерируйте псведослучайные элементы через fillArray(array, count, min, max).
// FastPascal.fillArray(a, 3, 1, 5);
  writeln(FastPascal.findMaxInAray(a)); // Вывод максимального элемента напрямую.

  var a: array of integer;
// Заполните массив a чем-либо или сгенерируйте псведослучайные элементы через fillArray(array, count, min, max).
// FastPascal.fillArray(a, 3, 1, 5);
  var i := FastPascal.findMaxInAray(a);
  writeln(i); // Вывод максимального элемента через параметр i.
```

## sum(array, count);

Эта функция выводит сумму типа BigInteger всех элементов в массиве.\
Опционально можно указать количество (count) подсчитываемых элементов из массива.\
Присутствуют модификации sumInt и sumReal для подсчёта суммы всех элементов типа Integer и Real

```
  var a: array of integer;
// Заполните массив a чем-либо или сгенерируйте псведослучайные элементы через fillArray(array, count, min, max).
// FastPascal.fillArray(a, 3, 1, 5);
// FastPascal.writeArray(a, 3);
  writeln(FastPascal.sum(a, 4)); // Вывод суммы типа BigInteger первых 4 элементов массива.
  writeln(FastPascal.sumInt(a, 4)); // Вывод суммы типа Integer первых 4 элементов массива.

  var a: array of real;
// Заполните массив a чем-либо или сгенерируйте псведослучайные элементы через fillArray(array, count, min, max).
// FastPascal.fillArray(a, 5, 1.74, 5.41);
// FastPascal.writeArray(a, 5);
  var i := FastPascal.sumReal(a, 5);
  writeln(i); // Вывод суммы типа real первых 5 элементов массива через параметр i.
```

## printArithmeticProgression(count, firstElement, step);

Эта процедура выводит арифметическую прогрессию с определённым (count) количеством чисел, первым членом прогрессии a1 (firstElement) и шагом d (step).

```
// Выводится последовательность, состоящая из 5 элементов,
// начиная от первого члена последовательности равного -16.1 с шагом 3.
  FastPascal.printArithmeticProgression(5, -16.1, 3);
```

## generateArithmeticProgression(count, firstElement, step);

Эта функция выводит арифметическую прогрессию в виде массива с определённым (count) количеством чисел, первым членом прогрессии a1 (firstElement) и шагом d (step).

```
// Выводится массив, состоящий из 5 элементов,
// начиная от первого члена последовательности равного -16.1 с шагом 3.
  writeln(FastPascal.generateArithmeticProgression(5, -16.1, 3));

// Выводится массив, состоящий из 3 элементов,
// начиная от первого члена последовательности равного -3 с шагом 1.
  var i: array of integer;
  i := FastPascal.generateArithmeticProgression(3, -3, 1);
  writeln(i);

// Выводится массив, состоящий из 3 элементов,
// начиная от первого члена последовательности равного 2.1 с шагом 1.2.
  var i: array of real;
  i := FastPascal.generateArithmeticProgression(3, 2.1, 1.2);
  writeln(i);
```

## isExistInArray(array, value);

Эта функция определяет, существует ли вообще значение (value) среди элементов массива.\
Если существует - выдаёт true, иначе - false.

```
// Определяется, существует ли число -12.5 
// среди 5 членов арифметической прогрессии с первым членом -16 и шагом 3.5.
  writeln(FastPascal.isExistInArray(FastPascal.generateArithmeticProgression(5, -16, 3.5), -12.5));

// Также поддерживаются элементы типа string.
  setLength(s,3);
  s[0] := 'alo';
  s[1] := 'ew';
  s[2] := 'hi!';
  writeln(FastPascal.isExistInArray(s, 'alo'));
```

## duplicate(array, index);

Эта функция дублирует в массиве (array) элемент, который стоял на index месте.

```
// Дублируется третий элемент массива (3) 
// и массив изменяется с [1, 2, 3] на [1, 2, 3, 3]
  var i: array of integer;
  i := FastPascal.generateArithmeticProgression(3, 1, 1);
  FastPascal.duplicate(i, 3);
  writeln(i);

// Дублируется третий элемент массива (3.1)
// и массив изменяется с [1.1, 2.1, 3.1] на [1.1, 2.1, 3.1, 3.1]
  var i: array of real;
  i := FastPascal.generateArithmeticProgression(3, 1.1, 1);
  FastPascal.duplicate(i, 3);
  writeln(i);
```

## insertIntoArray(array, element, index);

Эта функция вставляет элемент (element) нужного типа в массив (array), который стоял на index месте.

```
// Вставляется слово "пока" в самое начало массива.
// Массив изменяется с [привет,привет,привет,привет,привет] на [пока,привет,привет,привет,привет,привет]
  var s: array of string;
  setLength(s, 5);
  for i:=0 to 4 do
    s[i]:='привет';
  FastPascal.insertIntoArray(s, 'пока', 0);
  writeln(s);
```

## removeRepeatedElementsInArray(array);

Эта функция удаляет повторяющиеся элементы в массиве (array).

```
// Вставляется слово "пока" в самое начало массива.
// Массив изменяется с [привет,привет,привет,привет,привет] на [пока,привет,привет,привет,привет,привет]
  var s: array of string;
  setLength(s, 5);
  for i:=0 to 4 do
    s[i]:='привет';
  FastPascal.removeRepeatedElementsInArray(s);
  writeln(s);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://denismasterherobrine.gitbook.io/fastpascal/submodules/arrays.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
