Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Виды параметров процедур и функций




Begin

Begin

Begin

Локализация имен

End.

Begin

End.

Begin

Var

Var

Begin

Begin

Begin

Var

Var

Begin

Begin

Var

Var

Обращение к процедурам или функциям

End.

Begin

Var

End.

Begin

Var

i: integer;

for i:=1 to n do y:=y * x;

stepen3:=y;

function stepen4: real;

n, i: integer;

y: real;

for i:=1 to n do y:=y * x;

stepen4:=y;

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

<имя процедуры>(<список фактических параметров (через «,»)>)

Вызов функции выполняется аналогично. При этом имя функции записывается в выражении. В простейшем случае выражение может состоять только из имени функции.

 

 

Пример обращения к процедурам

program pr1;

m:integer;

q, z: real;

Procedure stepen1(n: integer; x: real; var y: real);

i: integer;

y:=1;

for i:=1 to n do y = y * x;

end;

if m = 0 then z:=1 else

if m > 0 then stepen1(m, a, z) else stepen1(-m, a, z);

write(z);

end;

program pr1;

m:integer;

x, y: real;

Procedure stepen2;

i: integer;

y: real;

y:=1;

for i:=1 to n do y = y * x;

end;

if n = 0 then y:=1 else

if n > 0 then stepen2 else

n:= -n;

x:=1 / x;

end;

stepen2;

write(y);

end;

Пример обращения к функции:

program primer3;

m:integer;

a, z:real;

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

i: integer;

y:real;

for i:=1 to n do y:=y * x;

stepen3:=y;

read(a, m);

if m = 0 then z:=1 else

if m > 0 then z:=stepen3(m, a, z) else z:=stepen3(-m, a, z);

write(z);

Каждый идентификатор переменной характеризуется областью действий именуемой областью видимости имени.

Область видимости идентификатора – это та часть программы в которой можно ссылаться на данный идентификатор.

Область действия идентификатора: от точки объявления и до конца блока, в котором он объявлен.

program GlobalAndLocalvar;

var i:integer;

procedure p1;

procedure p2; { внутренняя процедура дла р1 }

var i:integer; { локальная переменная }

i:=2;

writeln(‘ Вывод из р2: ’, i:2);

end;

i:=1;

writeln(‘ Вывод из р1: ’, i:2);

end;

i:=0;

p1;

writeln(‘ Вывод из Global: ’, i:2);

Результаты

Вывод из Р2: 2

Вывод из Р1: 1

Вывод из Global: 1

Параметры процедур и функций бывают 4-х видов:

1) Параметры – значения

2) Параметры – переменные (в списке параметров зап. var)

3) Параметры – процедуры

4) Параметры – функции

В ВР вместо 3 и 4 видов введен процедурный тип + 2 дополнительных вида

5) Параметры – константы

6) Нетипизированные параметры – переменные

Между списками формальных и фактических параметров должно быть полное соответствие. Отличие между формальными параметрами в способе обмена данными между вызывающей программой и подпрограммой.

 

 

Параметры – значения

procedure(a, b,c:real);

Передаются по значению

 

Передача параметров-значений выполняется по следующим правилам

1) Основная программа отводит место для хранения A, B, C

2) В момент вызова процедура отводит место для хранения формальных параметров a, b, c в соответствии с их описанием.

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

4) После этого связь между основной программой и процедурой прерывается

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

Например:

bq(2 + x, 0.5. 3);

Параметры – переменные

procedure(var d:real);

 

Разница между параметрами – значениями и параметрами – переменными хорошо видна на примере программы:

program param;




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 847; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.