Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ГОСТу.doc
Скачиваний:
19
Добавлен:
14.11.2019
Размер:
10.65 Mб
Скачать

8.1. Одномерные и многомерные массивы

Массивы бывают одномерные (рис. 8.1) и многомерные. Из многомерных наиболее часто приходится иметь дело с двумерными. Двумерные массивы хранятся в памяти ЭВМ по строкам. Двумерный массив можно представить как матрицу элементов (рис. 8.2).

Описание такого массива выглядит так:

Type

Matrix = Array [1..20, 1..10] Of Real;

Var

X,Y: Matrix;

Z: Array [1..10, 1..10] Of Integer;

Массивы X и Y имеют двадцать строк и десять столбцов. Массив Z представляет собой квадратную матрицу размером 1010.

Для доступа к элементам массива необходимо указать идентификатор массива с одним или несколькими индексами в скобках (в зависимости от размерности массива). Конкретный элемент массива обозначается с помощью имени переменной массива, за которой указывается индекс, определяющий данный элемент.

Индексные выражения обозначают компоненты в соответствующей размерности массива. Число выражений не должно превышать числа индексных типов в описании массива. Более того, тип каждого выражения должен быть совместимым по присваиванию с соответствующим индексным типом. В случае многомерного массива можно использовать несколько индексов или несколько выражений в индексе.

В квадратных скобках - индексы массива

Рис. 8.1. Одномерный массив Рис. 8.2. Двумерный массив

Для одномерного массива обращение к элементу будет выглядеть так: Z[J], а для двумерного F[I,J]. В этом случае переменные I и J должна иметь значения, не превышающие диапазона индексов соответствующего массива.

Если тип элемента в типе массив также является массивом, то результат можно рассматривать как массив массивов или как один многомерный массив.

Например, Array [Boolean] Of Array [1..100] Of Array [Size] Of Real интерпретируется компилятором точно так же, как массив: Array [Boolean, 1..10, Size] Of Real.

Массив вида: Array[0..X] Of Char, где X - положительное целое число, называется массивом с нулевой базой. Массивы с нулевой базой используются для хранения строк с завершающим нулем.

Pascal допускает единственно возможное действие над массивом в целом: использование его в операторе присваивания.

Например: Vect1:=Vect2, причем типы и размерность обоих массивов в данном случае должны быть эквивалентны.

8.2.Символьные массивы

Особое место в языке Паскаль занимают массивы символов. В стандартной версии языка массивы символов могут храниться в упакованном и неупакованном виде. В первом случае один символ занимает 1 байт в памяти ЭВМ, а во втором – 1 слово 4 байта. Упакованный массив символов займет меньше места в оперативной памяти, чем неупакованный. Для описания упакованного массива используется служебное слово Packed. Ниже приводится описание упакованного массива символов Su и неупакованного массива Sn:

Var

Su: Packed Array [n..m] Of Char;

Sn: Array [n..m] Of Char;

Упакованный массив символов образует символьную строку. Символьная строка может быть либо строковой константой, либо строковой переменной. Строковые константы описываются в разделе определения констант и представляют собой строку символов, заключенную в апострофы. Строковые переменные описываются в разделе описания переменных. К ним применимы операции отношения (=, <>, <, >, <=, >=), если эти переменные имеют одинаковую длину. Примером описания символьных строк может носить фрагмент из программы.

Const

Prs='*****';

Var

S1: Array [1..5] Of Char;

S2: Array [1..10] Of Char;

Begin

S1:=Prs; S2:=' program ';

If S1='*****' Then S2[10]:='*';

................................................................

Данные строкового типа можно задавать и с помощью оператора String. При объявлении строковой величины в квадратных скобках указываются максимальное число заключенных в интервалов в диапазоне от 1 до 255 (по умолчанию 255), например:

Var

Kor: String [40];

Const

Mol: String='Error 21';

фактическую длину строки можно определить с помощью стандартной функции Length.