Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНФОРМАТИКА_Паскаль.doc
Скачиваний:
7
Добавлен:
08.05.2019
Размер:
1.77 Mб
Скачать

10. Массивы

10.1. Организация данных в массиве

Массив (ARRAY)- это упорядоченная конечная последовательность однородных данных (числовых, символьных и т д.), имеющих одно общее имя. Таким образом, все элементы массива должны быть одного и того же типа, возможно структурированного, количество элементов фиксировано и заранее известно.

Каждому массиву задается имя, например, МАС. Элемент массива обозначается указанием имени массива, за которым следует в квадратных скобках индекс, задающий правило вычисления номера нужного элемента в массиве, например, МАС1[17]. Элемент массива часто называют переменной с индексом. Индекс может быть переменной или выражением, в которое могут входить переменные, например, МАС[А+7]. Обычно типом индекса является диапазон целочисленного типа. Элементы массива упорядочены и доступ к любому из них осуществляется простым указанием его порядкового номера (индекса).

Если индекс один, массив является одномерным.

Если индексов несколько, то массив является многомерным. В качестве двумерного массива может быть представлена матрица или таблица. Индексы в этом случае разделяются запятыми: МАС2[2,7]. Для двумерного массива индексы связывают со строками и столбцами: 2 строка и 7 столбец. Первая или вторая цифра называется строкой (или столбцом) в общем случае не важно. По меньшей мере, это можно утверждать для языка высокого уровня, т.к. внутренние механизмы извлечения данных недоступны программисту. Важно, однако, не изменять расположение строк и столбцов при программировании. В дальнейшем будем считать, что первый индекс определяет номер строки, а второй – номер столбца. Однако это обстоятельство может оказаться важным при использовании стандартной процедуры копирования памяти MOVE.

Глубина вложенности структурированных типов вообще, а следовательно, и массивов - произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничено, однако суммарная длина внутреннего представления любого массива не может быть больше 65520 байт.

В линейной физической памяти компьютера элементы массива размещаются последовательно, начиная с адреса, связанного с именем массива. При переходе от младших адресов к старшим наиболее быстро меняется самый правый индекс массива:

1.1

1.2

1.3

2.1

2.2

2.3

3.1

3.2

3.3

4.1

4.2

4.4

На представленной схеме изображен массив из 4 строк и 3 столбцов. Каждый элемент занимает объем памяти, отводимый для хранения данных заданного типа. При задании индекса извлекаемого элемента, например, [4,2] машиной для обращения к указанному элементу производится вычисление по формуле:

Адрес элемента = Адрес массива + Длина строки Х (№ строки – 1) + № столбца.

Если для упрощения считать, что элемент занимает 1 байт (например, целые числа без знака), то формула приобретает вид:

Адрес элемента = Адрес массива + 3 Х (4-1) + 2 = Адрес массива + 11.

Это и есть адрес элемента с индексом [4,2], вычисленный относительно начала размещения массива.

В отличие от простой совокупности значений, присвоенных переменным, массив позволяет обращаться к элементу по индексу. Это дает возможность применять механизмы циклов, что значительно повышает эффективность программирования. Параметр цикла используется в этом случае в качестве изменяющегося индекса элемента массива.