НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




предыдущая главасодержаниеследующая глава

13. Процедуры

При решении разных задач часто возникает необходимость проводить вычисления по одним и тем же алгоритмам, например, вычислять корень уравнения f(x) = 0. В языке паскаль предусмотрена возможность объединения любой последовательности операторов в самостоятельную подпрограмму, называемую процедурой. Процедуры, используемые во многих задачах, помещены в библиотеку процедур и находятся в памяти ЭВМ (оперативной либо внешней).

Те алгоритмы, которые программистом оформляются как процедуры в его собственной программе, должны начинаться с заголовка и кончаться оператором END;

Процедура паскаля - аналог фортранной подпрограммы.

Общий вид заголовка:


здесь N - имя процедуры, PI - формальные параметры, TI - их типы.

Процедура имеет ту же структуру, что и главная программа (PROGRAM): разделы LABEL, CONST, TYPE, VAR и выполняемую часть (от BEGIN до END;).

Процедура помещается в главной программе после раздела VAR и перед BEGIN программы.

Пример.


Формальные параметры - это наименования переменных, через которые передается информация из программы в процедуру либо из процедуры в программу.

Пусть, например, процедура SQ осуществляет решение квадратного уравнения ax2 + bx + c = 0. Тогда она должна иметь пять

формальных параметров: для значений коэффициентов a, b, с и для результатов: х1 и х2.

Для того чтобы запустить процедуру в работу, необходимо к ней обратиться (ее вызвать). Вызов процедуры N производится оператором вида


Здесь N - имя процедуры, P1, Р2, Р3 - фактические параметры.

При вызове процедуры машина производит следующие действия. Устанавливает взаимно однозначное соответствие между фактическими и формальными параметрами, затем управление передает процедуре. После того, как процедура проработает, управление передается вызывающей программе на оператор, следующий за вызовом процедуры.

Соответствие между фактическими и формальными параметрами должно быть следующим:

а) число фактических параметров должно быть равно числу формальных параметров;

б) соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.

Соответствующие параметры не обязательно должны быть одинаково обозначены.

Пример. Вызвать процедуру SQ можно так:


Здесь P,Q,R коэффициенты квадратного уравнения, a Y и Z - корни этого уравнения. Если вызвать SQ оператором SQ(X1,X2,A,B,C); то машина воспримет Х1, Х2, А как коэффициенты уравнения, а корни зашлет в переменные В и С.

Пример. Составим процедуру SQ решения квадратного уравнения ax2 + bx + c = 0 в предположении, что дискриминант неотрицателен.


С помощью этой процедуры решим квадратное уравнение 5,7y2 - 1,2y - 8,3 = 0


Результат Xl=0.49, X2=-5.2.

Как видно из примера, процедура помещается после декларативных операторов программы. Первым выполняется оператор обращения к процедуре


Здесь первые три фактические параметра соответствуют формальным А, В, С, а последние два фактических параметра Y1 и Y2 соответствуют формальным XI и Х2. После того как процедура "запустится", в ячейки А, В, С попадут числа 5.7, -1.2, -8.3 и начнут выполняться операторы D:= . .., Х1: = . . ., Х2:=. . .

После окончания работы процедуры управление возвратится к оператору WRITELN, который отпечатает результат. Параметры процедур могут быть четырех видов: параметры-значения, параметры-переменные, параметры-процедуры, параметры-функции.

предыдущая главасодержаниеследующая глава








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь