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

Функции и процедуры в Паскале

 

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

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

            Описание процедуры производится в разделе описаний и имеет следующий общий вид:

 

            Procedure <идентификатор>[(описание формальных параметров)];

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

            begin

            <список команд>

            end;

 

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

 

<идентификатор>[(<список фактических параметров>)].

 

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

 

            Описание функций производится в разделе описаний и имеет следующий общий вид:

 

Function <идентификатор>[(описание формальных параметров)]:<тип результата>;

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

            begin

            <список команд>

            end;

 

            Для передачи результата в программу выполняется операция присваивания вида <идентификатор>:=<выражение>;

 

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

 

<идентификатор>[(<список фактических параметров>)].

 

            Раздел описаний для функций и процедур имеет тот же смысл и структуру, что и для главной программы.

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

Выполняется правило изменения описания элементов с одинаковыми идентификаторами во вложенных элементах. Действительным является самое последнее из предшествующих описаний.

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

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

Описанию формальных параметров – переменных (передаваемых по ссылке) перед ними должно стоять зарезервированное слово var.

 

Пример

 

Procedure pr1(x,y:real;var z:integer);

 

Описаны формальные параметры – значения x и y и параметр  — переменная z.

 

Function fn1(a,b:integer):real;

 

Описаны формальные параметры – значения a и b.

 

Пример

 

Program prim10;

            Var

                        d,e:integer;

            procedure pr2(b,c:integer);

            var

                        v:real;

            Begin

                        v:=(b+c)/3.56;

                        Writeln('v=',v:6:2);

            End;

            Begin

                        Write('d=');

                        Readln(d);

                        For e:=1 to 20 do

                                    Pr2(d,e)

            End.

  

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

  

Program prim11;

            Var

                        d,e:integer;

            function fn2(b,c:integer):real;

            Begin

                        Fn2:=(b+c)/3.56;

            End;

            Begin

                        Write('d=');

                        Readln(d);

                        For e:=1 to 20 do

                        Writeln('v=',fn2(d,e):6:2);

            End.

 

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