Компиляция и использование модулей

КУРСОВАЯ РАБОТА

 

по дисциплине: «Информационные технологии»

 

Тема: «Информационные технологии в профессиональной деятельности»

 

 

Расчетно-пояснительная записка

 

 

Разработала студентка A.В.Бражникова

Подпись, дата Инициалы, фамилия

Руководитель проф Коровин Е.Н. .

Подпись, дата Инициалы, фамилия

Члены комиссии ____________________________________________________

Подпись, дата Инициалы, фамилия

Нормоконтролер ____________________________________________________

Подпись, дата Инициалы, фамилия

Защищена __________________________Оценка_______________________________

Дата

 

 

2016

Министерство образования и науки РФ

ФГБОУ ВО «Воронежский государственный технический университет»

Факультет заочного обучения

 

Кафедра системного анализа и управления в медицинских системах

 

 

ЗАДАНИЕ

курсовую работу

по дисциплине: «Информационные технологии»

Тема работы: «Информационные технологии в профессиональной деятельности»

 

Студент группы БМЗ-151 Бражникова Ангелина Витальевна Фамилия, имя, отчество

Номер варианта 4 .

Технические условия _____________________________________________________

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Сроки выполнение этапов _________________________________________________

Срок защиты курсовой работы _____________________________________________

Руководитель проф Коровин Е.Н. ,

Подпись, дата Инициалы, фамилия

Задание принял студент А.В. Бражникова

Подпись, дата Инициалы, фамилия

Замечания руководителя

 

Содержание

 

Задание на курсовую работу 2

Замечания руководителя 3

Введение 5

Теоретическая часть

1 Классификация информационных технологий 6

1.1 Понятие информации и технологии 6

1.2 Виды и классификации информационных технологий 7

1.2.1 Классификация по типу интерактивности 8

1.2.2 Классификация по области применения и по степени использования в них компьютеров 8

1.2.3 Классификация средств компьютерной техники 9

1.2.4 Различные виды классификаций ИТ, используемых в ЭИС и другие виды 12

2 Структура модулей языка программирования Turbo Pascal 15

2.1 Общая структура модуля 16

2.2 Подпрограммы в модулях 19

2.3 Компиляция и использование модулей 22

2.4 Стандартные модули 28

2.5 Пример модуля 30

2.6 Синтаксические диаграммы 32

Практическая часть

3 Перемножение двух матриц 35

Заключение 41

Список используемой литературы 42

 

Введение

Непременным условием повышения эффективности управленческого труда является оптимальная информационная технология, обладающая гибкостью, мобильностью и адаптивностью к внешним воздействиям. Информационная технология предполагает умение грамотно работать с информацией и вычислительной техникой.

Информационные технологии (ИТ, от англ. information technology, IT) — широкий класс дисциплин и областей деятельности, относящихся к технологиям управления и обработки данных, в том числе, с применением вычислительной техники. В прошедшее время под информационными технологиями чаще всего понимают компьютерные технологии. В частности, ИТ имеют дело с использованием компьютеров и программного обеспечения для хранения, преобразования, защиты, обработки, передачи и получения информации. Спецов по компьютерной технике и программированию часто называют ИТ-специалистами.

Согласно определению, принятому ЮНЕСКО, ИТ — это комплекс взаимосвязанных, научных, технологических, инженерных дисциплин, изучающих методы эффективной организации труда людей, занятых обработкой и хранением информации; вычислительную технику и методы организации и взаимодействия с людьми и производственным оборудованием, их практические приложения, а также связанные со всем этим социальные, экономические и культурные проблемы. Сами ИТ требуют сложной подготовки, больших первоначальных затрат и наукоемкой техники. Их введение должно начинаться с создания математического обеспечения, формирования информационных потоков в системах подготовки специалистов.

Информационная технология (ИТ) базируется и зависит от технического, программного, информационного, методического и организационного обеспечения, а программное обеспечение реализует функции накопления, обработки, анализа, хранения, интерфейса с компьютером.

 

 

1 Классификация информационных технологий

 

Для того, чтобы правильно понять, оценить, грамотно разработать и использовать информационные технологии в различных сферах жизни общества необходима их предварительная классификация.

В данной работе будет дано не только определение информационным технологиям, но будет определена различная классификация ИТ.

 

1.1 Понятие информации и технологии

 

В современной науке существует много различных подходов к определению термина "информационные технологии" (ИТ). Данный термин связан с двумя понятиями: информация и технология.

Технология (от греческих "techne" - мастерство, искусство и "logos" - понятие, учение) определяется как совокупность знаний о способах и средствах осуществления процессов, при которых происходит качественное изменение объекта. В ином понимании технология - это совокупность процессов, приемов обработки или переработки материалов, применяемых в каком-либо деле, мастерстве, искусстве, а также научное описание способов производства, совокупность знаний о способах и средствах осуществления процессов, при которых происходит качественное изменение объекта.

Термин "информация" (от латинского "informatio" - разъяснение, изложение) первоначально обозначает сведения, передаваемые от одного человека к другому устно, письменно или посредством каких-либо условных сигналов, или с использованием каких-либо технических средств. С середины XX века понятие информации стало общенаучным. Этим понятием стали обозначать любые сведения, передаваемые: от человека к человеку, от человека к автоматическому устройству, от одного автоматического устройства к другому, от одной клетки живого вещества к другой, от одного организма к другому, от одной организации к другой и т. п. Учитывая выше сказанное, определим термин "ИТ" исходя из совокупности рассмотренных нами выше понятий: технологии и информации.

Таким образом, информационная технология - сочетание процедур, реализующих функции сбора, получения, накопления, хранения, обработки, анализа и передачи информации в организационной структуре с использованием средств вычислительной техники, или, иными словами, совокупность процессов циркуляции и переработки информации и описание этих процессов. Целью ИТ является качественное формирование и использование информационных ресурсов в соответствии с потребностями пользователя. Методами ИТ являются методы обработки данных. В качестве средств ИТ выступают математические, технические, программные, информационные, аппаратные и др. средства.

 

1.2 Виды и классификации информационных технологий

Существенное влияние на классификацию оказывают возможные режимы обработки данных в вычислительных системах (ВС). Режимы эксплуатации во многом связаны с повышением эффективности работы пользователей. Режимы работы в основном определяют эффективность работы ВС (рисунок 1).

 

Рисунок 1 - Классификация информационных технологий

 

1.2.1 Классификация по типу интерактивности

 

Для того, чтобы правильно понять, оценить, грамотно разработать и использовать информационные технологии в различных сферах жизни общества необходима их предварительная классификация.

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

ИТ разделяются на две большие группы: технологии с избирательной и с полной интерактивностью. ИТ с избирательной интерактивностью принадлежат все технологии, обеспечивающие хранение информации в структурированном виде. Сюда входят банки и базы данных и знаний, видеотекст, телетекст, интернет и т.д. Эти технологии функционируют в избирательном интерактивном режиме и существенно облегчают доступ к огромному объему структурируемой информации. В данном случае пользователю разрешается только работать с уже существующими данными, не вводя новых.

ИТ с полной интерактивностью содержит технологии, обеспечивающие прямой доступ к информации, хранящейся в информационных сетях или каких-либо носителях, что позволяет передавать, изменять и дополнять ее.

 

1.2 .2 Классификация по области применения и по степени использования в них компьютеров

 

Информационные технологии следует классифицировать прежде всего по области применения и по степени использования в них компьютеров. Различают такие области применения информационных технологий, как наука, образование, культура, экономика, производство, военное дело и т. п.

По степени использования в информационных технологиях компьютеров различают компьютерные и бескомпьютерные технологии. В области образования информационные технологии применяются для решения двух основных задач: обучения и управления.

В обучении информационные технологии могут быть использованы, во-первых, для предъявления учебной информации обучающимся, во-вторых, для контроля успешности ее усвоения. С этой точки зрения информационные; технологии, используемые в обучении, делятся на две группы: технологии предъявления учебной информации и технологии контроля знаний.

К числу бескомпьютерных информационных технологий предъявления учебной информации относятся бумажные, оптотехнические, электроннотехнические технологии. Они отличаются друг от друга средствами предъявления учебной информации и соответственно делятся на бумажные, оптические и электронные. К бумажным средствам обучения относятся учебники, учебные и учебно-методические пособия; к оптическим - эпипроекторы, диапроекторы, графопроекторы, кинопроекторы, лазерные указки; к электронным телевизоры и проигрыватели лазерных дисков.

К числу компьютерных информационных технологий предъявления учебной информации относятся:

- технологии, использующие компьютерные обучающие программы;

- мультимедия технологии;

- технологии дистанционного обучения.

 

1.2.3 Классификация средств компьютерной техники

 

Современные средства компьютерной техники можно классифицировать. Персональные компьютеры - это вычислительные системы с ресурсами, полностью направленными на обеспечение деятельности одного управленческого работника. Это наиболее многочисленный класс вычислительной техники, в составе которого можно выделить персональные компьютеры IBM PC и совместимые с ними компьютеры, а также персональные компьютеры Macintosh. Интенсивное развитие современных информационных технологий обусловлено как раз широким распространением с начала 1980-х гг. персональных компьютеров, сочетающих в себе такие качества, как относительная дешевизна и достаточно широкие для непрофессионального пользователя функциональные возможности.

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

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

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

Технологии мультимедиа (от англ. multimedia - многокомпонентная среда), которая позволяет использовать текст, графику, видео и мультипликацию в интерактивном режиме и том самым расширяет рамки применения компьютера в учебном процессе.

Виртуальная реальность (от англ. virtual reality -возможная реальность) - это новая технология неконтактного информационного взаимодействия, создающая с помощью мультимедийной среды иллюзию присутствия в реальном времени в стереоскопически представленном «экранном мире». В таких системах непрерывно поддерживается иллюзия места нахождения пользователя среди объектов виртуального мира. Вместо обычного дисплея используются очки телемониторы, в которых воспроизводятся непрерывно изменяющиеся события виртуального мира. Управление осуществляется с помощью реализованного в виде «информационной перчатки» специального устройства, определяющего направление перемещения пользователя относительно объектов виртуального мира. Кроме этого в распоряжении пользователя есть устройство создания и передачи звуковых сигналов.

Автоматизированная обучающая система на основе гипертекстовой технологии позволяет повысить усвояемость не только благодаря наглядности представляемой информации. Использование динамического, т.е. изменяющегося, гипертекста дает возможность провести диагностику обучаемого, а затем автоматически выбрать один из оптимальных уровней изучения одной и той же темы. Гипертекстовые обучающие системы дают информацию таким образом, что и сам обучающийся, следуя графическим или текстовым ссылкам, может применять различные схемы работы с материалом. Все это позволяет реализовать дифференцированный подход к обучению.

Специфика технологий Интернет - WWW (от англ. World Wide Web - всемирная паутина) заключается в том, что они предоставляют пользователям громадные возможности выбора источников информации: базовая "информация на серверах сети; оперативная информация, пересылаемая по электронной почте; разнообразные базы данных ведущих библиотек, научных и учебных центров, музеев; информация о гибких дисках, компакт-дисках, видео- и аудиокассетах, книгах и журналах, распространяемых через Интернет-магазины, и др.

 

1.2.4 Различные виды классификаций ИТ, используемых в ЭИС и другие виды

 

Как говорилось выше, примером критерия классификации ИТ может служить пользовательский интерфейс (совокупность приемов взаимодействия с компьютером), реализующийся операционной системой.

В свою очередь, операционные системы осуществляют командный, WIMP, SILK интерфейс. Командный интерфейс - предполагает выдачу на экран приглашения для ввода команды. WIMP - (Window-окно, Image-изображение, Menu-меню, Pointer-указатель). SILK - (Speech-речь, Image-изображение, Language-язык, Knowledge-знание). В данном интерфейсе при воспроизведении речевой команды происходит переход от одних поисковых изображений к другим, согласно семантическим связям.

Операционные системы подразделяются на однопрограммные, многопрограммные и многопользовательские. Однопрограммные - SKP, MS DOS и др. Они поддерживают пакетный и диалоговый режимы обработки информации. Многопрограммные - UNIX, DOS 7.0, OS/2, WINDOWS; позволяют совмещать диалоговую и пакетную технологии обработки информации. Многопользовательские - (сетевые операционные системы) - INTERNET, NOVELL, ORACLE, NETWARE и др. осуществляют удаленную обработку в сетях, а также диалоговую и пакетную технологии на рабочем месте.

Информационная технология включает в себя системы автоматизации проектирования (САПР), где в качестве объекта может быть отдельная задача или элемент экономической информационной системы (ЭИС), например, CASE - технология, утилита Designer пакета Clarion.

Неотъемлемой частью информационной технологии является электронная почта, представляющая собой набор программ, позволяющий хранить и пересылать сообщения между пользователями. В настоящее время разработаны технологии гипертекста и мультимедиа для работы со звуком, видео, неподвижными картинками.

Классифицируя информационную технологию по типу носителя информации, можно говорить о бумажной (входные и выходные документы) и безбумажной (сетевая технология, современная оргтехника, электронные деньги, документы) технологиях.

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

Также существует классификация технологий и связанных с ними информационных систем по виду ставящихся перед ними, для решения задач, и по виду запускаемых процессов обработки различной информации. Данная классификация состоит из двух основных этапов. Первый этап начинается с шестидесятых годов прошлого века и заканчивается в семидесятые годы прошлого века. За это десятилетие информационные технологии только начали развиваться. Первые шаги в обработке информации. Для этого использовались специальные вычислительные центры. Вся информация использовалась в режиме коллективного использования.

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

Еще одна классификация посвящена техническому обеспечению, используемому для информационных технологий. Первый этап связан с решением трудностей с обработкой огромных, по тем временам, объемов данных, в сложных условиях, когда производительности и аппаратных ресурсов не хватает. Второй этап это массовое появление у пользователей ЭВМ серии IBM/360. Третий этап возвестил о превращении компьютера в инструмент непрофессионального пользователя.

Также существует классификация информационных технологий по типу информации, по ней составлена рисунок-схема (рис. 2).

 

Рисунок 2 - Схема классификации ИТ в зависимости от типа обрабатываемой информации

 

 

2 Структура модулей языка программирования Turbo Pascal

 

Понятие модуля или, в более общем случае, модульного про­граммирования, возникло на определенном этапе развития вычислительного дела и было обусловлено, в первую оче­редь, возрастающими объемами программ, их увеличиваю­щейся внутренней сложностью и коллективным характером разработок. К настоящему времени понятие модуля продела­ло значительную эволюцию от примитивного "разрубания" текста программы на произвольные части или создания биб­лиотек включаемых фрагментов до независимо хранимых и разрабатываемых, независимо компилируемых и тестируемых программных единиц со строго определенными интер­фейсами, которые могут объединяться в различных сочета­ниях, что характерно, например, для языка Ada.

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

С этой точки зрения, введение понятия модуля в Turbo Pascal, которое было проведено, начиная с 4-ой версии систе­мы, явилось решающим шагом на пути его превращения в язык, пригодный для крупных разработок производственно­го и коммерческого назначения на современном уровне тех­нологии программирования. Стал возможным современный стиль реализации программных пакетов различного назначе­ния и ориентации, легко подключаемых к любой программе. Кроме того, за счет введения модулей удалось ослабить огра­ничения на суммарный объем готовых программ.

Модульные средства в Turbo Pascal'e заметно слабее анало­гичных возможностей тех языков, для которых модульный принцип был положен в основу их проектирования. Однако следует признать, что разработчики языка Turbo Pascal на­шли удачный компромисс, достаточно органично встроив принципиально новое понятие в считающийся уже классиче­ским язык Pascal, не нарушив при этом его целостности, эле­гантности и простоты и одновременно значительно расши­рив его возможности.

 

Общая структура модуля

 

В языке Turbo Pascal модуль (unit) по определению считает­ся отдельной программой. Если подпрограмма является структурным элементом Pascal-программы и не мо­жет существовать вне ее, то модуль представляет собой от­дельно хранимую и независимо компилируемую единицу. С учетом этого факта можно дополнить рассмотрение общей структуры Pascal-программы следующей синтак­сической диаграммой для случая языка Turbo Pascal (рисунок 3):

 

Рисунок 3 - Программа на языке Turbo Pascal

 

В самом общем виде модуль представляет собой совокуп­ность (коллекцию) программных ресурсов, предназначенных для использования другими модулями и программами. Под ресурсами в данном случае понимаются любые программные объекты языка Turbo Pascal - константы, типы, переменные, подпрограммы. Важно понимать, что модуль сам по себе не является выполняемой программой - его объекты ИСПОЛЬ­ЗУЮТСЯ другими программными единицами.

Все программные ресурсы модуля можно разбить на две части: объекты, прямо предназначенные для использования другими программами или модулями, и объекты рабочего характера. Например, если модуль содержит некоторую под­программу универсального назначения, пригодную для ис­пользования другими программами, то, скажем, вызывае­мые этой подпрограммой процедуры и функции, содержа­щиеся в модуле, и используемые ею переменные имеют сугу­бо внутренний характер. В соответствии с этим модуль, кро­ме заголовка, имеет две основные части, называемые интер­фейсом и реализацией.

В интерфейсной части модуля сосредоточены описания объектов, доступных из других программ; такие объекты на­зывают видимыми вне модуля. В части реализации помеща­ются рабочие объекты, называемые также невидимыми или скрытыми.

Заголовок модуля составляется из служебного слова unit и следующего за ним идентификатора, являющегося именем модуля. Заголовок завершается символом ';' (точка с запя­той). Интерфейсная часть начинается со служебного слова interface, за которым следует совокупность обычных опи­саний. Часть реализации начинается служебным словом implementation, за которым идут описания скрытых объек­тов. Завершает модуль, как и программу, служебное слово end и символ '.' (точка).

Кроме перечисленных частей, модуль может содержать так называемый раздел инициализации, предназначенный для установки начальных значений переменных модуля пе­ред его использованием. Этот раздел следует после раздела реализации, начинается со служебного слова begin и содер­жит последовательность операторов.

Таким образом, общая структура модуля может быть представлена следующей схемой (рисунок 4) :

Рисунок 4

Приведем простейший пример модуля. Для того, что­бы избежать многократного описания в различных програм­мах некоторых общеупотребительных типов данных, молено сосредоточить их в одном модуле. Данный пример касается описаний, связанных с датами, месяцами, днями и т.д.

 

unit Calendar;

interface

type

Days = (Mon,Tue,Wed,Thu,Fri,Sat,Sun);

WorkingDays = Mon..Fri;

Months = (Jan,Feb,Mar,Apr,May,June,

July,Aug,Sept,Oct,Nov,Decem);

Summer = June..Aug;

Autumn = Sep..Nov;

Spring = Mar..May;

DayNo = 1..31;

YearNo = 1900..2000;

Date = record

Day : DayNo;

Month : Months;

Year : YearNo

end;

implementation

end.

 

Данный модуль, ввиду своей простоты, не содержит разделов реализации и инициализации. Механизм использования модулей в других программах будет описан далее.

 

2.2 Подпрограммы в модулях

 

Процедуры и функции могут использоваться в модулях на­равне с другими Pascal-объектами. Однако для них имеются особенности, обусловленные их структурой. Как уже отмечалось, заголовок подпрограммы содержит всю информацию, необходимую для ее вызова: ее имя, количество и типы параметров и (для функций) тип результата. С другой стороны, тело подпрограммы содержит блок, раскрывающий ее алгоритм. Можно считать, что заголовок подпрограммы является ее интерфейсом, а тело - реализацией. В соответствии с этой точкой зрения в интерфейсной части модуля должны быть представлены только ЗАГОЛОВКИ процедур и функций, видимые (доступные) для других программ (аналогично предварительным описаниям, но без служебного слова forward), а их полные описания будут содержаться в разделе реализации. При этом полное описание подпрограммы может иметь СОКРАЩЕННЫЙ заголовок, состоящий только из служебного слова procedure или function, имени подпрограммы и символа ';'. (Разумеется, можно повторить полный заголовок подпрограммы, но тогда он должен быть точно таким же, как и заголовок в интерфейсной части).

В качестве примера можно привести модуль, содержащий средства работы с комплексными числами

 

unit CmplVals;

interface

type

Complex = record { способ представления
комплексных чисел }

Re, Im : real

end;

 

{ Заголовки процедур, реализующих

операции над комплексными числами }

procedure InitC (R,I:real; Var C:Complex);

procedure AddC (Cl,C2:Complex;var R:Complex);

procedure MultC (Cl,C2:Complex;var R:Complex);

procedure DivC (Cl,C2:Complex;var R:Complex);

procedure WriteC(C:Complex);

 

implementation

{ Полные описания процедур

(с сокращенными заголовками) }

 

procedure InitC;

begin

with C do

begin

Re:=R; Im:=I

end

end;

 

procedure AddC;

begin

with R do

begin

Re := Cl.Re + C2.Re;

Im := Cl.Im + C2.Im

end

end;

 

procedure MultC;

begin

with R do

begin

Re := Cl.Re*C2.Re+Cl.Im+C2.Im;

Im := Cl.Im*C2.Re+Cl.Re*C2.Im

end

end;

 

procedure DivC;

var

Tmp : real;

begin

with C2 do Tmp:=Re*Re+Im*Im;

with R do

begin

Re := (Cl.Re*C2.Re+Cl.Im*C2.Im)/Tmp;

Im := (C2.Re*Cl.Im+Cl.Re*C2.Im)/Tmp

end

end;

 

procedure WriteC;

begin

with С do

begin

Write(Re);

if Im=0 then Exit;

if Im>0 then Write(’+’);

Write(Im);

Write('i')

end

end;

 

end.

 

Таким образом, механизм модулей позволяет скрыть детали реализации тех или иных программных подсистем,

предоставив в распоряжение использующих программ стро­го определенную совокупность интерфейсных объектов. Ес­ли необходимо, например, расширить модуль CmplVals вве­дением новых процедур или изменить реализацию какой-ли­бо процедуры, то если интерфейс модуля при этом останется неизменным, такая модификация НИКАК НЕ ОТРАЗИТСЯ на использующих программах.

 

Компиляция и использование модулей

 

Модуль компилируется точно таким же образом, как и обы­чные подпрограммы; возможна компиляция из интегриро­ванной среды или с помощью компилятора командной стро­ки. Но так как модуль не является непосредственно выпол­няемой единицей, то в результате его компиляции образует­ся дисковый файл с расширением .TPU (Turbo Pascal Unit), при этом имя файла берется из имени файла с исходным тек­стом модуля.

Для того, чтобы получить доступ к интерфейсным объек­там модуля, необходимо указать в программе имя нужного ТРU-файла. Соответствующая конструкция называется спе­цификацией используемых модулей и имеет следующий об­щий вид:

uses U1, U2, U3;

где uses - служебное слово, U1, U2, UЗ - идентификаторы ис­пользуемых модулей. Эта спецификация должна идти непо­средственно после заголовка программы; если некоторый модуль использует объекты другого модуля, то такая специ­фикация должна следовать сразу после служебного слова interface.

При наличии спецификации использования в данной про­грамме считаются известными все описания из интерфей­сной части подключенного модуля. К интерфейсным объектам модуля можно обращаться в программе точно так же, как если бы они были описаны в самой этой программе.

Следующий пример иллюстрирует использование модуля CmplVals:

program DaingComplex;

uses

CmplVals;

var

C1, C2, C3 : Complex;

begin

InitC(1,2,C1); InitC(3,4,C2);

MultC(C1,C2,C3); WriteC(C3);

DivC(C1,C2,C3); WriteC(C3)

end.

Необходимо особо отметить следующие важные момен­ты, связанные с использованием модулей:

1. Может случиться так, что идентификаторы интерфейсной части используемого модуля частично пересекаются с идентификаторами использующей программы. В этом случае действует следующее правило видимости имен: ин­терфейсные идентификаторы модуля, указанного первым в uses-списке, образуют самый внешний блок программы; интерфейсные идентификаторы второго модуля образуют блок, вложенный в первый блок, и т.д. Если, например, в программе имеется спецификация вида uses А, В; то вложенность блоков выглядит так:

Таким образом, идентификаторы внешнего блока про­граммы будут "экранировать" одноименные идентификаторы модулей А и В; аналогично, идентификаторы модуля А будут перекрыты одноименными идентификаторами модуля В.

Однако, существует возможность доступа к интерфейсу используемого модуля несмотря на наличие в программе одноименных идентификаторов. Пусть имеется следую­щий модуль:

unit А;

interface

var

X:real;

implementation

...

end.

Далее, пусть программа, использующая этот модуль, так­же содержит переменную X:

program Р;

uses А;

var X : integer;

begin

...

end.

Для того чтобы в программе Р иметь доступ к интерфейс­ной переменной X из модуля А, необходимо задать состав­ное имя, структура которого похожа на селектор поля за­писи:

А.Х

Здесь А - имя модуля, X - идентификатор его интерфейс­ной переменной. В этом случае конфликт имен снимается, так как простое указание имени X будет означать обраще­ние к соответствующей переменной из программы Р, на­пример: А.Х := Round(X);

2. Возможны случаи косвенных использований. Например, пусть имеются два модуля:

  unit A; interface . . . end. unit B; interface uses A; . . . end.

Если некоторая программа использует модуль B, то в со­ответствующей спецификации использования необходимо указать только модули, НЕПОСРЕДСТВЕННО используе­мые в программе. В данном примере достаточной являет­ся следующая спецификация:

program P;

uses В;

. . .

end.

(Необходимо отметить, что в фирменной документации по системе Turbo Pascal можно встретить и противопо­ложное требование, согласно которому в спецификации использования должны быть указаны ВСЕ модули, прямо или косвенно используемые программой. Однако из прак­тики видно, что компилятор правильно обрабатывает программы, в спецификации использования которых ука­заны только модули, непосредственно используемые ею).

3. Схема использования модулей может образовывать древо­видную структуру любой сложности, но при этом недопу­стимо явное или косвенное обращение модуля к самому себе. Так например, следующие отношения являются оши­бочными:

  unit A; interface uses B; . . . end. unit B; interface uses A; . . . end.

Однако допускается взаимное использования модулей, поз­воляющее ослабить указанное ограничение. В этом случае спецификация использования может указываться в разделе реализации. Такая возможность используется сравнительно редко и в настоящем описании не приводится.

4. Если в модуле имеется раздел инициализации, то операто­ры из этого раздела будут выполнены ПЕРЕД началом вы­полнения программы, в которой используется данный мо­дуль. Если программа использует несколько модулей, то их разделы инициализации будут выполнены в том же по­рядке, в котором эти модули перечислены в специфика­ции использования.