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

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

Чтобы в этом убедиться, достаточно выполнить программу 5.2.5.

Выполнение условного оператора в программе 5.2.6 в идеале должно было бы происходить следующим образом. Совместно вычисляются четыре опе­ранда, разделенные знаками операции "&&", и, согласно определению этой операции, если все четыре полученные значения есть"true",значением усло­вия будет"true",в противном случае (т. е. когда хотя бы одно из отношений ложно) значением условия будет"false".Тем самым выполняется требуемая в условии задачи проверка.

Однако для языков С и С++ это совсем не так. И различия с приведен­ной трактовкой обусловлены прежде всего тем, что для выяснения того, что должно быть напечатано, нет нужды вычислять все указанные отношения, когда какоелибо из уже вычисленных оказалось ложным. Аналогично, для выяснения значения цепочки логических выражений, связанных операцией ИЛИ ("Ц"), нет нужды вычислять все составляющие выражения, когда одно из них оказалось истинным. По этим причинам в языке С++ принято, что такие цепочки вычисляются слева направо до тех пор, пока результирующее значение не будет выяснено (для цепочки логических выражений, связан­ных операцией И, это первое ложное значение, а для цепочки выражений, связанных операцией ИЛИ, это первое истинное значение). Указанный по­рядок предписывается языком, что отличает данные операции и от операций языка Pascal, и от всех остальных операций С.

В силу указанной трактовки условный оператор в программе 5.2.6 будет выполняться в точности так, как фрагмент 5.2.3. Следовательно, с точки зре­ния скорости выполнения обе записи эквивалентны. Для языка, в котором

операнды булевых операций вычисляются совместно, о скорости вычисле­ний или даже о том, какие из операндов цепочки будут вычислены, сказать ничего нельзя. К примеру, в системе программирования Turbo Pascal есть два режима, управляемые прагматическими указаниями, которые разграни­чивают два случая:

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама