ВУЗ:
Составители:
Рубрика:
11
Отличительной особенностью функции Slash и процедуры Divide-
By является частичный характер выполняемых ими операций. Если вто-
рой их аргумент оказывается равным нулю, возникает исключительная
ситуация — состояние программы, при котором дальнейшее выполнение
текущей подпрограммы невозможно. Возбуждение исключения, осуще-
ствляемое оператором raise, позволяет прервать вычисления и предоста-
вить вызывающей прогр амме право самой принять решение, как преод о-
леть появившуюся неод нозначность. Она может либо обработать ис-
ключительную ситуацию , если та не является критичной для основного
алгоритма, либо в свою очередь прекратить выполнение с выдачей соот -
ветствующего сообщения пользователю. По умолчанию ис пользуется
второй в а риант.
Механизм исключений является эффективной альтернативой за -
щищенной технике программирования , основанной на анализе возвра-
щаемых тем или иным способом кодах ошибки.
1.2. Использование моду лей
Созданный модуль может быть использован как в основной про-
грамме, так и в другом модуле; их называют клиентами данного м одуля.
Подключение осуществляется посредством оператора uses (использует ):
uses ИмяМодуля;
В программе все операторы uses должны стоять сразу после за-
головка, в модуле — после слов interface или implementation. В одном
операторе uses можно перечислить и несколько имен, разделив их запя-
тыми.
После подключения модуля клиенту становятся доступны лишь
его открытые члены (т. е. те, которые были объявлены в секции интер-
фейса). Обращение к ним производится так, как если бы они были объ -
явлены в самом клиенте. В частности, переменные и константы стано-
вятся глобальными.
Возможна, однако, ситуация, когда разные модули содержат от-
крытые члены с одинаковыми именами. В этом случае обращение к чл е-
ну конкрет ного модуля осуществляется при помощи выражения
ИмяМодуля.ИмяЧлена
Если используется такая запись, то говорят , что имя члена квалифицир о -
вано именем модуля. Более подробно проблема перекрывающихся объ -
явлений рассматрив ается в § 1.3.
Отл ичит ел ь ной ос обеннос т ь ю функции Slash и процед уры Divide- By яв л яет с я час т ичны й характ ер в ы пол няем ы хим и операций. Е с л и в то- рой ихаргум ент оказ ы в ает с я рав ны м нул ю, в оз никает искл ю чител ьн а я ситуа ция — с ос тояние програм м ы , при котором д ал ь нейш ее в ы пол нение т екущей под програм м ы нев оз м ожно. Воз бужд ение ис кл ючения, ос уще- с т в л яем ое оператором raise, поз в ол яет прерв ат ь в ы чис л ения и пред ос т а- в ит ь в ы з ы в ающей програм м е прав ос ам ой принят ь реш ение, как преод о- л ет ь появ ив ш уюс я неод ноз начнос т ь . Она м ожет л ибо обра бота ть ис- кл ю чител ьн ую ситуа цию , ес л и т а не яв л яет с я крит ичной д л я ос нов ного ал горит м а, л ибов с в ою очеред ь прекрат ит ь в ы пол нение с в ы д ачей с оот - в ет с т в ующего с ообщения пол ь з ов ател ю. По ум ол чанию ис пол ь з ует с я в торой в ариант. М еханиз м ис кл ючений яв л яет с я э ффект ив ной ал ьт ернат ив ой за - щищ е н н ой те хн ике прог ра ммирова н ия, ос нов анной на анал из е в оз в ра- щаем ы хт ем ил и ины м с пос обом код ахош ибки. 1.2. И сп о ль зование модулей Соз д анны й м од ул ь м ожет бы т ь ис пол ь з ов ан как в ос нов ной про- грам м е, т ак и в д ругом м од ул е; ихназ ы в ают кл ие н та ми д анногом од ул я. Под кл ючение ос ущес т в л яет с я пос ред с т в ом оператора uses (ис пол ь з ует ): uses ИмяМодуля; В програм м е в с е операторы uses д ол жны с тоят ь с раз у пос л е з а- гол ов ка, в м од ул е — пос л е с л ов interface ил и implementation. В од ном операторе uses м ожноперечис л ит ь и нес кол ь коим ен, раз д ел ив ихз апя- т ы м и. Пос л е под кл ючения м од ул я кл иент у с т анов ят с я д ос т упны л иш ь его от кры т ы е чл ены (т. е. т е, которы е бы л и объяв л ены в с екции инт ер- фейс а). Обращение к ним произ в од ит с я т ак, как ес л и бы они бы л и объ- яв л ены в с ам ом кл иент е. В час т нос т и, перем енны е и конс т ант ы с т ано- в ят с я гл обал ь ны м и. Воз м ожна, од нако, с ит уация, когд а раз ны е м од ул и с од ержат от - кры т ы е чл ены с од инаков ы м и им енам и. В э том с л учае обращение к чл е- ну конкрет ногом од ул я ос ущес т в л яет с я при пом ощи в ы ражения ИмяМодуля.ИмяЧлена Е с л и ис пол ь з ует с я т акая з апис ь , тогов орят, чтоим я чл ена ква л ифициро- ва н о им енем м од ул я. Б ол ее под робно пробл ем а перекры в ающихся объ- яв л ений рас с м ат рив ает с я в § 1.3. 11
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »