Непейвода Н.Н. Программирование. Раздел 3

Непейвода Н.Н. Программирование. Страница 341

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

Вообще говоря, это не недостаток, а достоинство подпрограммы: процедура MyBestlnpMatrдисциплинирует работу с данными.

Если развивать заботу о надежности процедуры ввода матриц, то стоит предусмотреть еще один вид контроля: отслеживание того, что происходит при вводе. Уже отмечалась возможность сопровождать ввод предупредитель­ными сообщениями, но утверждать, что именно это всегда полезно, было бы опрометчиво. При некорректном вводе (попытка ввода недопустимого зна­чения и др.) целесообразно перенести реакцию на ошибку в использующую программу, оставив процедуре лишь передачу сообщения об этом в контекст вызова процедуры (анализ того, что произошло и что можно предпринять при ошибке, — задача вызывающей программы). Стандартный прием реали­зации таких сообщений — формирование кода ответа в качестве результата работы процедуры. Одно и только одно значение такого кода говорит, что все

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

Варианты формирования кода ответа сводятся к следующему:

выработка возвращаемого значения (тогда процедура MyBestlnpMatrснова превращается в функцию);

присваивание значения специальной переменной из глобального кон­текста (тогда процедуру MyBestlnpMatrвместе с этой переменной це­лесообразно рассматривать в качестве специального модуля ввода, раз­решающего доступ к этой переменной по чтению);

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

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама