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

 

Для принятия решений в программах требуются Булевские операции и операции отношония. Поскольку принятие решения-фундаментальная часть програмирования, во всех языках програмирования,таких как BASIC,Pascal,FORTRAN,C, есть такие операторы. -

В таблице показаны операции отношония и Булевские операции в С++.В таблице содержится условный оператор присваивания ?:.Он имеет следующий синтаксис:

(expression)?trueValue: falseValue
Оператор выдает trueValue, если выражение истинно(или отлично от нуля),и возвращает falseValue-в противном случае. Рассмотрим, как в следующем операторе используется условный оператор присваивания для присваивания значения переменной:
variable=(expression)?trueValue:falseValue;
Результат будет таким же, как и в следующем опраторе if:

if (expression)
  variable=trueValue;
else
  variable=falseValue;

//Структура выбора if/else.
#include<iostream.h>
 #include<conio.h>
 int main()
 {   int grade;
 cin>>grade;
 if(grade >=90)
  cout <<"A";
        else
         if(grade >=80)
                cout <<"B";
                        else
                        if(grade >=70)
                                cout <<"C";
                                else
                                if(grade >=60)
                                cout <<"D";
                                        else
                                        cout<<"E";
  getch();
  }

 

Булевские выражения

 

В Булевских выражениях используется булевские операции и операции отношения для вычисления булевских значений.Булевские выражения могут быть простыми и сложными.Простые выражения используют единственную операцию отношения  или булевскую операцию.Сложные Булевские выражения используют комбинацию таких операций.Приведем примеры простых Булевских выражений:

i<10
nCount>=nMinLimit
nIndex==NArrayBound
bDriveFlag&&bDiskFlag
bNeedFile||bNewFile
!bNewFile

Приведем несколько примеров более сложных булевских выражений:

i<10 i>=100
!(nCout<=nMinLimit||nCount>=nMaxLimit)
nIndex>=nArrayBound&&nIndex<100

//Программа,которая демонстрирует операторы отношения
//и булевские операторы
//Генератор случайных чисел
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>

main()
{
const int LO=1;
const int HI=100;

int nNum1,nNum2,nNum3;

//запускаем генератор случайных чисел,
//используя системное время
srand((unsigned)time(NULL));
//получаем три слчайных числа
nNum1=rand()%HI+LO;
nNum2=rand()%HI+LO;
nNum3=rand()%HI+LO;

cout<<"First number is"<<nNum1<<"\n"
<<"Second number is"<<nNum2<<"\n"
<<"Third number is"<<nNum3<<"\n";

cout<<nNum1<<"<"<<nNum2<<"is"
<<((nNum1<nNum2)?"TRUE":"FALSE")<<"\n";
cout<<nNum1<<"<="<<nNum3<<"is"
<<((nNum1<=nNum3)?"TRUE":"FALSE")<<"\n";
cout<<nNum2<<">"<<nNum3<<"is"
<<((nNum2>nNum3)?"TRUE":"FALSE")<<"\n";
cout<<nNum1<<"=="<<nNum2<<"is"
<<((nNum1==nNum2)?"TRUE":"FALSE")<<"\n";
cout<<nNum1<<"!="<<nNum3<<"is"
<<((nNum1!=nNum3)?"TRUE":"FALSE")<<"\n";

cout<<nNum1<<"<"<<nNum2<<"AND"
<<nNum2<<"<"<<nNum3<<"is"
<<((nNum1<nNum2 && nNum2<nNum3)? "TRUE":"FALSE")<<"\n";
cout<<nNum1<<"<"<<nNum2<<"OR"
<<nNum2<<"<"<<nNum3<<"is"
<<((nNum1<nNum2||nNum2<nNum3)?"TRUE":"FALSE")<<"\n";
cout<<"NOT("<<nNum1<<"<="<<nNum2<<")is"
<<((!(nNum1<=nNum2))?"TRUE":"FALSE")<<"\n";

getch();

return 0;
}