Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
выш.мат. методичка.DOC
Скачиваний:
30
Добавлен:
13.02.2015
Размер:
1.71 Mб
Скачать

6.1. Массив

Тип-массив представляет собой фиксированное количество упорядоченных од­нотипных компонент, снабженных индексами. Он может быть одномерным и многомерным. Чтобы задать тип-массив, используется зарезервированное слово аrrау, после которого следует указать тип индекса (индексов) компонент (в квадратных скобках) и далее после слова оf - тип самих компонент:

type

<имя типа>= аrrау[ <тип индекса( индексов )> ] of <тип компонент>;

Пример.

type

Arr = array[1..3] of real; {тип-массив из 3 вещественных чисел}

Matrix = аrrау[1..3,1..2] оf Integer;

{тип - двумерный массив целых чисел, состоящий из 3 строк и 2 столбцов}

Введя тип-массив, можно затем задать переменные или типизированные кон­станты этого типа.

Размерность массива может быть любой, компоненты массива могут быть лю­бого, в том числе и структурированного, типа, индекс (индексы) может быть лю­бого порядкового типа, кроме типа Longint.

При задании значений константе-массиву компоненты указываются в круглых cкобках и разделяются запятыми, причем, если массив многомерный, внешние круглые скобки соответствуют, левому индексу, вложенные в них круглые скобки - следующему индексу и т. д.

Так, для введенных выше типов можно задать, например, следующие временные и константы:

var

M1, M2: Arr;

Matr: Matrix;

const

МЗ: Аrr = (1, 2, 3);

Matr: Matrix = ((1,2), (3, 4), (5,6));

Последняя константа соответствует следующей структуре:

1

2

3

4

5

6

Примечание. Тип-массив можно вводить непосредственно и при определении соответствующих переменных или типизированные констант. Например:.

M1,M2: array[1..3] of real; {массив из 3 вещественных чисел}

Matr : аrrау[1..3,1..2] оf Integer;

Здесь определены те же массивы, что и в предыдущем примере.

При таком объявлении массивов следует помнить, что их типы не будут идентичными никаким другим типам, даже если они имеют одинаковую структуру. Поэтому передавать их как параметры в подпрограмму нельзя, нельзя также присваивать им значения других массивов (и наоборот), даже если структуры совпадают.

Доступ к компонентам массива осуществляется указанием имени массива за которым в квадратных скобках помещается значение индекса (индексов) компо­ненты. В общем случае каждый индекс компоненты может быть задан выражением соответствующего типа.

Одному массиву можно присвоить значение другого массива, но только идентичного типа. Так, если заданы следующие массивы:

var А, В: аrrау[1..5] оf Integer;

С: аrrау[1..5] оf Integer;

То допустим следующий оператор: A:= B;

С другой стороны, оператор: C:= A; недопустим, т. к. массивы А и С - не идентичных типов.

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

const

А: аrrау[1..5] оf Char = ‘aaaaa’;

B: аrrау[1..3] оf Char = ‘bbb’;

Для таких массивов, как и для строк, можно использовать операции сравнения (даже если они не идентичных типов и даже если имеют различный размер) и конкатенации (объединения) см. п. 6.2. Их можно использовать в операторах вывода Write и WriteLn. Например, для введенных выше массивов можно напи­сать:

if А > В then

WriteLn(A)

else

WriteLn(B);