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

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

§ 5.2. ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ

Рассмотрение начнем с примера. Пусть требуется написать программу, которая печатает «Да», если точка принадлежит областиS,и «Нет» — в про­тивном случае. ОбластьSобразована пересечением следующих «простых» областей (см. рис. 5.1, где данная область выделена штриховкой):

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

Лучше в подобных случаях использовать сложные условия. Для этих це­лей в языках программирования предусмотрены достаточно гибкие средства. Это логические выражения, позволяющие строить условия, исходя из отно­шений, выдающие логическое значение, будучи примененными к операндам числовых типов. Обычно отношениями являются операции сравнения, ска­жем, в языке С ==, <, >, <=, >=.

Теперь сравните две формы представления программ анализа условий.

В языке С имеются операции: && — логическое И, || — логическое ИЛИ. Операция "&&" выполняется над двумя операндами, вырабатывающими ло­гические значения, и в результате вырабатываетtrue,если оба ее операнда естьtrue,иfalseв противном случае.

Операция выполняется над двумя операндами, вырабатывающими логические значения, и в результате вырабатываетtrue,если хотя бы один из ее операндов естьtrue,иfalse,если оба они естьfalse.

Что касается операции НЕ, то в стандартном языке С она не представ­лена. В нем нет специальной операции логического отрицания, которая вы­полнялась бы над одним своим операндом, вырабатывающим логическое значение, и в результате вырабатывала быtrueпри значении операндаfalse, иfalseв противном случае.

Тем не менее, возможность добиться эффекта отрицания есть. Чтобы объяснить это, придется обратиться к конкретному представлению логиче­ских значений. В большинстве других языков (в частности, в расширении языка С С++) типbool(логический тип) является одним из стандартных ти­пов, и можно использовать переменные и значения этого типа(trueиfalse), не зная, как они представляются на машинном уровне. В С такого типа нет, atrueиfalseпредставляются следующим образом:true — это любое целое, отличное от нуля, afalse — нуль.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама