Процедура в Паскале и ее формат.

В языке PASCAL выделяют два вида подпрограмм: процедура(ргосв<1иге) и

функция (function). Имея один и тот же смысл и аналогичную структуру, процедуры и

функции различаются назначением и способом их использования.

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

и функции объявляются в разделе описания вслед за разделом описания переменных.

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

Процедуры служат для задания совокупности действий, направленных на изме­нение внешней по отношению к ним программной обстановки; например, вычисления каких-либо выражений с разными значениями параметров или рисования геометриче­ских фигур с различными значениями сторон или радиусов. Структура процедуры имеет следующий вид:

procedure имя [(список формальных параметров)];

раздел описаний begin

раздел операторов end;

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

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

Тело процедуры заключается в операторные скобки BEGIN и END, причем по­сле END, в отличие от основной программы, вместо точки ставится точка с запятой.

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

имя [(список фактических параметров)];

Формальные параметры - параметры, определенные в заголовке процедуре.


Фактические параметры - выражения, задающие конкретные значения при обра­щении к процедуре.

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

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

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

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

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

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

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

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

Пример процедуры:

PROCEDURE EXPRES(A,B,C:REAL;VAR X,Y:REAL);

VAR Z:REAL;

BEGIN

Z-A+B+C;

X:=SQR(Z); (*КВАДРАТг *) Y:=SQRT(Z) (*KOPEHbH3Z *) END;

Эту процедуру можно вызвать таким образом:


EXPRESS(25.4,44.6,30,X1,Y1);

Формальные входные параметры А, В, С принимают значения соответствующих фактических параметров, А=25.4, B=344.6, С=30. При этих значениях выполняется про­цедура. Результатом выполнения процедуры являются X, Y, которые передают свои значения соответствующим фактическим параметрам XI, Y1. Таким образом, в основ­ной программе будем иметь Xl=10000, Yl=10.

Допускается одинаковое обозначение соответствующих формальных и факти­ческих параметров. Например, вызов процедуры может иметь вид:

EXPRESS(25.4,44.6,30,X,Y);

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

А:=25;С-.=30;

EXPRESS(A,44.6,C,X1,Y1);

или

D:=44.6;R:=10;

EXPRESS(25.4,D,R+20,Z,T);

В любом случае формальные параметры получат значения А=25.4, В=44.6, 030.

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

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








Дата добавления: 2015-12-11; просмотров: 948;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.