Delphi. Pascal
Урок 6. Работа с массивами
11. Массивы
Тип массива | Описание массива | Пример |
Одномерный массив (вектор) | array [ тип-индекса ] of тип-элемента | var a: array [ 1..100 ] of integer; |
Тип массива | Описание массива | Пример |
2-мерный массив (матрица) | array [ тип-индекса-1, тип-индекса-2 ] of тип-элемента; | var a: array [ 1..M, 1..M ] of real; |
3-мерный массив | array [ тип-индекса-1, тип-индекса-2, тип-индекса-3 ] of тип-элемента; | var a: array [ 0..1, 0..M, 0..N ] of char; |
4-мерный массив | array [ тип-индекса-1, тип-индекса-2, тип-индекса-3, тип-индекса-4 ] of тип-элемента; | var a: array [ 0..1, 0..1, 0..1, 'a'..'z' ] of boolean; |
Массивы в Pascal бывают статические (количество элементов в таком массиве известно заранее, на этапе компиляции) и динамческие (размер массива заранее не известен. В процессе работы программы к такому массиву можно добавлять элементы). Динамические массивы мы рассмотрим на одном из последующих уроков, а на этом уроке мы посмотрим, как работать с обычными статическими массивами.
Вот пример описания и работы со статическим массивом:
var
a: Array [1..6] of integer; //заводим массив
i: integer;
...
for i:=Low(a) to High(a) do
begin
Writeln('Enter ', i, '-th element');
ReadLn(a[i]); //Читаем i-й элемент
Writeln('a[', i, ']=', a[i]);
end;
Приведенный пример просит у пользователя заполнить одномерный массив из нескольких элементов (из 6) целыми числами.
Обратите внимание на объявление массива:
a: Array [1..6] of integer;
В квадратных скобках мы указываем нижний и верхний номера для индекса массива. Если нам надо определить двумерных массив (например для задания игрового поля для шахмат), то мы должны написать что-то вроде
chess: Array [1..8, 1..8] of integer;
т. е. размерности массива пишеться в одной паре квадратных скобок и разделяются запятой. То же правило действует и для многомерных массивов.
Далее обратите внимание на функции Low() и High(). Они принимают в качестве параметра имя массива и возвращают номер первого и последнего элементов соответственно. Рекомендуется использовать именно эти функции, а не писать конкретные значения для номера первого и последнего элементов - так в последствии будет легче вносить в программу необходимые изменения. Наряду с этими двумя функциями существует и функция Lenght(), которая возвращает длину массива. Действие этих функций для одномерного массива понятно. Для многомерных же массивов они возвращают значения (нижний и верхний номера и длину) для первого измерения.