КАТЕГОРИИ: Архитектура-(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) |
М о д у л и
О П Е Р А Т О Р Ы В Ы Х О Д А
Для завершения работы программ, процедур и функций без предвари- тельного перехода по меткам к закрывающему end в TURBO PASCAL введены процедуры Exit и Halt. Вызов Exit завершает работу своего программного блока и передает управление вызывающей программе. Если Exit выполняется в подпрограм- ме, то выполнение этой подпрограммы прекратится, и далее будет выпол- няться следующий за вызовом этой подпрограммы оператор. Если Exit вы- полняется в основной программе, выход из нее будет эквивалентен ее нормальному завершению. Вызов процедуры Halt, где бы она не находилась, завершает работу программы и передает управление операционной системе. Процедура Halt имеет структуру Halt(n), где n - код возврата, ко- торый может быть проанализирован операционной системой с помощью ко- манды IF ERRORLEVEL. Значение n=0 соответствует нормальному заверше- нию работы программы. Вызов процедуры Halt без параметра эквивалентен вызову Halt(0).
Модуль (UNIT) в TURBO PASCAL - это особым образом оформленная биб- лиотека подпрограмм. Модуль в отличие от программы не может быть за- пущен на выполнение самостоятельно, он может только участвовать в построении программ и других модулей. Модули позволяют создавать личные библиотеки процедур и функций и строить программы практически любого размера. Модуль в TURBO PASCAL представляет собой отдельно хранимую и неза- висимо компилируемую программную единицу. В общем случае модуль - это совокупность программных ресурсов, предназначенных для использования другими программами. Под программ- ными ресурсами понимаются любые элементы языка TURBO PASCAL: констан- ты, типы, переменные, подпрограммы. Модуль сам по себе не является
выполняемой программой, его элементы используются другими программны- ми единицами. Все программные элементы модуля можно разбить на две части: - программные элементы, предназначенные для использования другими программами или модулями, такие элементы называют видимыми вне моду- ля; - программные элементы, необходимые только для работы самого моду- ля, их называют невидимыми или скрытыми. В соответствии с этим модуль, кроме заголовка, содержит две основ- ные части, называемые интерфейсом и реализацией. В общем случае модуль имеет следующую структуру:
unit <имя модуля>; {заголовок модуля}
interface { описание видимых программных элементов модуля }
{ описание скрытых программных элементов модуля }
begin { операторы инициализации элементов модуля } end.
В частном случае модуль может не содержать части реализации и час- ти инициализации, тогда структура модуля будет такой:
unit <имя модуля>; {заголовок модуля}
interface { описание видимых программных элементов модуля }
implementation
end.
Использование в модулях процедур и функций имеет свои особенности. Заголовок подпрограммы содержит все сведения, необходимые для ее вы- зова: имя, перечень и тип параметров, тип результата для функций, эта информация должна быть доступна для других программ и модулей. С дру- гой стороны, текст подпрограммы, реализующий ее алгоритм, другими программами и модулями не может быть использован. Поэтому заголовок процедур и функций помещают в интерфейсную часть модуля, а текст - в часть реализации. Интерфейсная часть модуля содержит только видимые (доступные для других программ и модулей) заголовки процедур и функций (без служеб- ного слова forward). Полный текст процедуры или функции помещают в часть реализации, причем заголовок может не содержать список формаль-
ных параметров. Исходный текст модуля должен быть откомпилирован с помощью дирек- тивы Make подменю Compile и записан на диск. Результатом компиляции модуля является файл с расширением.TPU (Turbo Pascal Unit). Основное имя модуля берется из заголовка модуля. Для подключения модуля к программе необходимо указать его имя в разделе описания модулей, например:
uses CRT, Graph;
В том случае, если имена переменных в интерфейсной части модуля и в программе, использующей этот модуль, совпадают, обращение будет происходить к переменной, описанной в программе. Для обращения к пе- ременной, описанной в модуле, необходимо применить составное имя, состоящее из имени модуля и имени переменной, разделенных точкой. Например, пусть имеется модуль, в котором описана переменная К:
unit M; interface var K: Integer; implementation ................. end.
Пусть программа, использующая этот модуль, также содержит перемен- ную К:
Program P; uses M; var K: Char; begin ............. end.
Для того, чтобы в программе P иметь доступ к переменной K из моду- ля M, необходимо задать составное имя M.K. Использование составных имен применяется не только к именам пере- менных, а ко всем именам, описанным в интерфейсной части модуля. Рекурсивное использование модулей запрещено. Если в модуле имеется раздел инициализации, то операторы из этого раздела будут выполнены перед началом выполнения программы, в которой используется этот модуль.
Дата добавления: 2014-01-07; Просмотров: 208; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |