Разработка классов на языке Object Pascal. Соколов Е.В. - 5 стр.

UptoLike

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

5
1. Б ИБЛИОТЕКИ ПОДПРОГРАМ М
Этот параграф описывает процесс разработки библиотек подпро-
грамм и является вспомогательным. Построенная в нем библиотека бу-
дет использована в следующем параграфе для создания класса, имеющ е-
го анал огичную функциональность.
Задача 1.1. Требуется разработать библиотеку процедур и функ-
ций, манипулирующих целочисленными векторами фиксированной раз -
мерности n. Библиотека должна содержать подпрограммы, выполняю-
щие следующие действия:
1) вычисление суммы двух векторов ,
2) вычисление разности двух векторов ,
3) вычисление скалярного произведения двух векторов ,
4) прибавление одного вектора к другому,
5) вычитание одного вектора из другого,
6) присваивание одного вектора другому,
7) сравнение двух векторов на равенство,
8) вычисление длины вектора (как элемента n-мерного евклидова
пространства),
9) преобразование вектора в строковую форму для вывода на экран
или в файл .
Библиотеку следует оформить в виде модуля. Требуется также
создать программу, использующую данный модуль и демонстрирующую
работу его открытых под программ.
Схема решения.
1. Объявление новых типов данных и констант, которые будут ис -
пол ь зоваться подпрограммами библиотеки.
2. Объявление подпрограмм, т. е. определение их имен, списков п а -
раметров и типов возвращаемых значений.
3. Реализация подпрограмм.
4. Размещение написанного кода внутри модуля.
5. Создание программы, демонстрирующей работу открытых про-
цедур и функций библиотеки.
Решение. 1. Прежде всего необходимо определиться с типом
данных, кот орый будет использоваться для представления векторов .
Очевидно, что простые типы языка Object Pascal для этой цели не под -
ходят уже хотя бы потому, что занимают фиксированный объем памяти.
                      1. Б И Б Л И О Т Е К И ПО Д ПРО Г РА М М

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

          Задача 1.1. Требует с я раз работ ат ь библ иот еку проц ед ур и функ-
ц ий, м анипул ирующ их ц ел очис л енны м и в екторам и фикс иров анной раз -
м ернос т и n. Библ иот ека д ол жна с од ержат ь под програм м ы , в ы пол няю-
щ ие с л ед ующ ие д ейс т в ия:
     1) в ы чис л ение с ум м ы д в ух в екторов ,
     2) в ы чис л ение раз нос т и д в ух в екторов ,
     3) в ы чис л ение с кал ярногопроиз в ед ения д в ух в екторов ,
     4) прибав л ение од ногов ектора к д ругом у,
     5) в ы чит ание од ногов ектора из д ругого,
     6) прис в аив ание од ногов ектора д ругом у,
     7) с рав нение д в ух в екторов на рав енс т в о,
     8) в ы чис л ение д л ины в ектора (как эл ем ент а n-м ерного ев кл ид ов а
прос т ранс т в а),
     9) преобраз ов ание в ектора в с т роков ую форм у д л я в ы в од а на экран
ил и в файл .
          Библ иот еку с л ед ует оформ ит ь в в ид е м од ул я. Требует с я т акже
с оз д ат ь програм м у, ис пол ь з ующ ую д анны й м од ул ь и д ем онс т рирующ ую
работ у егоот кры т ы х под програм м .

         Схема реш ения.
     1. О бъяв л ение нов ы х т ипов д анны х и конс т ант, которы е буд ут ис -
пол ь з ов ат ь с я под програм м ам и библ иот еки.
     2. О бъяв л ение под програм м , т. е. опред ел ение их им ен, с пис ков па-
рам ет ров и т ипов в оз в ращ аем ы х з начений.
     3. Реал из ац ия под програм м .
     4. Раз м ещ ение напис анногокод а в нут ри м од ул я.
     5. С оз д ание програм м ы , д ем онс т рирующ ей работ у от кры т ы х про-
ц ед ур и функц ий библ иот еки.
        Реш ение. 1. Прежд е в с его необход им о опред ел ит ь с я с т ипом
д анны х, которы й буд ет ис пол ь з ов ат ь с я д л я пред с т ав л ения в екторов .
О чев ид но, чтопрос т ы е т ипы яз ы ка Object Pascal д л я этой ц ел и не под -
ход ят уже хотя бы потом у, чтоз аним ают фикс иров анны й объем пам ят и.



                                          5