Параметры и аргументы

Параметры являются элементами подпрограммы и используются при описании ее алгоритма. Аргументы указываются при вызове подпрограммы и замещают параметры при выполнении подпрограммы. Параметры могут быть любого типа, включая структурированный. Существуют следующие виды параметров [4]:

· Значение

· Константа

· Переменная

· Нетипизированная константа и переменная

Группа параметров, перед которыми в заголовке подпрограммы отсутствуют слова var или const и за которыми следует указание их типа, называются параметрами-значениями. В подпрограмме значения таких параметров можно изменять, но эти изменения не влияют на значение соответствующих им аргументов, которые были подставлены вместо фактических параметров-значений [4]. Например

Procedure Print(K:array of integer);

Заметим, что если в качестве параметра передается массив, то указывается только тип элементов, без указания размера.

Обратите внимание! Если в качестве параметра используется массив, то внутри подпрограммы нумерация его элементов всегда начинается с нуля, поэтому рекомендуется объявлять глобальный массив размерностью с нуля. Для передачи двумерного массива лучше объявить cпециальный тип и передавать в качестве параметра переменную созданного типа.

Type

MyType=array [0..Nmax,0..Nmax] of ….;

var

A:MyType;

Группа параметров, перед которыми в заголовке подпрограммы стоит слово const и за которыми следует описание их типа, называют параметрами-константами. В теле подпрограммы значение параметра-константы изменить нельзя [4].

Группа параметров, перед которыми в заголовке подпрограммы стоит слово var и за которыми следует описание их типа, называют параметрами-переменными. Они используются в тех случаях, когда значение должно быть передано из подпрограммы в вызывающий блок. В этом случае при вызове подпрограммы параметр-переменная замещается аргументом, и любые изменения формального параметра отражаются на аргументе [4]. Таким способом можно вернуть результаты из подпрограммы по окончанию ее работы. Например

function Tan(a:real;var d:boolean):real;

Для параметров-констант и параметров-переменных можно не указывать их тип, в этом случае они считаются нетипизированными. Подставляемые на их место аргументы могут быть любого типа, и программист должен самостоятельно интерпретировать типы параметров в теле подпрограммы.

Группы параметров в описании подпрограммы разделяются точкой с запятой.

Пример 8.

Возведение вещественного числа в целую степень. (Использование функции)

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

Function Stepen(x:real;n:integer):Real;

begin

if x=0 then Result:=0

else

begin

result:=exp(n*ln(abs(x)));

if (x<0) and (n mod 2 <>0) then

Result:=Result*(-1);

end;

end;

var

x,y:real;

n:integer;

begin

Writeln('Vuchislenie stepeni');

Write('vvedite chislo ');

readln(x);

Write('vvedite stepen ');

readln(n);

y:=Stepen(x,n);

Write('Otvet ',y:5:5);

Readln;

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: