|
||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Логічні операціїДо цих пір ми використовували тільки два типи операцій: арифметичні операції (+,-,*,/ і %) і операції відношення (<, >, <=, >=, = і!=). Тепер ми розглянемо третю групу операцій, званих логічними операціями. Ці операції дозволяють проводити дії над булевими змінними, тобто змінними, що володіють тільки двома значеннями, - істина і брехня. Так, наприклад, вислів «Сьогодні робочий день» має булеве значення, оскільки воно може бути тільки істинним або хибним. Іншим прикладом булева виразу є вислів «Марія поїхала на автомобілі». Ми можемо логічно зв'язати ці два вислови: «Якщо сьогодні робочий день і Марія поїхала на автомобілі, то я повинен скористатися автобусом». Логічний зв'язок в даному прикладі встановлюється за допомогою сполучного союзу і, який визначає істинність або хибність комбінації двох висловів, що сполучаються. Тільки в тому випадку, якщо обидва вислови є істинними, я буду вимушений скористатися автобусом. - Операція логічного І Логічні операції сполучають булеві вирази в C++. Умова, що бере участь у виразі if(x==7 && y==11) буде істинною тільки у тому випадку, коли значення х буде дорівнювати 7, а значення у в цей же час буде рівним 11. Операція логічного І, що позначається &&, зв'язує пару виразів відношень. Зверніть увагу на те, що брати в дужки вирази відношень, не обов'язково: ((х = 7) && (у == 11)), оскільки операції відношення мають вищий пріоритет, ніж логічні операції. В C++ существуют 3 логические операции:
- Операція логічного АБО Вираз x<5 || x>15 є істинним як у випадку, якщо х менше 5 (герой знаходиться на західних землях), так і у випадку, якщо х більше 15 (герой знаходиться на східних землях). Аналогічно операції &&, логічна операція || має нижчий пріоритет, ніж операції відношення. - Логічне НЕ Операція логічного НЕ є унарною, тобто має тільки один операнд (майже всі операції C++, які ми розглядали, були бінарними, тобто мали два операнди; умовна операція служить прикладом тернарной операції, оскільки має три операнди). Дія операції! полягає в тому, що вона міняє значення свого операнда на протилежне: якщо операнд мав дійсне значення, то після застосування операції! він стає хибним, і навпаки. Наприклад, вираз (х==7) є істинним, якщо значення х рівне 7, а вираз!(х==7) є істинним для всіх значень х, які не рівні 7 (у даній ситуації останній вираз еквівалентний запису х!=7). - Цілі величини як булеві. Щоб вираз мав істинне або хибне значення, не обов’язково, щоб цей вираз включав операцію відношення. Насправді будь-який вираз цілого типу можна розглядати як true або false, навіть якщо цей вираз є звичайною змінною. Вираз х розглядається як істинний в тому випадку, якщо його значення не рівне нулю, і як хибний, якщо його значення рівне нулю. Очевидно, що в цьому випадку вираз !х істинний, якщо х рівний нулю, і хибний, якщо х не рівний нулю. Логічні операції && і || мають нижчий пріоритет, ніж операції відношення. Але ми ставимо дужки навколо х%7 і у%7 тому, що, не дивлячись на приналежність операції! до логічного типу, ця операція є унарною і має вищий пріоритет, ніж бінарні операції відношення. - Пріоритети операцій C++.
Приклади. 1.Сума цифр заданого чотиризначного числа N перевершує добуток цифр цього ж числа на 1. (N / 1000 + N / 100 % 10 + N/10 %10 + N % 10 - 1 == (N / 1000) * (N / 100 % 10) * (N/10 %10) * (N % 10)) 2. Сума двох останніх цифр заданого тризначного числа N менше заданого K, а перша цифра N більше 5. (N / 10 % 10 + N % 10 < K && N / 100 > 5) 3. Задане натуральне число N є двозначним і кратно K. (N >= 10 && N <= 99 && N % K == 0) 4. Сума двох перших цифр заданого чотиризначного числа N дорівнює добутку двох останніх. (N \ 1000 + N \ 100 % 10 == (N % 100 \ 10) * (N % 10)) 5. Кожна подальша цифра тризначного числа N, починаючи зі старшого розряду, більше попередньої на 1. (N % 10 - N / 10 % 10 == 1 && N / 10 % 10 - N / 100 == 1) 6. X – від’ємне ціле число, що ділиться на 3 без остачі. (X < 0 && X % 3 == 0) 7. Задано три додатних дійсних числа A, B, C, які є сторонами рівнобедреного трикутника. ((A + B > C && A + C > B && B + C > A) && (A == B || B == C || A == C)) 8. Серед заданих цілих чисел A, B, C, D є хоч би два парних. A%2 + B%2 + C%2 + D%2 >= 2 10. Дріб A / B є правильною. (A < B && B > 0)
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |