Пользовательские порядковые и составные типы. Процедуры и функции.

Раздел описания типов.

Раздел описания типов размещается в описательной части программы там же, где и разделы описания переменных и констант.

Интервальный тип.

Начальное и конечное значения могут быть любого порядкового типа. Переменные интервального типа могут принимать только значения, находящиеся в указанном интервале.

Перечислимый тип.

Всем именам из списка присваиваются значения задаваемого перечислимого типа. Переменные перечислимых типов далее могут принимать только значения из указанного списка.

Как и для любого из порядковых типов, для перечислимых определенны функции Pred, Succ, Ord и т.д. Например, Pred(Yellow)=Red, Succ(Green)=Blue. Порядковые номера элементов перечислимых типов начинаются с 0, т.е. Ord(Small)=0, Ord(Middle)=1 и т.д.

Тип массив.

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

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

Строковый тип.

Описывает переменную, которая может содержать текстовую строку. Строковые значения в языке Паскаль записываются, как и символьные, в одиночных кавычках, но могут содержать не только один, но и несколько символов, или даже не содержать ни одного символа (пустые строки). К строковой переменной можно обращаться также как к массиву. При этом строка интерпретируется как массив символов (нумеруемый с 1).

Процедуры и функции для работы со строками

Функция Length(S) возвращает длину (количество символов) строки S. Для пустой строки функция возвращает 0.

Функция Copy(S,<Начало>,<Длина>) возвращает часть строки (подстроку) S указанной длины, начиная с позиции, задаваемой параметром <Начало>.

Процедура Insert(S1,S2,<Позиция>) вставляет строку S1 в строку S2 в указанной позиции.

Процедура Delete(S,<Начало>,<Длина>) – удаляет часть строки заданной длины из S, начиная с указанной позиции.

Типизированные константы.

Типизированные константы, как и обычные, описываются в разделе описания констант, но их описание несколько отличается.

Хотя типизированные константы и называются константами, на самом деле они работают как переменные, т.е. их значение можно изменять в программе, а также их нельзя использовать в выражениях-константах. Однако, в отличие от обычных переменных, при запуске программы типизированные константы уже имеют определенные значения. По способу выделения памяти эти значения являются глобальными, где бы они ни были описаны.

Процедуры и функции.

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

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

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

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

В Delphi для возврата функциями значений в любой функции определена специальная переменная Result, которая имеет тип результата, указанный в заголовке функции. Присваивание этой переменной значения аналогично ранее рассмотренному специальному оператору присваивания.

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

Обращение к процедурам и функциям.

В списке фактических параметров перечисляются через запятую значения передаваемых в процедуру или функцию параметров. Количество и тип фактических параметров должны соответствовать описанным в заголовке формальным параметрам. При вызове процедуры или функции формальные параметры принимают значения переданных туда фактических параметров.

КОММЕНТАРИИ