Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
INFORMATIKA.doc
Скачиваний:
52
Добавлен:
31.05.2015
Размер:
343.04 Кб
Скачать

Пример: ввести 2 числа, вывести большее.

Function Max(A,B:real):real;

Begin if A>B then Max:=A

Else Max:=B;

End;

Begin

Read(x,y);

Writeln(Max(x,y);

End;

Процедура.

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

Заголовок процедуры:

Procedure имя(формальные параметры);

Как только исполняемая программа доходит до вызова процедуры, происходит следующее:

  1. в памяти размещаются параметры, передаваемые процедуре;

  2. в памяти размещаются значения локальных переменных, если вызов произошел из другой программы;

  3. запоминается место возврата;

  4. управление передается вызванной процедуре;

  5. после завершения процедуры производится возврат в запомненное место с восстановлением значения локальных переменных.

Пример: вывести на экран сумму n1 элементов массива.

Type arr:array[1..100] of integer;

Var A:arr;

I:integer;

Procedure PrintSum(R:arr, N:integer);

Var summa, I:integer;

Begin

Summa:=0;

For I:=1 to N do summa:=summa+R[I];

Writeln(summa);

End;

Begin

For I:=1 to 100 do read(A[I]);

PrintSum(A,20);

End.

Параметры-значения и параметры-переменные.

2 способа установления соответствия между формальными и фактическими параметрами: это передача параметров по значению и по ссылке.

Выбор конкретного способа зависит от задания формальных параметров, они могут быть двух видов:

  1. параметры – значения, в этом случае фактические параметры передаются по значению;

  2. параметры – переменные, фактические параметры будут переданы по ссылкам.

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

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

Пример: ввести 2 числа, вывести максимальное, используя процедуру.

Var x,y,r:real;

Procedure Max(a,b:real, var M:real);

Begin

if A>b then M:=A;

else M:=B;

end;

begin

read(x,y);

max(x,y,r);

writeln(r);

end.

Локальные и глобальные переменные.

Переменная, объявленная в процедуре или функции, называется локальной для данной процедуры или функции и может быть использована только в ней.

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

Если внутри процедуры имеется еще одна процедура, то переменная объявленная во внешней может быть использована во внутренней. Областью видимости имени называют часть программы, в которой это имя может использоваться. Тогда область видимости глобальной переменной – вся программа, а область видимости локальной – процедура или функция, в которой она объявлена, и все процедуры и функции, входящие в данную. Если глобальная переменная имеет то же имя, что и локальная, то глобальная в области видимости локальной будет недоступна.

Соседние файлы в предмете Информатика