Array/ru
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
Bahasa Indonesia (id) │
日本語 (ja) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Тип array (массив) представляет собой последовательность однотипных переменных. Примерами могут служить массивы символов, целых и вещественных чисел. Фактически, в массивах могут использоваться любые типы, включая определенные пользователем. Однако, элементы массива всегда являются однотипными. Элементы разных типов не могут быть сгруппированы в массив. Для этих целей необходимо использовать записи.
Массивы отражают идею таких математических понятий, как
- векторы (одномерные массивы) и
- матрицы (двумерные массивы)
Статические массивы
Объявление статического массива выполняется аналогично, как для простых типов, но при этом вам необходимо указать размерность массива (количество элементов) в виде диапазона значений, а также тип элементов.
program
...
var
variablename: array [startindex..endindex] of type;
begin
...
Значение startindex должно быть меньше либо равно значению endindex. При этом оба значения должны быть целыми константами, либо целочисленными константными значениями. Допускается, если одно или оба значения будут отрицательными либо равными 0.
Одномерный массив
Пример одномерного массива:
type
simple_integer_array = array [1..10] of integer;
var
Numbers: simple_integer_array;
Многомерный массив
Многомерные массивы объявляются аналогично одномерным, при этом каждая дополнительная размерность перечисляется через запятую (например [x..y,z..t] и т.д.)
Пример многомерного массива:
type
more_complex_array = array [0..5,1..3] of extended;
var
specialmatrix: more_complex_array;
Динамические массивы
Если заранее точно не известно необходимое количество элементов массива, то можно воспользоваться динамическим массивом. В процессе выполнения программы размер динамического массива можно увеличивать или уменьшать.
Доступ к элементам массива
Для доступа к элементу массива вам необходимо указать индекс элемента в квадратных скобках ([]) после имени массива. После этого элемент массива можно использовать как обычную переменную.
Var
my_array : array[1..3] of Integer;
my_matrix : array[1..5,1..5] of Integer;
some_value : Integer;
...
begin
my_array[2] := a + 2;
my_matrix[2,3] := some_value;
...
some_value := my_array[2];
some_value := my_matrix[4,3];
end.
Массивы литералов
Существует два способа, использующихся для массивов литералов, в зависимости от места их размещения. Вы можете проинициализировать статический массив в секции объявления переменных (для динамических массивов это сделать невозможно) с помощью последовательности значений, заключенных в круглые скобки. В блоке инструкций вы можете создать анонимный массив с помощью ряда значений, заключенных в квадратные скобки. Например:
Var
// инициализация статического массива типа integer с помощью массива литералов
Numbers : array [1..3] of Integer = (1, 2, 3);
procedure PrintArray(input : array of String);
var
i : integer;
begin
for i := 1 to length(input) do
write(input[i - 1],' ');
writeln;
end;
begin
Writeln( Numbers[2] );
// создаем три элемента анонимного массива типа string с помощью массива литералов
PrintArray( ['one', 'two', 'three'] );
end.
На экран будет выведено:
2
one two three
Типы данных | |
---|---|
Простые типы | Boolean | Byte | Cardinal | Char | Currency | Extended | Int64 | Integer | Longint | Pointer | Real | Shortint | Smallint | Word |
Сложные типы | Array | Class | Record | Set | String | Shortstring |