ФУНКЦИИ.

Begin

ПРОЦЕДУРЫ.

Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Имя процедуры – идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе. Таким образом, общий вид будет следующим:

 

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

<описательная часть>

<тело процедуры>

end;

 

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

 

Пример 1: Даны две окружности. Определить длины окружностей C1, C2 и площади, ограниченные этими окружностями S1, S2; L1, L2 - удаление центров окружностей от начала координат 0. Координаты центров окружностей равны x1 и y1, x2 и y2, радиусы R1 и R2.

Решение:

program pr1;

var r1,r2,x1,x2,y1,y2,c1,c2,s1,s2,l1,l2:real;

procedure krug(r,x,y:real; var c,s,l:real);

const pi=3.14;

begin

c:=2*pi*r;

s:=pi*sqr®;

l:=sqrt(sqr(x)+sqr(y))

end;

begin

writeln(‘Введите значения r1,r2,x1,x2,y1,y2:’);

readln(r1,r2,x1,x2,y1,y2);

krug(r1,x1,y1,c1,s1,l1);

krug(r2,x2,y2,c2,s2,l2);

writeln(‘Длины окружностей: C1=’,c1:8:2,’ C2=‘,c2:8:2);

writeln(‘Площадь круга: S1=’,s1:8:2,’ S2=’,s2:8:2);

writeln(‘Удаление центра L1=’,l1:8:2,’ L2=’,l2:8:2)

end.

 

Пример 2: Дан массив действительных чисел {}, где i=1,2, … , n. Определить минимальный элемент массива и его порядковый номер.

Решение:

program pr2;

const n=20;

var a:array [1..n] of real;

min:real;

j,k:integer;

procedure minimym;

var i:integer;

begin

min:=a[1];

k:=1;

for i:=2 to n do

if a[i]<min then

begin

min:=a[i];

k:=i

end

end;

begin

for j:=1 to n do

begin

writeln(‘a[‘,j:2,’]=’);

read(a[j])

end;

minimym;

writeln;

writeln(‘минимальный элемент =’,min:8:2);

writeln(‘порядковый номер = ‘, k:4)

end.

 

В программе все переменные делятся на глобальные и локальные. Глобальные переменные – это те переменные, которые объявлены в описании основной части. Локальные переменные – это те, которые объявлены в процедурах и функциях. Локальные переменные существуют только тогда, когда работает подпрограмма, появляются при вызове и исчезают при завершении работы.

 

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

 

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

<описательная часть>