Лекция: Вспомогательные алгоритмы. Реализация вспомогательных алгоритмов в Паскале. Механизм передачи параметров.

Части алгоритмов, которые могут использоваться целиком в других алгоритмах называются подпрограммами или вспомогательными алгоритмами. В Паскале реализуются в виде процедур и функций. Процедуры описываются следующим образом:

Procedure <имя процедуры, по которому может быть вызвана> ({var} <список формальных параметров и их типы>);

{раздел описаний}

const

var

begin

<тело процедуры>

end;

Функции описываются:

Function <имя функции, по которому может быть вызвана> ({var} <список формальных параметров и их типы>): <тип значений функции>;

{раздел описаний}

const

var

begin

<тело функции>

end;

Если перед формальным параметром в описании процедуры или функции есть var, то формальный параметр является параметром-переменной, его результат передается в место вызова. Если слова var нет, то параметр является параметром-значением и результат его значения в место вызова не передается. Формальные параметры резервируют место в памяти ЭВМ под фактические параметры – те значения, которые передаются процедуре или функции при их обращении. Кол-во и тип формальных и фактических параметров должно совпадать. Внутри подпрограмм – локальные параметры («видны» только в подпрограмме), в основной программе – глобальные.

Отличие функции от процедуры: функция принимает единственное значение, при ее описании необходимо указывать тип функции (т.е. тип этого значения). В теле функции должен присутствовать оператор присваивания <имени функции> ее значения. Вызов функции: значение функции дб присвоено глобальному параметру. Тип функции и глобального параметра дб одинаковыми.

Пример:

function stepen(x:real; n:integer):real;

var i:byte; s:longint;

begin

if n=0 then stepen:=1

else

begin

s:=1;

for i:=1 to abs(n) do

s:=s*x;

if n>0 then stepen:=s

else stepen:=1/s;

end

end;

{ОП}

begin

y:=stepen(a,b);

end.

При вызове подпрограммы ЭВМ выполняет следующие действия: выделяет память для переменных описанных в подпрограмме, присваивает формальным параметрам значения фактических, выполняет операторы подпрограммы, идет возврат в точку вызова подпрограммы и выполняется следующий оператор в программе. При этом пересылка параметров идет по значению (передается значение) и по ссылке (передается адрес ячейки, куда будет записано новое значение). Локальным переменным выделяется память только при обращении, после она освобождается.

 

еще рефераты
Еще работы по информатике