
- •Лабораторная работа №7
- •1. Теоретическая часть
- •1.1. Описание подпрограмм в языке программирования Pascal.
- •1.2. Оформление подпрограмм в блок-схемах алгоритмов.
- •1.3 Пример составления алгоритма и программы на языке Pascal для обработки одномерных массивов с использованием подпрограмм.
- •2. Практическая часть
- •2.1 Требования к выполнению работы:
- •2.2 Варианты индивидуальных заданий.
- •2.3 Контрольные вопросы и практические задания:
Лабораторная работа №7
“Программирование с использованием подпрограмм (процедур и функций)”
Цель работы: Освоение методов составления алгоритмов и написания программ с использованием процедур и функций для ввода массивов, вывода их на печать, выполнения их обработки.
1. Теоретическая часть
1.1. Описание подпрограмм в языке программирования Pascal.
В Pascal различают два вида подпрограмм:
– подпрограммы функции;
– подпрограммы процедуры.
Описание подпрограмм выполняется в последнем пятом пункте раздела объявлений всей программы после раздела описания переменных var.
Подпрограммы-процедуры.
Описание процедуры состоит из следующих частей:
1) Заголовок.
procedure nameproc (S);
– procedure – служебное слово;
– nameproc – имя процедуры;
– S – список формальных параметров с указанием их типов.
Тело процедуры.
Аналогично программам состоит из двух частей:
– раздел объявлений (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);