- •Вспомогательные алгоритмы. Процедуры и функции.
- •Алгоритмы-процедуры и алгоритмы-функции.
- •Алгоритм-процедура
- •Алгоритм-функция.
- •Программирование с использованием процедур и функций. Описание подпрограммы-процедуры.
- •Описание подпрограммы функции.
- •Обращение к подпрограмме-процедуре
- •Обращение к подпрограмме – функции.
- •Особенность Оbject Pascal.
- •Использование массивов в процедурах.
- •Локальные и глобальные параметры (переменные).
- •Рекурсивные подпрограммы.
- •Косвенная рекурсия.
- •Процедурные типы.
Алгоритм-процедура
- +
Используем этот алгоритм при описании основного алгоритма.
Ответы: max(a+b,a-b)=c
max(a2,b2 )= d
max(a,b)=c
При описании основного алгоритма
обращение к процедуре записывают в блоке:
В нем указывают имя процедуры и в скобках список фактических параметров, соответствующих формальным. При выполнении основного алгоритма мы 3 раза обратились к процедуре Max. Каждый раз со своим набором фактических параметров, соответствующих формальным параметрам процедуры.
-
z
1)
2)
3)
p
M
a+b
a-b
c
a2
b2
d
a
b
c
Таким образом, при записи алгоритма-процедуры в качестве параметров используются как параметры-значения (исходные данные), так и параметры-переменные (результаты).
Алгоритм-функция.
Из множества всевозможных вспомогательных алгоритмов выделяется класс алгоритмов, направленных на вычисление одного единственного значения. Их специфика состоит в том, что в результате выполнения такого алгоритма значение результата присваивается имени самого алгоритма, поэтому отпадает необходимость использования формального параметра-переменной, играющего роль результата.
Пример: Напишем для рассмотренной выше задачи алгоритм-функцию, вычисляющий max(z,p). В отличие от процедуры значение результата присваивается имени функции.
В основном алгоритме вызов функции осуществляется не отдельным оператором, как в случае процедуры, а просто из выражений, содержащих обращение к функции. В данном случае обращение к функции запишем в правой части оператора присваивания.
2вариант:
-
-
z
p
1
a+b
a-b
2
a2
b2
3
a
b
Здесь 2 формальных параметра - z, p. Это параметры-значения. Результат присваивается имени.
Отметим, что при обращении к подпрограмме (процедуре и функции) фактические параметры следует записывать в той же последовательности, что и формальные.
Программирование с использованием процедур и функций. Описание подпрограммы-процедуры.
Процедуры используются в тех случаях, когда в подпрограмме нужно вычислить значение или совокупность значений величин, а также проводятся действия, вообще не связанные с вычислением, например: ввод, вывод данных; построение графика. Структура описания процедуры аналогична структуре основной программы. Она состоит из заголовка описания процедуры и блока описания. За заголовком следуют такие же разделы, как и в основной программе, т.е. 5 разделов (если они нужны). В отличие от основной программы процедура завершается не точкой, а точкой с запятой. Заголовок имеет вид:
Procedure<имя процедуры>(<список формальных параметров>);
Имя процедуры - идентификатор. Список формальных параметров - это перечень идентификаторов, обозначающих исходные данные (параметры-значения) и результаты (параметры-переменные) с указанием их типов.
Пример: Записать процедуру, вычисляющую функцию: y=xn, n € Z
Procedure Stepen (x:real; n:integer; var y:real);
Var i:integer;
Begin
y:=1;
for i:=1 to n do
y:=y*x;
end;
Параметры х, y, n являются формальными, причем x, n – параметры-значения (исходные данные), y – параметр-переменная (результат), поэтому у в списке параметров описывается по-особому с использованием слова var, то есть: var y:real
Кроме того, в этой процедуре используется переменная i. Она описана вне заголовка, в описательном разделе блока процедуры – разделе описания переменных процедуры var.
Переменная i является локальным параметром, который описан внутри данной процедуры и действует только внутри ее – локально.