Чтобы работа подпрограммы имела смысл, ей надо получить данные из внешней программы. Данные передаются подпрограмме в виде параметров или аргументов, которые обычно описываются в ее заголовке также, как и переменные.
Управление последовательностью вызова подпрограмм
В Basic оператором CALL вызывается подпрограмма. Подпрограмма активизируется в момент их вызова.
Подпрограммы (ПП) могут быть вложенными — т.е. вызов других ПП не только из главной программы, но и из любых ПП.
Иногда бывает, что ПП вызывает сама себя — такой прием называется рекурсией. Опасен! - бесконечный самовызов.
Структура подпрограммы:
· заголовок с параметрами;
· тело (операторы);
· завершение.
Функции
Basic
Pascal
C++
Заголовок функции
FUNCTION имя (список параметров)
Тип возвращаемого значения определяется специальным символом после имени функции
function имя (список параметров): тип функции;
Тип функции
имя (список параметров)
Тело
последовательность операторов
begin
последовательность операторов
end;
{
последовательность операторов
};
Завершение
END FUNCTION
нет
нет
Процедуры
Basic
Pascal
C++
Заголовок процедуры
SUB имя (список параметров)
procedure имя (список параметров);
void имя (список параметров)
Тело
последовательность операторов
begin
последовательность операторов
end;
{
последовательность операторов
};
Завершение
END SUB
нет
нет
Как функция возвращает значение в основную программу? (в C++ - return) – т.е. специальный оператор или особая форма оператора присваивания: в левой части указывается имя функции, а справа - возвращаемое значение.
Basic
FUNCTION SQR% (X AS INTEGER)
SQR%=X*X
END FUNCTION
Pascal
function SQR (x: integer): integer;
begin
SQR:= X*X
end;