Вызов функций и процедур

Операции отношения над строками.

...........

...........

Конкатенация.

Модификатор типа

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

модификатор типа::=<имя типа> "("<выражение>")".

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

Примеры.

Integer('A') – эквивалент функции Ord('A').

Char(48) – эквивалент функции Chr(48).

Longint(@Buffer) – 32-битовый результат адресной операции преобразуется к длинному целому.

Это операция соединения (сцепления) строк. В Turbo Pascal она записывается знаком +. При этом к строке слева от знака присоединяется строка справа о т знака. Операнды могут быть строковыми константами и строковыми переменными.

Пример.

Var A: string;

A:= 'Money';

A:=A+'Changers';

Writeln(A);

В этом месте выводится MoneyChangers.

Допустимы операции = <> > < >= <=

Строки равны, если содержат одинаковые последовательности символов. Одна строка больше другой, если в ней ближайший к началу строки символ имеет большее ординальное значение, чем символ на том же месте во второй строке, а предыдущие символы одинаковы.

Примеры.

'ABC'<'BAA' – истина, потому что в первой позиции символ B имеет большее значение, чем символ А.

'ABC'<'ABD' – истина, потому что в третьей позиции символ D имеет большее значение, чем символ C.

'ABC'<'ABCD' – истина, потому что в четвертой позиции строки справа есть символ D, а в строке слева вообще нет символов в 4-й позиции.

Начиная с версии 6.0 при включенной опции расширенного синтаксиса функции можно вызывать как процедуры (то есть, отдельным оператором). При этом результат функции, возвращаемый через ее имя, игнорируется.

Начиная с версии 5.5 добавлена возможность вызова функций и процедур, являющихся методами объектов, с применением квалификаторов.

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

Узнать, указывает ли переменная процедурного типа на определенную функцию, можно, сравнив адрес функции, на которую ссылается переменная и адрес интересующей функции: Пусть F – переменная процедурного типа, а ReadInt – процедура с такой же структурой заголовка, как и у переменной F.

If @F = @ReadInt then...;

Чтобы узнать адрес процедурной переменной, а не функции, на которую она указывает, нужно применить операцию вычисления адреса дважды:

@@F


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: