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

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

Дисциплинированный программист вместо неконтролируемого формаль­ными правилами языка ограничения на использование функции MylnpMatr(запрета выражений, вроде только что приведенных) определил бы для этой цели процедуру со свойством функции MylnpMatr, которая вырабатывает фактический размер матрицы в качестве значения специального outпара­метра. Здесь требуется именно outпараметр, а не inout,т. к. входное значе­ние параметра для обсуждаемого алгоритма безразлично.

Однако, как уже отмечалось, языки C/C++ и Pascalв определении па­раметризации ориентируются не на потребности, а на механизмы передачи параметров. Поэтому приходится выбирать тот механизм, который обеспе­чивает указанное свойство. Таким механизмом для языка Pascalявляется вид передачи параметра как переменной:

Для C/C++ заголовок MyBestlnpMatrпредставляется следующим образом (обратить внимание на описание второго параметра как ссылки):

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

Повидимому, это лучшая из приведенных подпрограмм, решающих за­дачу ввода матриц с определением их размера. Ее использование для ввода матрицы Matrв языке Pascalимеет вид

В C/C++ тот факт, что процедура определяет значение второго параметра, подчеркивается символом &, смысл которого — указать, что используется адрес, а не значение N:

Хорошо ли то, что логически единообразные действия — присвоить значения переменноймассиву и простой переменной — изображаются поразному? Скорее всего, это следствие чрезмерной "заботы" о прозрачности (т. е. аб­солютной понятности) реализации для программиста.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама