КАТЕГОРИИ: Архитектура-(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 CircleS:=Pi*R*R End; В этой функции один формальный параметр-значение и один результат, возвращаемый через имя функциии. Пример: процедура для нахождения действительных корней квадратных уравнений вида ax 2+ bx + c. Procedure SqEqRoots(a,b,c:Real;Var x1,x2:Real;Var Err:Boolean); Var d:real; d:=b*b-4*a*c; {вычисление дискриминанта} If d>=0 then begin d:=sqrt(d); x1:=(-b-d)/(2*a);x2:=(-b+d)/(2*a); Err:=False End else Err:=true End; В этой процедуре через параметры-значения передаются коэффициенты квадратного уравнения, через параметры-переменные возвращается результат. Если уравнение имеет действительные корни, они возвращаются через параметры-переменные x1 и x2, а параметр-переменная Err, используемая как признак ошибки, будет иметь значение False. Если у уравнения нет корней, признак ошибки будет иметь значение True, а содержимое переменных x1 и x2 не изменится. В процедуре использована стандартная функция sqrt, которая вычисляет квадратный корень из аргумента (фактического параметра). Подробнее стандартные функции рассмотрены далее. Синтаксис вызова процедур и функций одинаков: <вызов процедуры или функции>::= <имя процедуры или функции> ["(" <фактический параметр> {";" <фактический параметр> ")"]. Как отмечалось ранее, отличие состоит в том, что вызов процедуры – это отдельный оператор, а вызов функции – это частный случай фактора (сомножителя) в выражении. Типы, количество и последовательность фактических параметров должны соответствовать описаниям в списке формальных параметров. Пример. Если в программе описаны переменные V, D, h типа Real и функция CircleS из примера в предыдущем пункте, можно вычислить объем цилиндра диаметром 0,8 метров и высотой 1,2 метра следующим образом: D:=0.8; h:=1.2; {Задаются исходные данные} V:=h*CircleS(D/2); {Вычисляется объем цилиндра} Во второй строке в функцию CircleS передается радиус, как диаметр, деленный пополам. Результат выполнения функции CircleS (площадь круга в основании цилиндра) умножается на высоту цилиндра h, и значение объема заносится в переменную V. Если в каком-то блоке определено имя программного элемента (константы, типа данных, переменной, процедуры или функции), это имя можно использовать для доступа к объекту от места, где оно определено, до конца соответствующего блока. В том числе, во всех блоках, вложенных в этот блок, по этому имени будет доступен тот же самый объект. Имя, определенное во вложенном блоке, во внешнем блоке недоступно. Если во вложенном блоке определен элемент с таким же именем, которое было назначено другому элементу во внешнем блоке, то во внешнем блоке по этому имени доступен элемент, объявленный во внешнем блоке, а во вложенном блоке доступен элемент, объявленный во вложенном блоке. Имя функции считается объявленной переменной внутри этой функции, используемой для возврата результата из функции. Таким образом, любой элемент, объявленный в блоке программы, доступен всем процедурам и функциям, объявленным в той же программе после этого элемента. Такие элементы называют глобальными. Элементы, объявленные в процедуре или функции, доступны только внутри соответствующей процедуры или функции, а также в процедурах и функциях, вложенных в эту процедуру или функцию после места объявления соответствующего элемента. Они не доступны в блоке программы и в других процедурах и функциях, вложенных непосредственно в блок программы. Такие элементы называют локальными.
Дата добавления: 2014-01-11; Просмотров: 585; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |