Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инф-госы теория и практика.doc
Скачиваний:
28
Добавлен:
29.08.2019
Размер:
3.77 Mб
Скачать

3. Массивы

Массивы представляют собой ограниченную упорядоченную совокупность однотипных величин. Каждая отдельная величина называется компонентой массива. Тип компонент может быть любым, принятым в языке ПАСКАЛЬ, кроме файлового типа. Тип компонент называется базовым типом.

Вся совокупность компонент определяется одним именем. Для обозначения отдельных компонент используется конструкция, называемая переменной с индексом или с индексами:

A[5] S[k+1] B[3,5].

В качестве индекса может быть использовано выражение. Тип индексов может быть только интервальным или перечисляемым. Действительный и целый типы недопустимы. Индексы интервального типа, для которого базовым является целый тип, могут принимать отрицательные, нулевое и положительные значения.

Массив характеризуется прежде всего общим типом его элементов и их количеством от которых зависит объем памяти, необходимый для размещения массива. Количе­ство элементов массива, в свою очередь, определяется количеством индексов и диа­пазоном их изменения. В программировании количество индексов массива называ­ют ею размерностью (рангом'), количество допустимых значений каждого индекса — его диапазоном (иногда используется термин «экстент»), а совокупность размерно­сти и диапазонов — формой массива.

При обращении к элементу массива индекс указывается в квадратных скобках после имени массива. Он может быть буквальной константой или выражением. Описа­ние массива вида

var

space_time: array [1..4] of Real:

резервирует память под 4 вещественных числа, являющиеся элементами массива space_time. В квадратных скобках указан диапазон 1. .4 — упорядоченный набор из четырех натуральных чисел 1, 2, 3,4.

В операторной части программы один массив может быть присвоен другому, если их типы идентичны, например:

R1:=Z.

Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле.

Если речь идет о двумерных (в общем случае — многомерных) массивах, то в опи­саниях должны быть заданы диапазоны изменения каждого индекса. Это можно делать по-разному. Описания

var

a: аггау[1..б, 1..10] of Word;

и

var

a: аггау[1..6] of array [1..10] of Word;

полностью эквивалентны.

Первый индекс определяет номер строки, второй - номер столбца. Двумерные массивы хранятся в памяти ЭВМ по строкам.

Массив описывается в разделе var с использованием конструкции

array[n..m] of type;

где вместо type должен быть указан общий для всех элементов тип (базовый тип).

Паскаль не имеет специальных средств ввода-вывода массива, поэтому данную операцию следует организовать поэлементно. При вводе массива необходимо последовательно вводить 1-й, 2-й, 3-й и т.д. его элементы и аналогичным образом поступить при выводе. Следовательно, для ввода-вывода необходимо организовать цикл, в к0ом практически все операции с массивами необходимо проводить поэлементно. Для обработки элементов массива удобно использовать цикл for … do.

Пр. ввод элемента х с помощью цикла for.

Var

X: array [1..100] of real;

I, n:integer;

begin

Readln(N);

For I:=1 to N do

Begin

Write(‘x(‘,I, ‘)= ‘);

Readln(x[i])

End;

End.

Пр. вывода массива a.

For I:=1 to n do

Write (‘a[‘,I,’]=’,a[i]:6:2,’ ‘)