Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль (ст 33).doc
Скачиваний:
2
Добавлен:
13.11.2019
Размер:
821.76 Кб
Скачать

2. Подпрограммы в языке Pascal. Понятие «процедура».

Все подпрограммы языка Pascal делятся на стандартные (входят в состав языка и вызываются для выполнения по строго фиксированному имени) и определенные пользователем (разрабатываются и именуются самим пользователем). К стандартным относятся, например, подпрограммы модулей Graph и Crt. Далее мы будем рассматривать подпрограммы, определенные пользователем.

В Pascal существует 2 вида подпрограмм: процедуры и функции. Имея один и тот же смысл и аналогичную структуру, процедуры и функции различаются назначением и способом их использования. Функции представляют собой частный случай процедур и будут рассмотрены позже.

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

2. Структура программы.

Program Primer; {заголовок основной программы}

Uses …; {раздел подключения модулей основной программы}

Label …; {раздел описания меток основной программы}

Const …; {раздел описания констант основной программы}

Type …; {раздел описания типов основной программы}

Var …; {раздел описания переменных основной программы}

Procedure <имя_процедуры> (<список формальных параметров>); {заголовок процедуры}

L

Раздел описаний п/п

abel …; {раздел описания меток процедуры}

Const …; {раздел описания констант процедуры}

T

Тело п/п

ype …; {раздел описания типов процедуры}

V

Раздел

операторов п/п

ar
… ; {раздел описания переменных процедуры}

B egin {начало процедуры}

{тело процедуры}

End; {конец процедуры}

Begin {начало основной программы}

<имя_процедуры>(<список фактических параметров>); {вызов процедуры}

End. {конец основной программы}

В отличие от основной программы, в конце подпрограммы (при описании) обязательно ставится точка с запятой, а не точка (основное отличие). <Имя_процедуры> - это идентификатор, уникальный в пределах программы. Упоминание имени процедуры в тексте программы называется вызовом процедуры.

3. Формальные и фактические параметры.

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

Формальные параметры называются так, потому что в <списке формальных параметров> заданы только имена для обозначения исходных данных и результатов работы процедуры. Имя формального параметра отделяется от типа параметра двоеточием, а параметры друг от друга – точкой с запятой. Имена параметров одного типа можно перечислять через запятую, а затем через двоеточие указывать их тип. Внутри подпрограммы все действия производятся с формальными параметрами.

При вызове подпрограммы на место формальных параметров подставляются конкретные значения (выражения) либо имена конкретных переменных. Это <список фактических параметров>. Имена фактических и формальных параметров не должны совпадать.

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

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

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

  • тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра.

Если параметром подпрограммы является массив (одномерный или двумерный), то следует описать тип-массив в разделе описания типов основной программы (см. задачу 1).