Билет №31
Процедуры языка Паскаль. Типы процедур. Правила выбора, описания и использования процедур. Процедура - это вспомогательный алгоритм, который описывает некоторое абстрактное действие и к которому можно обращаться по имени. Процедура являегся одним из важных средств программирования, традиционным назначением которой является экономия труда программиста. Например, зачем много раз писать программу вычисления sin(x), если ее можно написать один раз и многократно использовать для различных значений х. Аппарат процедур в языках программирования состоит из двух частей: описание процедуры и вызов процедуры. Описание процедуры (процедура) - это фрагмент программы, оформленный по определенным правилам и имеющий имя, по которому его можно вызвать. Процедура обязательно содержит имя, тело процедуры и может содержать или не содержать параметры, которые называются формальными параметрами. Имя процедуры должно быть уникальным. В теле процедуры заключен алгоритм процедуры. Формальные параметры описывают входные и выходные данные процедуры. В языке Паскаль существует два вида процедур: процедуры общего вида и функции. Результатом вычисления процедуры общего вида могут быть переменные как скалярного, так и структурного типа. Функция может вычислять только одно значение скалярного типа. Вызов процедуры общего вида производится оператором процедуры. С точки зрения структурного программирования оператор процедуры является элементарным оператором, наряду с оператором присваивания, т.е. рассматривается как однократное действие по преобразованию входных данных в выходные. Параметры, передаваемые процедуре при вызове, называются фактическими параметрами.
Процедуры общего вида: Описание процедуры помещается в конце раздела описаний и имеет следующую структуру: {<Раскрываемая абстракция>} <Заголовок> <Тело процедуры>
<Раскрываемая абстракция> является комментарием, в котором кратко определена цель процедуры. <Тело процедуры> описывает алгоритм. <Заголовок процедуры> имеет вид: procedure <имя процедуры> (<список описаний формальных параметров>) Список параметров может отсутствовать, и тогда процедура является процедурой без параметров. Вызов процедуры осуществляется с помощью оператора процедуры: <оператор процедуры>::=<имя процедуры>(<список фактических параметров>); Вызов процедуры включает следующие шаги: - среди описаний процедур ищется процедура с именем <имя процедуры>; - вместо формальных параметров подставляются (передаются) соответствующие фактические параметры; - выполняется модифицированное тело процедуры; - управление возвращается из процедуры к оператору, следующему за оператором процедуры. Таким образом, взаимодействие вызывающего алгоритма и процедуры есть взаимодействие "хозяин - слуга", т.е. может быть цепочка вызовов, но управление всегда возвращается в исходную точку вызова. _____________________________________________________________________________________ _____________________________________________________________________________________
|