КАТЕГОРИИ: Архитектура-(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; Просмотров: 973; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |