КАТЕГОРИИ: Архитектура-(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) |
Процедурные типы
Процедуры в Паскале разрешается использовать при описании новых типов. На основании таких типов, обладающих равными правами с другими типами, можно описывать переменные, что позволяет передавать подпрограммы в качестве параметров. Подобный прием в некоторых случаях помогает эффективно решить сложную задачу, с трудом поддающуюся кодированию обычным способом, однако пользоваться им нежелательно, по крайней мере начинающим разработчикам. Примеры:
var SumP: TSumFun; Далее, если в тексте описана подпрограмма, то ее можно присвоить переменной соответствующего типа: SumP:= Sum;
Реально здесь произойдет вызов функции Sum с аргументами 2 и 2. Подпрограмму можно передавать в другую подпрограмму как параметр. Это удобно, когда над аргументами надо выполнять различные сложные действия в зависимости от некоторых условий. В приведенном ниже примере функция MathAction будет вычислять или сумму, или разность параметров, в зависимости от того, какая функция указана в качестве параметра. type TMathFun = function (X,Y: Integer): Integer; function Sub(X,Y: Integer): Integer; function MathAction(X,Y: Integer; Теперь к функции MathAction можно обращаться так: WriteLn(MathAction) 10, 4, Add)); при этом будет напечатано число 14, или так: WriteLn(MathAction(10, 4, Sub));
var pi, p2: TP; function B: integer; p2:= A; f2:= В; N:= f2;
Указатели на подпрограммы
var X: Pointer; X:= @МуProcedure;
Подобным способом в программе определяются и процедурные константы-указатели: const Р: Pointer = @MyFunction; Контрольні питання 1. Надайте характеристику поняттю структури підпрограми 2. Охарактеризуйте поняття заголовку підпрограми 3. Опишіть процедуру передачі параметрів по назві та значенню 4. Охарактеризуйте параметри константи 5. Охарактеризуйте параметри результату АУДИТОРНЕ ЗАНЯТТЯ ЗМІСТОВИЙ МОДУЛЬ 5: МЕТОДОЛОГІЯ РОЗРОБКИ ПРОГРАМ ТЕМА 5.1: ПРИЙОМИ ОСНОВ ПРОГРАМУВАННЯ Лекція №33 – Етапи розробки програм
Дата добавления: 2014-12-25; Просмотров: 358; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |