Процедура EXIT; осуществляет выход из программного модуля - подпрограммы или основной программы. Из подпрограммы управление передается этой процедурой в вызывающую программу к следующему за ее вызовом оператору. В программе EXIT приводит к завершению ее работы.
Процедура HALT(Cod); прекращает выполнение программы, вызывает в случае необходимости подпрограмму завершения и осуществляет выход в операционную систему. Cod - необязательный параметр, определяющий код завершения программы.
Пример и задания с подпрограммой-процедурой
Пример. Ввести два массива A [1..3], B [1..4] с помощью процедуры "ввод". Вычислить средние арифметическое и геометрическое значения элементов каждого из них, используя подпрограмму-процедуру.
Для решения задачи pазpаботана СА (pис. 15), состоящая из основной программы (а) и двух процедур: одной - для ввода элементов массива (б), другой – для определения средних арифметического и геометрического значений в массиве (в), а также написана пpогpамма для реализации алгоритма:
Program lr7;
type
mass = array[1..5] of integer;
var
ka, kb: byte;
Sr, Sg: real;
a, b: mass;
PROCEDURE VVOD ( Var d: mass; Var k: byte ); {заголовок процедуры ввода}
Var
i: integer;
Begin {тело процедуры}
writeln(' введите число элементов');
read(k);
writeln(' введите массив из ', k,' элементов');
FOR i:=1 to k do read(d[i]);
end; {конец процедуры VVOD}
PROCEDURE SARR (k:byte; f:mass; var s,p:real); {заголовок процедуры}
var
i: byte;
begin
s:=0 ;
p:=1;
for i:=1 to k do begin
s := s+f [i]; p:=p*f[i]
end ;
s := s/k ;
p := EXP(Ln(p)/k)
End; {конец тела процедуры SARR}
BEGIN{Блок основной программы}
VVOD(a,ka); { ввод элементов массива А и его размера}
SARR(ka,a,Sr,Sg); {вызов процедуры для обработки массива А}
writeln( ‘ SrA= ’ , Sr:5:2 , ‘ SgA= ’ , Sg :5:2);
VVOD(b,kb);
SARR(kb,b,Sr,Sg); {вызов процедуры для обработки массива B}