
1_SEMESTR_1 / Материалы к сессии (лектор Бобкова В.А.) / Учебник по информатике (курс лекций) / 6. Основы программирования на Паскале / 6.7.3. Процедуры
.rtf6.7.3. Процедуры
Заголовок процедуры состоит из: 1) зарезервированного слова procedure; 2) имени; 3) списка формальных параметров.
Процедура, как и функция, вызывается по ее имени с указанием фактических параметров в круглых скобках: имя (фактические параметры);
Основное отличие процедур от функций состоит в том, что имени функции присваивается возвращаемое значение, а имени процедуры – нет.
Пример: программа, использующая процедуру, которая выводит на экран строку, состоящую из звездочек. Длина строки (количество звездочек) является параметром процедуры.
Program primer;
Var
n : integer;
procedure starline ( k : integer); {заголовок процедуры}
var
i : integer; {описание переменной для процедуры}
begin {начало тела подпрограммы}
for i : = 1 to k do
write ( ′ * ′ );
end; {конец тела подпрограммы}
begin {начало основной программы}
write ( ′ n = ′ ); readln (n);
starline (n); {вызов подпрограммы}
end.
В подпрограмму можно передавать целый массив. Для этого в качестве формального параметра указывается массив, тип которого должен быть сначала описан в разделе описания типов type.
Например :
const
n = 5; m = 6 ;
type
mas = array [1..n, 1..m ] of real;
var
m : mas ;
procedure pr ( a : mas );
В этом случае обращение к процедуре в вызывающей программе будет иметь вид : pr(m); При этом формальный параметр – массив а – принимает значение фактического параметра – массива m.
Когда лучше использовать процедуры и когда функции ? Это зависит от конкретного случая. Если подпрограмма вычисляет единственный результат, ее можно реализовать как функцию. Если же от подпрограммы требуется вычислить несколько значений, ее лучше оформить в виде процедуры.