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

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

Передача параметра как переменной (короче — параметраперемен­ной) в Pascalсинтаксически оформляется пометкой описания параметра служебным словом var:

являются некорректными, но допустимы вызовы, изображенные на рис. 8.5.

Последний оператор на рис. 8.5 заслуживает более пристального вни­мания. Пусть значения элементов массива М равны 4, 3, 2, 1, а значение переменной а равно 1. Тогда вызов<3(М[а]) корректен, он приведет к сле­дующим действиям. Сначала параметрпеременная х вычислится как М[а], следовательно, как М[1], и именно М[а] будет рассматриваться в качестве фактического параметра. Далее, после входа в подпрограмму выполняется присваивание а значения М[1], т. е. а станет равно 3. Наконец, выполняется оператор х:=1, который присваивает значение 1 переменной с индексом М[1].

На языке С/С++ передача параметра как переменной моделируется с помощью работы с указателями. Это моделирование будет рассматриваться при обсуждении механизма передачи параметров по ссылке.

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

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

Летающие &quot;Крокодилы&quot;

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

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

24.01.2016

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

Реклама