Лабораторная работа №7
“Программирование с использованием подпрограмм (процедур и функций)”
Цель работы: Освоение методов составления алгоритмов и написания программ с использованием процедур и функций для ввода массивов, вывода их на печать, выполнения их обработки.
Теоретическая часть
1.1. Описание подпрограмм в языке программирования Pascal.
В Pascal различают два вида подпрограмм:
– подпрограммы функции;
– подпрограммы процедуры.
Описание подпрограммвыполняется в последнем пятом пункте раздела объявлений всей программы после раздела описания переменных var.
Подпрограммы-процедуры.
Описание процедуры состоит из следующих частей:
1) Заголовок.
procedure nameproc (S);
– procedure – служебное слово;
– nameproc – имя процедуры;
– S – список формальных параметров с указанием их типов.
2) Тело процедуры.
Аналогично программам состоит из двух частей:
– раздел объявлений (label, const,…), в котором объявляются локальные переменные, то есть те переменные, которые будут встречаться только внутри процедуры;
|
|
– операторная или выполняемая часть:
Begin
Оператор1;
Оператор2;
…
End;
Обращение к подпрограмме процедуре (вызов процедуры).
Обращение выполняется в основной программе.
Begin
…
Nameproc (SF);
…
End.
При этом указывается имя процедуры и список фактических параметров. Список фактических параметров должен четко повторять по смыслу список формальных параметров. В качестве фактических параметров могут выступать имена переменных или численные значения.
Например, если процедура описана следующим образом:
Procedure Poisk(i,j:byte; var a:real)
То ее вызов может выглядеть следующим образом:
Poisk(i, j, a);
Poisk(i1, j1, a1);
Poisk(3, 5, a);
Если в списке формальных параметров присутствуют переменные, значения которых возвращаются из подпрограммы, то перед ними при описании подпрограммы всегда ставится var. При вызове подпрограммы в списке фактических параметров для таких переменных не может быть указано числовое значение, а только имя переменной.
При вызове подпрограмм количество фактических параметров должно совпадать с количеством формальных и соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу. При этом имена формальных и фактических параметров могут совпадать.
Подпрограммы-функции.
Также как и процедуры, функции при использовании требуют двух этапов: описание и обращение. Особенность функций заключается в том, что результатом ее работы может быть только одно значение, тип которого указывается через двоеточие после списка формальных параметров.
Описание функции аналогично описанию процедуры:
|
|
function namefun (s:тип):тип;
где function – служебное слово;
namefun – имя функции;
s:тип – список формальных параметров с указанием типов;
тип – указание типа результата.
В теле процедуры обязательно должен присутствовать такой оператор присваивания, левая часть которого – это имя функции.
Обращение к подпрограмме-функции выполняется в основной программе. При этом ее имя с указанием фактических параметров должно быть правой частью оператора присваивания либо аргументом другой подпрограммы.
Например, если функция описана:
Procedure Max(i,j:byte; a:real):real;
То ее вызов может выглядеть следующим образом:
N:=Max(i, j, a);
N:=Max(3, 5, 11.5);
Writeln(Max(1,2,0.5):8:2);