- •Программирование с использованием подпрограмм
- •Структура программы с использованием подпрограмм
- •Классификация параметров подпрограмм
- •Программирование с использованием процедур
- •Задания для самостоятельной работы
- •Программирование с использованием функций
- •Задания для самостоятельной работы
- •Процедурные типы
- •Задания для самостоятельной работы
- •Примеры решения задач с использованием процедурных типов
Классификация параметров подпрограмм
Параметры подпрограмм можно классифицировать по следующим признакам: области действия, месту записи, связи с данными, способу передачи параметров и по использованию подпрограмм в качестве параметров.
По области действия параметры подпрограмм подразделяются на глобальные и локальные. Глобальные параметры описываются в программе, и их область действия - программа с подпрограммами.
Желательно не использовать глобальные параметры в подпрограммах.
Локальные параметры описываются в подпрограмме, и их область действия ограничивается своей подпрограммой.
По месту записи параметры подпрограмм подразделяются на формальные параметры, записываемые в заголовке подпрограммы, и фактические, записываемые при вызове подпрограммы.
Формальные параметры показывают, что и как нужно делать с данными при обращении, а фактические параметры при вызове подпрограммы заменяют формальные, передавая в подпрограмму данные для обработки и возвращая результаты.
Фактические параметры должны соответствовать формальным параметрам по типу, количеству и порядку следования.
По связи с данными параметры подразделяются на входные и выходные. Входные параметры передают данные для обработки в подпрограмму, а выходные возвращают результаты обработки.
По способу передачи параметры подразделяются на параметры-значения, параметры-переменные и параметры-константы.
Параметры-значения. В списке формальных параметров подпрограммы описание параметра-значения следующее:
Procedure PR(<имя параметра>:<тип>);
Параметры-значения имеют свойства:
Тип параметра может быть любой (простой или описанный в разделе Type), кроме файлового типа.
При вызове подпрограммы значение фактического параметра передается в подпрограмму через дополнительную область памяти. При передаче большого числа данных значительно увеличиваются затраты памяти для хранения копий данных и время на их копирование.
Эти параметры могут быть только входными.
В качестве фактических параметров могут быть константы, переменные или выражения того же типа, что и соответствующий формальный параметр.
Параметры-переменные. В списке формальных параметров подпрограммы описание параметра-переменной следующее:
Procedure PR(Var <имя параметра>:<тип>; Out <имя параметра>:<тип>);
Параметры-переменные имеют свойства:
Тип параметра может быть любой (простой или описанный в разделе Type).
При вызове в подпрограмму передается адрес фактического параметра. В этом случае нет ограничений на обработку больших объемов информации.
Ключевое слово Var позволяет передавать данные в подпрограмму и возвращать из процедуры результаты обработки (параметры могут быть одновременно входными и выходными). Передача параметра как выходного может быть выполнена с ключевым словом Out, но при этом не гарантируется передача в процедуру входного значения.
В качестве фактических параметров могут быть только переменные того же типа, что и соответствующий формальный параметр.
Параметры-константы. В списке формальных параметров подпрограммы описание параметра-константы следующее:
Procedure PR(Const <имя параметра>:<тип>);
Параметры-константы имеют свойства:
Тип параметра может быть любой (простой или описанный в разделе Type).
При вызове в подпрограмму передается адрес фактического параметра. В этом случае требуется меньше места и времени на передачу большого числа параметров.
Эти параметры могут быть только входными. Фактические параметры не изменяются, и тем самым обеспечивается безопасность работы программы.
В качестве фактических параметров могут быть только переменные того же типа, что и соответствующий формальный параметр.
