Новые книги

Книга посвящена вопросам становления и профессионального развития копирайтера. В доступной и легкой форме автор на собственных примерах показывает многие ошибки начинающих авторов, рассказывает о профессиональных секретах копирайтинга, делится своими наблюдениями о профессии. Книга будет интересна как уже практикующим авторам, так и тем, кто только решил связать свою жизнь с написанием текстов. Рекомендуется самому широкому кругу читателей.
Это самый полный, доступный и вместе с тем краткий самоучитель работы на компьютере. Автор этой книги, признанный специалист по обучению компьютерной грамотности, создал действительно удобную книгу для самостоятельного обучения. Проработка этого самоучителя — залог вашей компьютерной грамотности. Вы узнаете самое главное о выборе конфигурации ПК, его комплектующих, работе на нем, о самых распространенных прикладных программах и многое другое. У вас появится системный подход к решению любых задач, связанных с пользованием компьютером. Это позволит вам освоить любой новый для вас программный продукт, настроить любое дополнительное устройство.

27. Модули

27. Модули

   Модуль (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.

   Использование составных имен применяется не только к именам  пере-

менных, а ко всем именам, описанным в интерфейсной части модуля.

   Рекурсивное использование модулей запрещено.

   Если в модуле имеется раздел инициализации,  то операторы из этого

раздела будут выполнены перед началом выполнения программы, в которой

используется этот модуль.