Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Логические выражения




 

Логическое выражение (условие) - выражение, которое содержит знаки операций отношения и/или знаки логических операций. Значением логического выражения может быть только 1, если логическое выражение есть ИСТИНА (true), или 0, если логическое выражение ЛОЖЬ (false).

Операции отношения являются бинарными и обозначаются следующим образом (приведены в порядке уменьшения приоритета):

< (меньше);

<=(меньше или равно);

> (больше);

>= (больше или равно);

== (равно);//для сравнения

!= (не равно).

Примеры: a<b, x!=5, y==c, t>=8.1, d!=(w-c).

Логические операции – это операции:

&& - логическое И (бинарная операция);

|| - логическое ИЛИ (бинарная операция);

! -логическое НЕ (унарная операция).

Логические операции имеют более низкий приоритет, чем операции отношения. Результаты выполнения логических операций приведены в таблицах 3.1-3.3.

Таблица 3.1 Таблица3.2 Таблица 3.3

x y x && y

 

x y x || y

 

x !x

 

Например, логическое выражение a>3 && c<7 при a=5, c=6 будет иметь значение ИСТИНА, а при a=3, c=8 – ЛОЖЬ; логическое выражение a>3 || c<7 при a=5, c=6 будет иметь значение ИСТИНА, при a=2, c=7 – ЛОЖЬ; при a=17 логическое выражение !a>2 будет иметь значение ЛОЖЬ.

При составлении логических выражений следует учитывать приоритет выполнения операций.

Примеры записи логических выражений приведены в таблице 3.4.

Таблица 3.4

Таблица записи логических выражений

Условие Логическое выражение
x>=a && x<=b
x<a || x>b
или x>=a && x<=b || x>=c && x<=d
Хотя бы одно из чисел x, y положительное x>0 || y>0
Только одно из чисел x, y положительное (x>0 && !y>0) || (y>0 && !x>0) (x>0 && y<=0) || (y>0 && x<=0)
Ни одно из чисел x, y не является четным x % 2 !=0 && y % 2 !=0
Точка (x,y) принадлежит заштрихованной области x>=0 && x<=a && y>=0 && y<=b/a*x

3.2.2 Оператор if

 

Оператор if называется условным оператором и используется для программирования ветвлений. Имеет две формы записи – сокращенную и полную.

Сокращенная форма записи оператора if имеет вид:

if (выражение) оператор1;

Например, if (a>b) y=2*x;



Оператор if в полной форме называется оператором if - else и имеет следующую форму записи:

if (выражение ) оператор1; else опертор2;

Например, if (x>0 && x!=10)

y=2*x;

else

y=x*x;

Здесь выражение – выражение, которое может иметь арифметический тип или тип указателя; оператор1, оператор2 – простые или составные операторы языка.

Простой оператор – это один оператор.

Составной оператор (блок операторов) – это последовательность из нескольких любых операторов, в том числе операторов описания, заключенных в фигурные скобки.

Например, if (x<=5.6)

{ float a=2.1;

y=a*sin(x);

printf("%.4f\n",y) ;

}

Следует учитывать, что переменная, описанная в блоке, не существует вне блока.

Оператор if называется вложенным, если хотя бы один из операторов оператор1, оператор2 содержит условные операторы, и используется для программирования вложенных ветвлений.

При выполнении оператора if и if- else сначала вычисляется значение выражения выражение. Если полученное значение не равно нулю (имеет значение true), то выполняется оператор1, иначе: для оператора if - управление передаются на оператор, следующий за условным; для оператора if- else - выполняется оператор2, а затем управление передаются на оператор, следующий за условным.

Ниже приведены примеры программирования ветвлений.

Пример 1. Пример 2.

       
   

 


if (a>3) y=a+x; if (a<=3) { ; } else y=a+x;

Пример 3. Пример 4.

 
 

 


 

if (a>2) { z=2+3*x; if (x>0) { if (x!=5) y=3*x;



y=sin(z); else y= 4*x; }

} else y=5*x+1;

Пример 5.

if (a<=0)

{ y=5*x+1;

z++;

}

else

{ cout << " a=" << a;

if (a>7 && a!= 11

y=3*x;

else{ y=4*x; z--;

}

}

В примерах 1 и 2 оператор y=a+x; является простым оператором. В примере 3 оператор { z=2+3*x; y=sin(z);} является составным. Кроме того, примеры 1 и 2 показывают, что неполное ветвление, в котором отсутствуют команды на ветви "Да", может быть приведено к другой форме неполного ветвления путем изменения условия на противоположное (условие, противоположное условию a>3 есть условие a<=3, и наоборот). Из примера 2 видно, что отсутствующие команды ветви "Да" программируются с помощью пустого оператора {;}.

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

В 5-ом примере на ветви "Да" внешнего ветвления имеется группа команд, которой соответствует составной оператор { y=5*x+1; z++;}. На ветви "Нет" этого ветвления имеется группа команд, содержащая другое ветвление. Этой группе команд соответствует составной оператор { cout << " a=" << a; if (a>7 && a<> 11) y=3*x; { y=4*x; z--; } }. Вложенное ветвление на ветви "Да" содержит одну команду (соответствующий оператор y=3*x;), а на ветви "Нет" – две команды, которым соответствует составной оператор { y=4*x; z--; } .

 


mylektsii.ru - Мои Лекции - 2015-2019 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал