Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные Паскаль.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
780.93 Кб
Скачать

2.1 Процедуры

Структура процедуры аналогична структуре программы.

Заголовок процедуры начинается с зарезервированного слова pro­cedure, за которым следуют имя процедуры и список формальных параметров, заключённый в круглые скобки. Список может отсутствовать, т.к. не является обязательным. Параметры, перечисленные в заголовке подпрограммы, называют формальными, потому что они не существуют в программе как перечисленные в ней обычные переменные и константы. Формальные параметры существуют внутри подпрограммы и получают значения фактических параметров из программы, причём имена фактических и формальных параметров могут не совпадать.

Затем следует раздел описаний, ничем не отличающийся от аналогич­ного раздела основной программы и состоящий из разделов объявлений меток, конс­тант, типов, переменных, процедур и функций.

За разделом описаний следует раздел операторов, заключённый в операторные скобки begin и end, причём после end ставят точку с запятой в отличие от основной программы.

Например,

procedure имя_процедуры [(<формальные параметры>)];

(* Раздел описаний *)

label – раздел объявления меток;

const – раздел объявления констант;

type – раздел объявления типов;

var – раздел объявления переменных;

procedure – раздел объявления вложенных процедур;

function – раздел объявления вложенных функций;

begin

(* Раздел операторов процедуры *)

...........;

end;

Любая процедура в разделе операторов может содержать несколько операторов и несколько результатов своего выполнения.

Вызывают процедуру по её имени с указанием фактических параметров вместо формальных. Фактическими параметрами могут быть константы, переменные и выражения. С помощью формальных и фактических параметров данные передают из процедуры в программу и наоборот. Каждый формаль­ный параметр указывают вместе со своим типом. Соответствующий ему фактический параметр указывают без типа. Между формальными и факти­ческими параметрами должно быть соответствие по количеству, типу и порядку следования. При этом значения фактических параметров, передаваемых в процедуру, должны быть получены до вызова процедуры.

Если несколько формальных параметров имеют одинаковый тип, то их можно объединить в список, то есть перечислить имена параметров через запя­тую, а затем после двоеточия указать их тип.

Среди формальных параметров различают параметры–значе­ния и параметры–переменные.

Параметры–значения выполняют функции входных параметров процедуры. Они могут получать значения фактических параметров, но не могут пе­редавать свои значения фактическим параметрам, т.е. не могут изменять значения фактических параметров.

Для выделения параметров-переменных перед ними в перечислении формальных параметров ставят зарезервирован­ное слово var. Параметры-пере­менные выполняют функции как входных, так и выходных параметров процедуры. Они могут получать значения фактических параметров, изменять их в проце­дуре в процессе вычислений, тем самым присваивая новые значения фактическим параметрам, и возвращать их в основную программу.

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

Описание заголовка процедуры может иметь несколько разновидностей:

а) без списка формальных параметров и

б) со списком формальных параметров.

В списке формальных параметров подпрограмм допустимы следующие способы задания параметров:

1) параметры, перед которыми отсутствует служебное слово var и за которыми следует идентификатор типа,

2) параметры, перед которыми стоит служебное слово var и за которыми следует тип,

3) параметры, перед которыми стоит служебное слово var, но не имеющие типа вслед за ними,

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

А. Заголовок процедуры без списка формальных параметров состоит только из зарезервированного слова procedure и имени процедуры: