Урок из серии: «Язык программирования Паскаль«
Процедуры— это разновидность подпрограмм. Процедура, в отличие от функции, может содержать несколько выходных параметров или ни одного. Её нельзя использовать в качестве операнда в выражених.
Процедуры, не входящие в комплект поставки Паскаль (то есть не встроенные в Паскаль), называются пользовательскими процедурами, потому что их должен определять пользователь.
На этом уроке вы научитесь определять и вызывать пользовательские процедуры.
Описание процедуры
Прежде чем использовать процедуру, ее нужно описать в разделе описаний основной программы.
В разделе описаний процедуры и функции определяют после раздела описания переменных (после раздела 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 получает новое значение.
Вы научились определять и вызывать пользовательские процедуры. На следующем уроке рассмотрим пользовательские функции.
До встречи в следующем уроке!
Очень доступно изложено.