Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование 1 к ПОВТ.doc
Скачиваний:
4
Добавлен:
09.11.2019
Размер:
1.14 Mб
Скачать

Работа 5 Операторы отношений и логические операторы

Цель работы:

  • изучить логические данные, правила составления логических выражений в языке Cи;

  • изучить правила работы с логическими операторами;

  • закрепить навыки работы в среде C++.

I.Теоретический раздел работы

1.1. Некоторые сведения о логическом типе данных

Логические (булевы) константы, переменные и выражения могут принимать только два значения: true (истина) и false (ложь).

Логические переменные объявляются, как bool, например:

bool p,q;

Под них выделяется 1 байт памяти.

Логический тип является перечисляемым, причем

true > false ;

false=0; true=1;

В языке Cи введены три логические операции:

! - НЕТ (отрицание; математическое обозначение: ) ;

&& - И (логическое умножение, конъюнкция; математическое обозначение: ^, &);

|| - ИЛИ ( логическое сложение, дизъюнкция; );

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

~ - НЕТ (отрицание) ;

& - И (логическое умножение, конъюнкция);

| - ИЛИ ( логическое сложение, дизъюнкция).

Подробно операции рассмотрены во второй работе.

1.2. Оператор условного перехода if...Else

Разветвляющийся вычислительный процесс может быть осуществлен с помощью структуры выбора, содержащей логическое условие и ветви true и false. Если условие выполняется, то осуществляется переход к верви true, в противном случае – к ветви false. В языке C++ структура выбора реализуется с помощью оператора условного перехода.

Его синтаксис:

if (B) S1;

else S2;

где B - логическое выражение;

S1, S2 – любые операторы языка;

if ( если), else (иначе) – служебные слова.

Если значение B – true, то выполняется оператор S1, если – false, то выполняется оператор S2. Затем в обоих случаях управление передается следующему оператору программы. Допускается и краткая форма условного оператора:

if (B) S1;

В этом случае, если значение B – false, управление сразу передается оператору, следующему за оператором if.

Условные операторы могут иметь вложенную конструкцию, когда после слова else используется также условный оператор. Если в какую- либо ветвь разветвления требуется вставить несколько операторов S1,S2,...Sn, то они объединяются в один составной оператор:

{ S1;S2; ... Sn;}

Для этого они заключаются в фигурные скобки. Элементами составного оператора могут быть любые операторы языка, в том числе условные и другие составные операторы. Заметим, что и сама программа строится на основе понятия составного оператора.

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

Обычно при написании программы не рекомендуется использовать многократно вложенные друг в друга условные операторы, так как программа при этом становится громоздкой и трудно понимаемой. Для этих целей в языке C++ существует специальный оператор выбора. Его синтаксис:

switch (N)

{

case M1: S1;

break;

case M2: S2;

break;

……………………………..

default: S;

}

где N - переменная, называемая селектором или переключателем;

S1,...Si,S – операторы;

M1, M2,... - метки, которые отличаются по смыслу от меток,

описываемых в разделе label;

switch(переключатель),case(выбор), default (умолчание), end – служебные слова.

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

Оператор switch передает управление тому оператору case, с одной из меток которого совпало значение селектора N и будут выполняться все строки программыпосле выбранного case до тех пор, пока не закончится тело блока оператора switch или не повстречается оператор break, а затем управление передается на оператор, следующий за скобкой «}». Если значение селектора N не совпало ни с одной из меток, то исполняется строки стоящие после оператора default - оператор S.

Ветвь оператора default является необязательной. Тогда при отсутствии в списке выбора нужной константы оператор switch завершит свою работу.