Изучение принципов алгоритмического программирования на языке Pascal



         

Подпрограммы


Нередко при проектировании алгоритмов можно выявить похожие и повторяющиеся его участки, выполняющие некоторую типичную операцию. Например, такой операцией может быть ввод-вывод или сортировка массива. Язык Pascal позволяет каждый раз по мере необходимости повторять в программе набор операторов, который позволяет выполнять такие действия. Однако есть более элегантное решение. Оно состоит в использовании подпрограмм – имеющих свой самостоятельный и законченный смысл участков программного кода, описанных отдельно от основной программы и вызываемых по мере необходимости.

Подпрограммы в языке Pascal представлены функциями (Function) и процедурами (Procedure). Функции, в отличие от процедур, возвращают некоторое значение и могут быть вызваны при вычислении выражения. 

Для придания подпрограммам универсальности предусмотрен механизм передачи параметров. Параметры – данные, при помощи которых конкретизируются действия при каждом вызове подпрограммы. Например, функция cos(X)

позволяет рассчитать значение косинуса от конкретного углового значения. Само же угловое значение передаётся в качестве параметра X.

Синтаксис объявления подпрограмм в языке Pascal схож с синтаксисом описания основной программы и представлен ниже:

 

<заголовок подпрограммы>

[Const <описание_констант>;]

[Type <описание_типов>;]

[Var <описание_переменных>;]

Begin

  <Операторы_тела_подпрограммы>;

End;

В секциях Const, Type и Var объявляются константы, типы и переменные, используемые только внутри подпрограммы. Если эти идентификаторы заняты некоторыми внешними объектами, объявленными на уровне программы, то внешние объекты становятся недоступными. В этом случае говорят о конфликте имён или перекрытии объектов программы по идентификатору.

Если переменные основной программы объявлены до описания подпрограмм, то они являются глобальными. Глобальные переменные и константы доступны также и для операторов в теле подпрограммы. Однако следует помнить, что использование глобальных переменных для передачи данных в подпрограмму (в обход параметров) снижает её универсальность и может стать причиной возможных ошибок, трудно диагностируемых в процессе отладки.




Содержание  Назад  Вперед