Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Квалификаторы

Обращение к функции представляет собой идентификатор пере-

менной с несколькими квалификаторами или без них, которые изменя-

ют значение обращения к функции.

-------

квалификатор --T-->¦индекс+---------->

¦ L------- ^

¦ ------------- ¦

+-->¦ десигнатор +--+

¦ ¦ поля ¦ ¦

¦ L------------- ¦

¦ ---- ¦

L-->¦ ^ +------------

L----

Идентификатор массива без квалификатора является ссылкой на

весь массив, например:

Results

Идентификатор массива с указанным индексом обозначает конк-

ретный элемент массива, в данном случае структурную переменную:

Results[Current+1]

В случае, если элементом является запись, за индексом можно

указать обозначение поля. В этом случае ссылка на переменную оз-

начает конкретное поле конкретного элемента массива:

Results[Current+1].Data

Десигнатор поля в указателе-поле может сопровождаться сим-

волом указателя (^) с тем, чтобы указать различие между указате-

лем-полем и динамической переменной, на которую он указывает.

Results[Current+1].Data^

Если переменная, на которую указывается, является массивом,

то можно добавить индексы для обозначения компонентов этого мас-

сива.

Results[Current+1].Data^[J]

Массивы, строки и индексы

Конкретный элемент массива обозначается с помощью ссылки на

переменную массива, за которой указывается индекс, определяющий

данный элемент.

Конкретный символ в строковой переменной обозначается с по-

мощью ссылки на строковую переменную, за которой указывается ин-

декс, определяющий позицию символа.

---- ---------- ----

индекс -->¦ [ +------->¦выражение+----T-->¦ ] +-->

L---- ^ L---------- ¦ L----

¦ ---- ¦

L-------+ , ¦<--------

L----

Индексные выражения обозначают компоненты в соответствующей

размерности массива. Число выражений не должно превышать числа

индексных типов в описании массива. Более того, тип каждого выра-

жения должен быть совместимым по присваиванию с соответствующим

индексным типом.

В случае многомерного массива можно использовать несколько

индексов или несколько выражений в индексе. Например:

Matrix[I][J]

что тождественно записи:

Matrix[I,J]

Строковую переменную можно проиндексировать с помощью оди-

ночного индексного выражения, значение которого должно быть в ди-

апазоне 0...n, где n - указанный в описании размер строки. Это

дает доступ к каждому символу в строковом значении, если значение

символа имеет тип Char.

Первый символ строковой переменной (индекс 0) содержит дина-

мическую длину строки, то есть Length(S) тождественно Ord(S[0]).

Если атрибуту длины присваивается значение, то компилятор не про-

веряет, является ли это значение меньшим описанного размера стро-

ки. Вы можете указать индекс строки и вне ее текущей динамической

длины. В этом случае считываемые символы будут случайными, а

присваивания вне текущей длины не повлияют на действительное зна-

чение строковой переменной.

Когда с помощью директивы компилятора {$X+} разрешен расши-

ренный синтаксис, значение PChar может индексироваться одиночным

индексным выражением типа Word. Индексное выражение задает смеще-

ние, которое нужно добавить к символу перед его разыменованием

для получения ссылки на переменную типа Char.

Соседние файлы в предмете Программирование на Pascal