C++ за 21 день седьмое издание



Download 1,38 Mb.
bet68/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   64   65   66   67   68   69   70   71   ...   437
Bog'liq
word1

False




True

False

True




False

True

True




True

True

True




ТАБЛИЦА 5.5. Таблица истинности логической операции XOR




Операнд 1

Операнд 2

Результат операции Операнд 1 XOR Операнд 2




False

False

False




True

False

True




False

True

True




True

True

False




Логическая операция OR обеспечивается в языке C++ оператором А. Результат получа­ ется при выполнении операции XOR над битами операндов.




Использование логических операторов C++ NOT (!), AND (&&) и OR (||)

Рассмотрим следующие выражения.





  1. “Если идет дождь И если нет автобуса, то я не могу попасть на работу”.




  1. “Если есть большая скидка ИЛИ если я получу премию, то смогу купить этот авто­ мобиль”.




    1. программировании необходима некоторая логическая конструкция, где результат двух операций используется в логическом контексте для принятия решения о последу­ ющем направлении потока программы. Язык C++ предоставляет логические операторы AND и OR, которые можно использовать в условных операторах, а следовательно, услов­ но изменять поток выполнения программы.

Листинг 5.5 демонстрирует работу логических операторов AND и OR.


ЛИСТИНГ 5.5. Анализ логических операторов C++ && и | |





  1. #include




  1. using namespace std;



2 :

  1. int main()




  1. {



5: cout « "Enter true(l) or false(0) for two operands:" « endl;



  1. bool Opl = false, Op2 = false;




  1. cin » Opl;




  1. cin » Op2;

9:

cout

«

Opl

«

" AND

" «

Op2« " = "«

(Opl

&& Op2)

«

endl;

10:

11:

cout

«

Opl

«

" OR

" «

Op2 « " = " «

(Opl

|| Op2)

«

endl;

100 ЗАНЯТИЕ 5. Команды, выражения и операторы




1 2 :

  1. return 0;




  1. }



Результат


Enter true(l) or false(0) for two operands:

1
0





  1. AND 0=0




  1. OR0=1



Следующий запуск:


Enter true(l) or false(0) for two operands:

1
1



1AND1=1


1OR1=1


Анализ


Программа фактически демонстрирует, что позволяют логические операции AND и OR. Однако она не показывают, как их использовать для принятия решений.



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



ЛИСТИНГ 5.6. Использование логических операторов NOT (!)



  1. AND (&&) в условных операторах для изменения потока выполнения____________________




    1. #include




    1. using namespace std;




  1. :




    1. int main()




    1. {

5: cout « "Use boolean values(0 / 1) to answer the questions"



    1. endl;




  1. cout « "Is it raining? ";




  1. bool Raining = false;




  1. cin » Raining;



9:



  1. cout « "Do you have buses on the streets? ";




  1. bool Buses = false;




  1. cin » Buses;



13:



  1. // Условный оператор использует логические операторы AND и NOT




  1. if (Raining && IBuses)




  1. cout « "You cannot go to work" « endl;




  1. else




  1. cout « "You can go to work" « endl;



19:



  1. if (Raining && Buses)




  1. cout << "Take an umbrella" « endl;

Использование операторов

101

2 2 :





  1. if ((!Raining) && Buses)




  1. cout « "Enjoy the sun and have a nice day" « eridl;








  1. return 0;




  1. }



Результат


Use boolean values(0 / 1) to answer the questions


Is it raining? 1


Do you have buses on the streets? 1


You can go to work


Take an umbrella


Следующий запуск:


Use boolean values (0 / 1) to answer the questions


Is it raining? 1


Do you have buses on the streets? 0


You cannot go to work


Последний запуск:


Use boolean values(0 / 1) to answer the questions


Is it raining? 0


Do you have buses on the streets? 1


You can go to work


Enjoy the sun and have a nice day


Анализ


Код листинга 5.6 использует условные операторы в форме конструкции i f , которая пока еще не рассматривалась. Но все же попробуйте понять поведение этой конструк­ ции, сопоставив ее с выводом. Строка 15 содержит логическое выражение (R a in in g && !B u s e s ) , которое можно прочитать как “идет дождь И НЕТ автобусов”. Логический опе­ ратор AND здесь использован для объединения отсутствия автобусов (обозначенного ло­ гическим оператором NOT перед наличием автобусов) и присутствия дождя.
ПРИМЕЧАНИЕ Более подробная информация о конструкции i f будет приведена на занятии 6,

“Ветвление процесса выполнения программ”.




Код листинга 5.7 использует логические операторы NOT (!) и OR ( | |) для демонстра­ ции условной обработки.


ЛИСТИНГ 5.7. Использование логических операторов NOT и OR для принятия

решения о том, можете ли вы купить автомобиль своей мечты__________________________





  1. #include




  1. using namespace std;

2 :





  1. int main()




  1. {

  2. ЗАНЯТИЕ 5. Команды, выражения и операторы




  1. cout « "Answer questions with 0 or 1" « endl;




  1. cout « "Is there a deep discount on your favorite car? ";




  1. bool Discount = false;




  1. cin » Discount;



9:



  1. cout « "Did you get a fantastic bonus? ";




  1. bool FantasticBonus = false;




  1. cin » FantasticBonus;



13:



  1. if (Discount || FantasticBonus)




  1. cout « "Congratulations, you can buy that car!" « endl;




  1. else




  1. cout « "Sorry, waiting a while is a good idea" « endl;








  1. return 0;

20: }


Результат


Answer questions with 0 or 1


Is there a deep discount on your favorite car? 0


Did you get a fantastic bonus? 1


Congratulations, you can buy that car!


Следующий запуск:


Answer questions with 0 or 1


Is there a deep discount on your favorite car? 0


Did you get a fantastic bonus? 0


Sorry, waiting a while is a good idea


Последний запуск:


Answer questions with 0 or 1


Is there a deep discount on your favorite car? 1


Congratulations, you can buy that car!


Анализ



  1. строке 14 конструкция i f используется вместе с конструкцией e l s e в строке 16. Конструкция i f выполняет следующий оператор в строке 15, когда условие ( D is c o u n t I | F a n ta s tic B o n u s ) возвращает значение t r u e . Это выражение содержит логический оператор OR и возвращает значение tr u e , даже если нет никакой скидки на ваш любимый автомобиль. Когда выражение возвращает значение f a l s e , выполняется оператор в стро­ ке 17 после конструкции e l s e .



Побитовые операторы NOT (~), AND (&), OR (|) и XOR (А)


Различие между логическими и побитовыми операторами в том, что они возвращают не логический результат, а значение, отдельные биты которого получены в результате вы­ полнения оператора над битами операндов. Язык C++ позволяет выполнять такие опе­ рации, как NOT, OR, AND и исключающее OR (XOR), в побитовом режиме, позволяя манипулировать отдельными битами, инвертируя их при помощи оператора применяя

Использование операторов

103



операцию OR при помощи оператора | , применяя операцию AND при помощи операто­ ра &и операцию XOR при помощи оператора А. Последние три выполняются с числами обычно битовой маской).
Некоторые битовые операции полезны в тех случаях, когда каждый из битов, содер­ жащихся в целом числе, например, определяет состояние некоего флага. Так, целое число размером в 32 бита можно использовать для хранения 32-х логических флагов. Использо­ вание побитовых операторов показано в листинге 5.8.


ЛИСТИНГ 5.8. Использование побитовых операторов для выполнения операций NOT, AND, OR и XOR с отдельными битами целого числа


#include


#include



Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   64   65   66   67   68   69   70   71   ...   437




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish