Операции отношения и логические операции.

Операции отношения используются для сравнения:

< меньше <= меньше или равно
> больше >= больше или равно
= = равно != не равно

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

& & и (and)

| | или (or)

! не (not)

Таблица истинности для логических операций

x y x && y x | | y ! x x ^ y

Операции отношения и логические имеют более низкий приоритет, чем арифметические операции. Это значит, что выражение 12>10+1 аналогично выражению 12>(10+1)

Среди логических операций – старшая операция отрицания, затем выполняются операции отношения, а затем логические «И», «ИЛИ» и т.д.

Каждое условное выражение проверяется, истинно оно или ложно, причем в языке нет логического (булевого) типа, поэтому результатом логического выражения является целочисленное арифметическое выражение: ложь – 0, истина – ненулевая величина (1)

Пример:

#include <iostream. h>

void main(void)

{

int tr, fal;

tr = (101<=105); //выражение истинно

fal = (101>105); //выражение ложно

cout << ²true ² << tr << ² false ² << fal << endl;

}

Результат:

true 1 false 0

Поразрядные (побитовые операции) можно проводить с любыми целочисленными переменными и константами.

Побитовые операции позволяют обеспечить доступ к каждому биту информации. При их выполнении сравниваются не значения выражений, как в логических операциях, а значения каждой пары разрядов (битов). Часто поразрядные операции используются в драйверах устройств, программах, связанных с принтером, модемом и др. Поразрядные операции удобны для хранения информации в сжатом виде ― в виде флагов (включено, выключено, 0 или 1). В одном байте можно хранить 8 флагов. Например, проверка установлен ли флаг в 2-ом разряде переменной а:

Операции отношения и логические операции. - student2.ru
if (a & 04) cout << “ флаг во 2-ом разряде выставлен”;

Флаг в 6-ом разряде РС внешнего устройства означает «разрешение прерывания»

if (a & 0100) cout << “ прерывания разрешены”

Сдвиг вправо на 1 разряд аналогичен операции деления на 2 в 8 с/с

       
 
108 : 2 = 4 00001000>>1  
 
128 : 2 = 5 001010>>1 000101

Сдвиг вправо ― аналогичен операции умножения на 2 в 8 с/с

Пример: написать программу для вычисления функции

 
  Операции отношения и логические операции. - student2.ru

#include <iostream.h>

#include <math.h>

void main(void)

{

const pi = 3.1415;

float x=3. 3, f ;

f=exp(x*sqrt(2))*cos(sqrt(x/3)+pi/4)/(pow(2*pi*x,1./3.)+log(atan(x)));

cout<<”f=”<<f;

}

Для каждой операции определено количество операндов: один операнд― унарная операция, два операнда―бинарная операция, например, операции сложения или вычитания

Условный оператор.

Оператор if позволяет осуществить проверку условия и на основании этой проверки выполнять операторы. Условный оператор в неполной форме :

if ( условие ) оператор;

Если условие выполняется, выполняется оператор, если не выполняется, выполняется следующий за if оператор. Оператор может быть составным. (Составной оператор – это несколько операторов, заключенных в { } ).

Условный оператор в полной форме:

if ( условие)

оператор1;

else

оператор2;

Если условие истинно, выполняется оператор 1, если ложь, то выполняется оператор 2, «else» - иначе

Пример №1. Найти минимум из трех чисел а, b, с

#include < iostream.h>

void main(void)

{

float a, b, c, min;

cout << ² введите 3 числа: ²;

cin >> a >> b >> c;

if ((a<b) &&(a<c)) min=a;

else if (( b<a) && (b<c)) min=b;

else min = c;

cout << “min = “ << min ;

}

Пример №2 Даны действительные числа х и у . Если оба отрицательны, то каждое значение заменить модулем. Если отрицательно одно из них, то оба увеличить на 0.5. Если оба неотрицательны и ни одно из Операции отношения и логические операции. - student2.ru
них не принадлежит отрезку [0.5, 2], оба значения уменьшить в 10 раз.

#include < iostream.h>

#include < math.h>

void main(void)

{

float x, y ;

cout << “Введите 2 действительных числа :” ;

cin >> x >> y ;

if ((x<0) && (y<0)) { x=fabs(x); y= fabs(y);}

if ((x<0) | | (y<0)) {xx=x+0.5; y=y+0.5;}

if (((x>=0) && (y>=0)) && ((x<0.5) | | (x>2)) && ((y<0.5) | | (y>2)))

{ x=x/10; y=y/10;}

cout <<:x=: <<x<<”y=” << y;

}

Оператор выбора switch.

Оператор позволяет осуществлять множественный выбор. Общая форма оператора:

Switch (выражение)

{

case constant1: оператор1; break;

case constant2: оператор2; break;

. . .

Наши рекомендации