Бейсик | Паскаль | Си++ | |
Заголовок процедуры | SUB имя (список_параметров) | procedure имя (список_параметров); | void имя(список_ параметров) |
Тело | Последовательность операторов | begin последовательность операторов end; | { последовательность операторов }; |
Завершение | END SUB | нет | нет |
Как функция возвращает значение
После того как функция рассчитала нужное значение, ей требуется явно вернуть его в вызывающую программу. Для этого может использоваться специальный оператор (return в Си++) или особая форма оператора присваивания, когда в левой части указывается имя функции, а справа — возвращаемое значение.
Далее приведены примеры функции, вычисляющей значение квадрата аргумента.
Бейсик:
FUNCTION SQR% (X AS INTEGER)
SQR% = X*X
END FUNCTION
Паскаль:
function SQR(X: integer): integer;
begin
SQR:= X*X
end;
Си++:
int SQR(int x)
{
return x*x;
};
Формальные и фактические параметры
Во время создания подпрограммы заранее неизвестно, какие конкретно параметры она может и будет получать. Поэтому в качестве переменных, выступающих в роли ее аргументов в заголовке, могут использоваться произвольные допустимые названия, даже совпадающие с уже имеющимися. Компилятор все равно поймет, что это не одно и то же.
|
|
Параметры, которые указываются в заголовке подпрограммы, называются формальными. Они нужны только для описания тела подпрограммы. А параметры (конкретные значения), которые указываются в момент вызова подпрограммы, называются фактическими параметрами. При выполнении операторов подпрограммы формальные параметры как бы временно заменятся на фактические.
Пример.
int a, у;
а = 5;
у = SQR(a);
Программа вызывает функцию SQR() с одним фактическим параметром а. Внутри подпрограммы формальный параметр х получает значение переменной а и возводится в квадрат. Результат возвращается обратно в программу и присваивается переменной у.