Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PAS1~1.doc
Скачиваний:
1
Добавлен:
07.11.2018
Размер:
283.65 Кб
Скачать

3.2.Структурные (структурированные) типы данных.

К структурированным типам данных относятся тип массива, тип записи, тип множества, тип файла.

3.2.1.Массивы.

Массивы представляют собой регулярную совокупность элементов одного и того же типа.

Пример: Описание массива вещественных чисел.

VAR T : ARRAY (1..10) OF REAL;

В качестве типа индекса может быть использован перечисляемый тип, либо отрезок, использование типов INTEGER и REAL недопустимо. Массивы в ПАСКАЛЕ считаются упорядоченными, кроме массивов, состоящих из символьных строк. Сравнение массивов производится следующим образом: если два массива X и Y имеют одинаковое описание, то X считается меньше Y, если существует такой индекс К, что X(K) < Y(K) и X(I) = Y(I) при I < K

Индекс в индексированной переменной должен иметь тот же тип, что и в ее описании. Тип составляющих элементов массива может быть любым, кроме файлов.

Пример: Описание массивов.

TYPE

MEST = (LEV, SREDN ,PRAV);

VAR

M1 : ARRAY (1..20) OF MEST;

M2 : ARRAY (MEST) OF REAL;

M3 : ARRAY (LEV..SREDN) OF INTEGER;

M4 : ARRAY (1..20) OF ARRAY (1900..2000)

OF ARRAY (NEST) OF REAL;

Массив М1 - одномерный, содержит 20 элементов перечисляемого типа.

Массив М2 - одномерный, содержит 3 элемента вещественного типа.

Массив М3 - одномерный содержит 2 элемента целого типа.

Массив М4 - трехмерный, содержит 20*101*3 элемента вещественного типа, приведенное выше его описание эквивалентно следующему:

M4 : ARRAY(1..20,1900..2000, MEST) OF REAL;

Суммарный размер любого массива не должен превышать сегмента памяти, то есть 65535 байт.

3.2.2.Строки.

Строка - это последовательность символов, заключенных в апострофы (до 255 символов). Строки объявляются оператором STRING[n], где n – длина строки. Строки, состоящие из одного символа, являются константами стандартного типа CHAR. Можно использовать также и ASCIIZ-строки при условии включения расширенного синтаксиса {$X+} и объявления типа pchar. Эти строки заканчиваются символом с кодом 0, а их длина может достигать размеров сегмента. Для использования символов, не имеющих графического представления, надо использовать их код с символом # впереди.

Пример: Var Str1: Pchar; {ASCIIZ-строка}

Const Heading: String[10] = ’Задача’;

3.2.3.Записи.

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

Пример: Описание данных типа запись.

TYPE ZAP = RECORD

A: REAL;

B: INTEGER;

C: CHAR;

END;

SLZAP = RECORD

M:INTEGER;

N:REAL;

R:ZAP;

END;

Для того, чтобы обратиться к компоненте записи используются сложно составные имена, например, обращение к переменной А с приведенным выше описанием:

ZAP.A := 5E-03;

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

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

2.В описании записи может быть одна изменяемая часть, причем она всегда идет после фиксированной части ;

3.В изменяемой части может, в свою очередь, быть изменяемая часть(изменяемые части могут быть вложенными).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]