Урок 14. Описание и вызов процедуры

Урок из серии: «Язык программирования Паскаль«

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

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

На этом уроке вы научитесь определять и вызывать пользовательские процедуры.

Описание процедуры

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

В разделе описаний процедуры и функции определяют после раздела описания переменных (после раздела Var) и до до начала раздела операторов (до слова Begin).

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

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

Общий вид процедуры:

Procedure <имя>[<список формальных параметров с указанием типов>];
   <раздел описаний>
Begin
   <операторы>
End;

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

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

Через параметры- переменные из подпрограммы в основную программу передаются  результаты. Перед параметрами-переменными ставится служебное слово Var.

Вызов процедуры

Процедура не может выполнится сама, ее необходимо вызвать. Чтобы вызвать процедуру, нужно указать ее имя и список фактические параметров.

Общий вид вызова процедуры:

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

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

Пример 1. Оформить в виде процедуры алгоритм вычисления степени y = xn с натуральным показателем n.

procedure degree(x,y: integer; var st: longint);
   var i:integer;
begin
   st :=1;
   For i:=1 to y do st:= st * x;
end;

Процедура имеет три параметра: первый параметр — основание степени, второй — показатель степени, а третий — это результат. Поэтому первые два параметра — это параметры значения, а третий — это параметр-переменная и перед ним надо написать слово Var.

В программе процедуры и функции  описывается в разделе описаний основной программы после раздела описания переменных. Вся программа для нашей задачи имеет следующий вид:

program primer1;
var a, n: integer;
    s:longint;
procedure degree(x,y: integer; var st: longint);
var i:integer;
begin
  st :=1;
  For i:=1 to y do st:= st * x;
end;
begin {main}
  writeln('Введите два числа');
  readln(a, n);
  degree(a,n,s); {Вызов процедуры}
  writeln('Результат: ', s); {Вывод результата}
end.

Процедура вызывается по имени. В нашем примере, фактические параметры а, n и s передают свои значения соответствующим формальным параметрам x, y и st. После завершения работы процедуры переменные  a и n имеют те же значения, что и при вызове, а s получает новое значение.

Вы научились определять и вызывать пользовательские процедуры. На следующем уроке рассмотрим пользовательские функции.

До встречи в следующем уроке!

Подписаться
Уведомить о
guest

1 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
hgjkllhfj
hgjkllhfj
12 лет назад

Очень доступно изложено.