буровые работы
Чтобы превратить эту программу в описание процедуры

Чтобы превратить эту программу в описание процедуры, выбрасываем из нее операторы ввода и вывода, так как связь процедуры с программой, в которую она включена, осуществляется через параметры, а не через аппарат ввода-вывода (хотя возможны процедуры, в которых этот аппарат используется, как и в самостоятельных программах, для связи с внешней средой). В программе остаются три идентификатора s, i и п, и нужно решить, какие из них должны быть включены в число формальных параметров процедуры. Очевидно, что переменная i будет нужна только самой процедуре для ее работы. Ее начальное значение вырабатывается самой процедурой. Ее конечное значение не представляет интереса после выполнения процедуры, к тому же оно не будет определено после выхода из цикла, в котором эта переменная выступает в роли параметра
никла. В ином положении находятся переменные п и $. Значение переменной п должно быть задано перед началом работы процедуры, так как оператор ввода этого значения мы решили выбросить из ее тела. Значение переменной s, выработанное в результате выполнения процедуры, является единственным результатом этого выполнения и, разумеется, должно быть доступно программе, обратившейся к процедуре. В силу этих соображений обе эти переменные следует рассматривать как параметры процедуры. Описания этих переменных исключаются из программы в ходе ее преобразования в тело процедуры. Описание переменной i остается в теле процедуры. Таким образом, тело процедуры должно иметь следующий вид:
begin integer i\ s:=0;
for t: = Jf step / until n do s:=s + l/l
end
Чтобы задать перечень формальных параметров процедуры и указать их свойства, процедура снабжается заголовком. В заголовке процедуры ей дается также некоторое наименование — идентификатор. В рассматриваемом случае описание процедуры вместе с заголовком может быть таким:
procedure h (пу s); value п\
integer п; real s; begin integer i\ s: = 0\
for i: = 1 step / until n do s: =s + l/i
end
Здесь h — идентификатор процедуры, n и s — ее формальные параметры. Заголовок содержит так называемые спецификации формальных параметров
integer п; real s;
В случае параметров, выступающих в роли простых переменных, их спецификации внешне не отличаются от описаний типа. Часть заголовка процедуры
value п;
говорит о различии между параметрами п и s.