Студопедия

КАТЕГОРИИ:


Архитектура-(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/end. В них располагаются только операторы и вызовы других подпрограмм

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

1. Соответствующее значение присваивается переменной, имя которой совпадает с названием функции.

function Sum(А, В: Integer): Integer;
begin
Sum:= A + В
end;

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

2. Соответствующее значение присваивается специальной локальной переменной Result (эту переменную описывать не надо).

function Sum(А, В: Integer): Integer;
begin
Result:= A + В
end;

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

Demo;

Функции, возвращающие значение, могут использоваться так же, как и процедуры. Например, описанную выше функцию Sum можно вызывать так:

X:= Sum(2,2);

а можно и так:

Sum(2,2);

В последнем случае значение, возвращаемое функцией, просто теряется.



С развитием языка Паскаль в рамках среды Delphi 7 в него добавлялось множество новых полезных возможностей, нередко заимствованных из других языков программирования. Эти возможности вводились в Паскаль не в виде новых операторов, что нарушило бы идеологию языка, а в виде стандартных подпрограмм, которые, хотя и не выделяются цветом наравне с другими ключевыми словами, тем не менее, фактически являются таковыми. И реализуются подобные подпрограммы не в виде обращений к машинному коду, хранимому в программной библиотеке. Компилятор не добавляет в генерируемый код ссылку, а превращает данную «процедуру», подобно обычным операторам, в небольшой набор машинных инструкций (а иногда и в одну такую инструкцию).

Одна из таких весьма полезных процедур — Exit (без параметров). Exit;
При ее выполнении происходит немедленное завершение текущей подпрограммы и передача управления вызывающей программе. Такая возможность часто требуется, когда логика, реализуемая в подпрограмме, достаточно сложна и организовать линейный выход из подпрограммы (по достижении ее конца) затруднительно.

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




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


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


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



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




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