ФУНКЦИИ.
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<имя> [(<список формальных параметров>)]:<тип результата>;
<описательная часть>