Подпрограммы
Содержание
Процедуры и функции
Структура, назначение и применение подпрограмм. Параметры и аргументы, области действия имен. Процедурный тип данных.
Подпрограммы.. 1
Объявление и описание. 2
Объявление функции. 2
Объявление процедуры.. 2
Описание подпрограммы.. 2
Список параметров. 3
Возвращаемые значения. 4
Вызов подпрограмм.. 5
Способы подстановки аргументов. 6
Параметр-значение. 6
Описание. 6
Механизм передачи значения. 6
Параметр-переменная. 7
Описание. 7
Механизм передачи значения. 7
Параметр-константа. 7
Описание. 7
Механизм передачи значения. 8
Области действия имен. 8
Разграничение контекстов. 8
Побочный эффект. 9
Совпадение имен. 9
Нетипизированные параметры.. 10
Явное преобразование типа. 10
Совмещение в памяти. 10
Открытые параметры.. 11
Открытые массивы.. 11
Открытые строки. 11
Процедурный тип данных. 12
Описание. 12
Аргументы.. 12
Вызов. 13
Весьма поэтичное объяснение понятия подпрограмма дал В.Ф. Очков: " Подпрограмма - это припев песни, который поют несколько раз, а в текстах песен печатают только один раз".
В самом деле, если есть необходимость многократно совершать одни и те же действия, то вполне логично описать их единожды, а потом лишь ставить на них ссылку. Именно такой смысл имеет использование подпрограмм.
С математической же точки зрения любая подструктура - это замкнутая часть целого, которую можно рассматривать как самостоятельную структуру: подмножество является множеством, подгруппа - группой, подалгебра - алгеброй, подпространство - пространством и т.д.
Таким образом, подпрограмма - это в первую очередь программа. Со всеми полагающимися полноценной программе атрибутами: именем, разделами описания меток (label), констант (const), типов (type), переменных (var) и даже со своими (вложенными) функциями и процедурами.
В языке Pascal имеется два вида подпрограмм: процедуры и функции. Описывая их общие черты, мы будем употреблять обобщенный термин " подпрограмма ". Если же в тексте встретятся слова " процедура " или " функция ", то это будет означать, что излагаемая информация свойственна только одному конкретному виду подпрограмм: либо только процедурам, либо только функциям.