| ||||||||||||||||||||||||||
|
1. Процедуры.В Турбо Паскале процедурой называется часть программы, имеющая имя и предназначенная для решения определенной задачи. Процедура состоит из заголовка и тела. После однократного описания процедуру можно вызвать по имени из последующих частей программы любое количество раз. Когда процедура выполнит свою задачу, программа продолжится с оператора, следующего непосредственно за оператором вызова процедуры. Так же как и все остальные объекты программы, процедуру перед использованием необходимо объявить (описать). То есть, с одной стороны, существует определение процедуры, а с другой стороны, правила ее использования в программе. Описание процедуры имеет вид: Формальные_параметры представляют собой список переменных с указанием их типа, которые отделяются друг от друга точкой с запятой. Эти переменные не описываются в разделе описаний процедур. Формальные_параметры не обязательны. Допускается использование процедур без списка параметров. Имя процедуры не может находиться в выражении в качестве операнда. Подпрограмма выполняется только после ее вызова. Вызов процедуры в
основной программе осуществляется с использованием ее имени. В круглых скобках
после имени перечисляются параметры процедуры (если они были описаны) и
производится оператором вида: Оператор вызова процедуры может находиться в любом месте программы,
например: 1.1. Параметры процедур.Параметры процедур - это переменные, в которых хранятся значения, которые либо передаются в процедуру из программы, либо передаются из процедуры в программу. Параметры процедур могут быть трех видов:
Описание входных параметров процедуры в списке формальных параметров
имеет такой вид: Если процедура должна возвращать в программу какие-то значения,
соответствующие переменные должны быть описаны как параметры-переменные с
использованием слова var. Соответственно описание выходных параметров выглядит
так: Здесь N - входной параметр, в котором хранится передаваемое в процедуру значение количества слагаемых в сумме, Sum - выходной параметр-переменная, в которой хранится возвращаемое в программу значение суммы, а i - локальная переменная. Параметры обеспечивают механизм замены, который позволяет выполнить процедуру с различными начальными данными. Между фактическими параметрами записанными в операторе вызова процедуры и формальными параметрами в заголовке устанавливается взаимно однозначное соответствие в результате их перебора слева направо. Количество и тип формальных параметров равны количеству и типу фактических параметров. При обращении к процедуре происходит согласование формальных параметров с фактическими параметрами ее вызова. Значения параметров передаются в порядке появления их в заголовке процедуры и в обращении к ней. В операторе вызова процедуры параметры представляют собой список фактических значений параметров, перечисленных через запятую (без указания их типа). Имена соответствующих параметров могут быть одинаковыми или разными. Связь формальных и фактических параметров может осуществляться по значению и по ссылке:
[program FiveMessages] Программа FiveMessages содержит два описания: описание переменной
Tally и описание процедуры SlowDown. Элементом перечня параметров является
выражение: Count : integer (формальный параметр). Связь параметра Count с
фактическим параметром 400 происходит по значению. Операции над параметром Count
по сути являются операциями над некоторой локальной переменной процедуры
SlowDown. Начальное значение этой переменной 400. При выполнении программы
выводятся пять строк: "Просыпайся..." и звучит музыка. Sound, Delay и NoSound -
стандартные процедуры модуля CRT. При использовании в качестве параметров процедур данных сложного типа
(массивы, множества, записи) в основной программе необходимо предварительно
описать имя типа этих данных, которые указываются в списке формальных параметров
процедуры.
Пример: Пример применения процедур GoSound и GoString в программе DemoStringGo - "бегущая строка". [program DemoStringGo] Пример: Программа вычисления площади круга и длины окружности по значению радиуса. Иллюстрация применения параметров-значений и параметров-переменных. [program AreaAndLen] |
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||||
© Copyright(c) 2004 Amro Group. All rights reserved |
|