Массив– это упорядоченная совокупность переменных одного типа, называемых элементами массива.
Массив может быть одномерным или многомерным. Одномерный массив (линейный) соответствует в математике понятию вектора. Двумерный массив соответствует понятию матрицы. Трехмерный массив можно считать набором матриц или кубом. Массивы большей размерности на практике встречаются редко.
Все элементы имеют одно и то же имя, совпадающее с именем массива. Каждый элемент снабжается индексом (порядковым номером), определяющим его относительную позицию в ряду других элементов. Индекс элемента записывается вслед за его именем в квадратных скобках, например, a[3], max[10] и т.д.
Характеристиками каждого массива являются его имя, размерность и длина. Имя массива выбирается по тем же правилам, что и имя простой (неиндексированной) переменной. Под длиной массива будем понимать количество составляющих его элементов.
В программе каждый массив должен быть описан. Его описание может быть сделано либо в разделе описания переменных – var, либо в двух разделах: описания типов – type и описания переменных – var.
Описание массива в разделе переменных выглядит так:
var имя массива : array [тип индекса] of тип элементов;
В качестве элементов массива могут выступать переменные любого типа, допустимого в языке. Тип индекса задает количество элементов в массиве; это количество определяется числом возможных значений типа, указанного в описании массива. Для индексации элементов массива чаще всего используется ограниченный тип, который образуется из какого-либо порядкового типа, кроме longint,
Пример 4.1
a) var amper : array [0..30] of real;
Описан массив с именем amper, состоящий из 31 элемента типа real; индексация его элементов начинается с нуля и заканчивается целым числом 30.
б) var v, w: array [-1..15] of integer;
Описаны два эквивалентных массива vи w целого типа, содержащие по 17 элементов в каждом.
Описание массивов с помощью описания типов. Этот способ включает себя два этапа: сначала в разделе описания типов объявляется пользовательский тип, а затем в разделе описания переменных указывается имя массива, принадлежащего данному типу:
type имя типа = array [тип индекса] of тип элементов;
var имя массива : имя типа;
Пример 4.2.
type vec = array [-5..10] of integer;
var b: vec;
Обращение к элементу массива. Массивы не могут обрабатываться целиком. Для того, чтобы получить доступ к элементу массива, нужно записать обращение к нему, которое выглядит как
имя массива [ индекс ]
В качестве индекса можно использовать константу, переменную или выражение, соответствующие типу индексов, объявленному в описании массива.
Пример 4.3
b[100], c[k], yes[j+2]
Приведены обращения к элементам массивов с именами b, cи yes. Значения переменных kиj должны быть определены заранее.
Ввод и вывод одномерных массивов. Для ввода и вывода всего массива или его части используют операторы цикла, как правило, оператор for.
Пример 4.4
Var
z : array [10..100] of integer;
k : integer;
Begin
for k := 10 to 100 do read (z [ k ]);
for k := 21 to 30 do write (z [ k ]);
В приведенном фрагменте программы вводятся все элементы массива z целого типа, а выводятся 10 его элементов – с 21-го по 30-й.
Отдельные элементы массивов вводятся так же, как и простые переменные.