- •21. Операторы языка. Операторы циклов. Вложенные циклы.
- •22. Операторы языка. Операторы циклов. Циклы с предусловием и постусловием.
- •Оператор цикла с постусловием repeat…until
- •23. Операторы циклов. Операторы break. Оперотор continue.
- •24. Подпрограммы. Структура описания подпрограмм.
- •25. Описание заголовка процедуры (Параметры-значения, параметры-переменные, параметры-константы и входные параметры).
- •26. Функции. Глобальные и локальные переменные. Параметры, имеющие значения по умолчанию.
- •27. Строковые типы. Строковые константы.
- •28. Строковые выражения и стандартные процедуры.
- •29. Тип Variant.
- •30. Структурированные типы. Массивы. Статические массивы.
- •31. Структурированные типы. Динамические массивы. Объявление динамического массива.
- •32. Множества. Операции над множествами.
- •Операции над множествами
- •33. Записи. Доступ к полям записи. Оператор присоединения.
- •34. Файлы. Понятие файла. Последовательность работы с файлами. Описание файловых переменных. Стандартные подпрограммы для доступа к файлам.
- •35. Файлы. Текстовые файлы.
- •36. Файлы. Типизированные файлы.
- •37. Файлы. Нетипизированные файлы.
24. Подпрограммы. Структура описания подпрограмм.
Структура:
PROCEDURE<имя процедуры >;
FUNCTION<имя функции>(параметр: тип);
USES<модули>;
LABEL<метки>;
CONST<константы>;
TYPE<типы>;
VAR<переменные>;
BEGIN
Тело подпрограммы
END;
25. Описание заголовка процедуры (Параметры-значения, параметры-переменные, параметры-константы и входные параметры).
Параметры подпрограмм используются для обмена значениями между вызываемой и вызывающей частями программы. Описываемые в заголовке объявления подпрограммы параметры называвются формальными, а те, которые подставляются на их место при вызове, - фактическими. Параметры подпрограмм разделяются на параметры-значения,параметры-переменные и параметры-константы.
а) Параметры-значения (или передача параметров по значению). Параметры-значения - это локальные переменные подпрограмм, стартовые значения которых задаются при вызове подпрограмм из внешних блоков (им присваиваются значения соответстующих фактических параметров). Параметры-значения, описанные в заголовке, могут изменять свои значения наряду с прочими переменными, но эти изменения будут строго локальными и никак не отразятся на значениях фактических параметров.
Синтаксис описания параметров-значений:
ИмяПодпрограммы ( P1, P2, ..., PN : Тип ); или ИмяПодпрограммы ( P1 : Тип1; P2 : Тип2; ... );
Если параметры имеют один и тот же тип, то они просто перечисляются через запятую, после чего через двоеточие указывается их тип. Описание разнотипных параметров отделяется лруг от друга символом точки с запятой.
ВАЖНО! В качестве фактических параметров подпрограммы, подставляемых на место фомальных параметров-значений, могут выступать: переменные, константы и выражения (точнее их значения), причем их типы должны быть совместимы по присваиванию с типами соответствующих формальных параметров-значений.
б) Параметры-переменные (или передача параметров по ссылке). Параметры-переменные предоставляют принципиально иной механизм передачи параметров, состоящий в том, что в подпрограмму передается не значение фактического параметра, а ссылка на ячеку (или ячейки) памяти где хранится значение этого фактического параметра. При этом все действия с формальным параметром-переменной (внутри подпрограммы) на самом деле являются действиями над фактическим параметром.
Синтаксис описания параметров-переменных:
ИмяПодпрограммы ( VAR P1, P2, ..., PN : Тип ); или ИмяПодпрограммы ( VAR P1 : Тип1; VAR P2 : Тип2; ... );
Описание параметров-переменных отличается от описание параметров-значений лишь наличием ключевого слова VAR перед идентификатором параметра.
ВАЖНО! В качестве фактических параметров подпрограммы, подставляемых на место фомальных параметров-переменных, могут выступать ТОЛЬКО ИДЕНТИФИКАТОРЫ ПЕРЕМЕННЫХ.
в) Параметры-константы - аналогичны параметрам-значениям с той лишь разницей, что они не могут изменять свои значения в теле подпрограммы. Попытка изменить значение параметра-константы будет немедленно замечена компилятором.
Синтаксис описания параметров-констант:
ИмяПодпрограммы ( CONST P1, P2, ..., PN : Тип ); или ИмяПодпрограммы ( CONST P1 : Тип1; CONST P2 : Тип2; ... );
Одно важное замечание: при описание формальных параметров подпрограмм не допускается конструирование типов данных; тип параметра должен быть задан идентификаторм. Например, будет ошибкой описать параметр для передачи массива следующим образом:
PROCEDURE PrintVector( V : array[1..10] of Real );
Правильное описание параметра показано ниже
TYPE Tvector = array[1..10] of Real; PROCEDURE PrintVector( V : Tvector );
Процедуры и функции помещаются в раздел описаний программы. Для обмена информацией между процедурами и функциями и другими блоками программы существует механизм входныхи выходных параметров. Входными параметрами называют величины, передающиеся из вызывающего блока в подпрограмму (исходные данные для подпрограммы), а выходными - передающиеся из подрограммы в вызывающий блок (результаты работы подпрограммы).