|
Процедуры и функции
- Локализация имен
- Описание подпрограммы
- Заголовок
- Параметры
- Параметры-массивы и параметры-строки
- Процедурные типы. Параметры-функции
и параметры-процедуры
- Нетипизированные параметры-переменные
- Рекурсия и опережающее описание
- Расширенный синтаксис вызова функций
Как отмечалось в гл.2, процедуры и функции
представляют собой относительно самостоятельные фрагменты
программы, оформленные особым образом и снабженные именем.
Упоминание этого имени в тексте программы называется
вызовом процедуры (функции). Отличие функции от процедуры
заключается в том, что результатом исполнения операторов,
образующих тело функции, всегда является некоторое единственное
значение или указатель, поэтому обращение к функции
можно использовать в соответствующих выражениях наряду
с переменными и константами. Условимся далее называть
процедуру или функцию общим именем «подпрограмма», если
только для излагаемого материала указанное отличие не
имеет значения.
Подпрограммы представляют собой инструмент,
с помощью которого любая программа может быть разбита
на ряд в известной степени независимых друг от друга
частей. Такое разбиение необходимо по двум причинам.
Во-первых, это средство экономии памяти:
каждая подпрограмма существует в программе в единственном
экземпляре, в то время как обращаться к ней можно многократно
из разных точек программы. При вызове подпрограммы активизируется
последовательность образующих ее операторов, а с помощью
передаваемых подпрограмме параметров нужным образом
модифицируется реализуемый в ней алгоритм.
Вторая причина заключается в применении
методики нисходящего проектирования программ (см. гл.2).
В этом случае алгоритм представляется в виде последовательности
относительно крупных подпрограмм, реализующих более
или менее самостоятельные смысловые части алгоритма.
Подпрограммы в свою очередь могут разбиваться на менее
крупные подпрограммы нижнего уровня и т.д. (рис. 8.1).
Последовательное структурирование программы продолжается
до тех пор, пока реализуемые подпрограммами алгоритмы
не станут настолько простыми, чтобы их можно было легко
запрограммировать.
В этой главе подробно рассматриваются
все аспекты использования подпрограмм в Турбо Паскале.
|