Массив - упорядоченная последовательность данных одного типа, объединенных под одним именем.
Под это определение подходит множество объектов из реального мира: словарь (последовательность слов), мультфильм (последовательность картинок) и т. д. Проще всего представить себе массив в виде таблицы, где каждая величина находится в собственной ячейке. Положение ячейки в таблице должно однозначно определяться набором координат (индексов). Самой простой является линейная таблица, в которой для точного указания на элемент данных достаточно знания только одного числа (индекса).
Линейный (одномерный) массив – массив, у которого в описании задан только один индекс.Одномерные массивы часто называют векторами, т.е. они представляют собой конечную последовательность пронумерованных элементов.
Алгоритм решения задач с использованием массивов:
1. описание массива;
2. заполнение массива;
3. вывод (распечатка) массива;
4. выполнение условий задачи;
5. вывод результата.
В структуре программы часто используют раздел описания типов, в котором объявляют пользовательский тип, т.е. тип «придуманный» автором.
Описание типа линейного массива выглядит так:
TYPE
<Имя типа>=Array [<Диапазон индексов>] Of <Тип элементов>;
В качестве индексов могут выступать переменные любых порядковых типов. При указании диапазона начальный индекс не должен превышать конечный. Тип элементов массива может быть любым (стандартным или описанным ранее).
Описать переменную-массив можно и сразу (без предварительного описания типа) в разделе описания переменных:
VAR
<Переменная-массив> : Array [<Диапазон индексов>] Of <Тип элементов>;
Элементы массива (тип целые)
-4 | -49 | -24 |
1 2 3 4 5 6 7 8 9 10
Индексы элементов (диапазон 1..10)
Примеры описания массивов:
VAR
S, BB : Array [1..40] Of Real;
T : Array [1..40] Of Real;
N : Array ['A'..'Z'] Of Integer;
R : Array [-20..20] Of Word;
M : Array [1..40] Of Char;
DD : Array [true..false] Of String;
Теперь переменные S, BB и T представляют собой массивы из сорока вещественных чисел; массив N имеет индексы символьного типа и целочисленные элементы; массив R может хранить в себе 41 число типа Word. Массив DD состоит из двух элементов, каждый из которых является символьной строкой.
Единственным действием, которое возможно произвести с массивом целиком – присваивание: S:=BB;
Однако присваивать можно только массивы одинаковых типов. Даже массиву T присвоить массив S нельзя, хотя, казалось бы, их описания совпадают, произведены они в различных записях раздела описания.
S:=T; BB:=T;
Никаких других операций с массивами целиком произвести невозможно, но с элементами массивов можно работать точно так же, как с простыми переменными соответствующего типа. Обращение к отдельному элементу массива производится при помощи указания имени всего массива и в квадратных скобках - индекса конкретного элемента.
R[10] - элемент массива R с индексом 10.
Фундаментальное отличие компонента массива от простой переменной состоит в том, что для элемента массива в квадратных скобках может стоять не только непосредственное значение индекса, но и выражение, приводящее к значению индексного типа. Таким образом, реализуется косвенная адресация:
BB[15] - прямая адресация;
BB[K] - косвенная адресация через переменную K, значение которой будет использовано в качестве индекса элемента массива BB.
Для заполнения, обработки и распечатки содержимого массива используют цикл.
*Введение в язык Паскаль цикла с параметром было обусловлено во многом необходимостью обработки информационных последовательностей, т. е. массивов.
*По своим свойствам массивам типа Char очень близки переменные типа String. Отличия в следующем: строковые переменные можно было вводить с клавиатуры и распечатывать на экране (с обычным массивом это не проходит); длина строковой переменной ограничена 255 символами (255 б), а для размера массива с критическим объемом информации является 64 Kб.