Введение в объектно-ориентированное программирование на языке Object Pascal. Соколов Е.В. - 15 стр.

UptoLike

Составители: 

15
Поэтому в документации к некоторым библиотекам жестко оговаривают
последовател ь ность их подключения. Рекомендуется также первыми в
операторах uses указывать стандартные модули Delphi.
Разработчик системы библиотек, разумеется, также должен учи-
тывать описанную выше неоднозначность. Проблемы здесь могут быть
связаны , в частности, с попытками различных модулей захватить одни и
те же ресурсы. Преодолеть эту неприятность можно, например, посред -
ством установки соответствующих фл агов .
Наконец, еще одна сложность вызвана тем , что в различных мод у -
лях могут быть объявлены члены с одними и теми же именами. Эти чл е-
ны скрывают друг друга и ключевую роль здесь снова играет пор я док
перечисления модулей в операторе uses. Если модуль A последов а тельно
под ключает модули B
1
, B
2
, ¼, B
n
, то объявления модуля B
i
+
1
скрывают
объявления модуля B
i
, а объявления модуля A все объявл ения модулей
B
k
, 1
£
k
£
n. Тем не менее, доступ к членам конкретного м одуля всегда
можно получить, квалифицировав имя этого члена им енем модуля.
В качестве иллюстрации снова рассмотрим пример, приведенный
выше. Предположим , что модуль Unit3 содержит открытую переменную
x типа Integer, а модуль Unit2 переменную с тем же именем , но уже
типа Real. Т огда в модулях Unit1 и Unit3 переменная x будет целой , а в
м одуле Unit2 действительной , так как в нем объявление из модуля
Unit3 скрывается собственным. В основной программе переменная x
снова будет целой , поскольку последним в операторе uses стоит Unit3,
доступ же к вещественной переменной модуля Unit2 осуществляется с
помощью выражения Unit2.x.
Упражнения
1.1. Разработайте библиотеку для работы с целочисленными век-
торами длины n, где n некоторая константа.
Указание. Помимо известных математических операций для но-
вого типа разумно определить подпрограммы, которые реализуют дейс т-
вия, специфичные для программирования: присваивание, сравнение, соз-
дание копии.
1.2. Та же задача, но для матриц размера n
´
n, элементами кот о-
рых являются рациональные числа. При выполнении арифметических
операций в этом случае следует использовать подпрограммы из модуля
UnitRational.
Поэ том у в д окум ент ации к некоторы м библ иот екам жес т коогов арив ают
пос л ед ов ат ел ь нос т ь их под кл ючения. Реком енд ует с я т акже перв ы м и в
операторахuses указ ы в ат ь с т анд арт ны е м од ул и Delphi.
          Раз работ чик с ис т ем ы библ иот ек, раз ум еет с я, т акже д ол жен учи-
т ы в ат ь опис анную в ы ш е неод ноз начнос т ь . Пробл ем ы з д ес ь м огут бы т ь
с в яз аны , в час т нос т и, с попы т кам и раз л ичны хм од ул ей з ахв ат ит ь од ни и
т е же рес урс ы . Преод ол ет ь э т у неприят нос т ь м ожно, наприм ер, пос ред -
с т в ом ус т анов ки с оот в ет с т в ующихфл агов .
          Н аконец, еще од на с л ожнос т ь в ы з в ана т ем , чтов раз л ичны хм од у-
л яхм огут бы т ь объяв л ены чл ены с од ним и и т ем и же им енам и. Э т и чл е-
ны с кры в ают д руг д руга и кл ючев ую рол ь з д ес ь с нов а играет поряд ок
перечис л ения м од ул ей в операторе uses. Е с л и м од ул ь A пос л ед ов ат ел ь но
под кл ючает м од ул и B1, B2, ¼, Bn, то объяв л ения м од ул я Bi + 1 с кры в ают
объяв л ения м од ул я Bi, а объяв л ения м од ул я A — в с е объяв л ения м од ул ей
Bk, 1 £ k £ n. Т ем не м енее, д ос туп к чл енам конкрет ного м од ул я в с егд а
м ожнопол учит ь , кв ал ифициров ав им яэ тогочл ена им енем м од ул я.
          В качес т в е ил л юс т рации с нов а рас с м от рим прим ер, прив ед енны й
в ы ш е. Пред пол ожим , чтом од ул ь Unit3 с од ержит от кры т ую перем енную
x т ипа Integer, а м од ул ь Unit2 — перем енную с т ем же им енем , но уже
т ипа Real. Т огд а в м од ул яхUnit1 и Unit3 перем енная x буд ет цел ой, а в
м од ул е Unit2 — д ейс т в ит ел ь ной, т ак как в нем объяв л ение из м од ул я
Unit3 с кры в ает с я с обс т в енны м . В ос нов ной програм м е перем енная x
с нов а буд ет цел ой, пос кол ь ку пос л ед ним в операторе uses с тоит Unit3,
д ос т уп же к в ещес т в енной перем енной м од ул я Unit2 ос ущес т в л яет с я с
пом ощь ю в ы ражения Unit2.x.

                                    У п раж нения

       1.1. Раз работ айт е библ иот еку д л я работ ы с цел очис л енны м и в ек-
торам и д л ины n, гд е n — некоторая конс т ант а.
            У казание. Пом им о из в ес т ны хм ат ем ат ичес кихопераций д л я но-
   в огот ипа раз ум ноопред ел ит ь под програм м ы , которы е реал из уют д ейс т -
   в ия, с пецифичны е д л я програм м иров ания: прис в аив ание, с рав нение, с оз -
   д ание копии.
       1.2. Т а же з ад ача, но д л я м ат риц раз м ера n ´ n, эл ем ент ам и кото-
ры х яв л яют с я рационал ь ны е чис л а. При в ы пол нении арифм ет ичес ких
операций в э том с л учае с л ед ует ис пол ь з ов ат ь под програм м ы из м од ул я
UnitRational.



                                           15