Логічний тип даних. Логічні вирази. Логічні операції.
Опрацюйте, вивчіть основні поняття.
Підручник с.195-199
bool- логічний тип даних на мові Python
У цього типу всього два можливих значення: True
(правда) - 1 і False (брехня) - 0.
Ці значення і є
результатом логічних виразів.
Логічні оператори
Говорячи на природній мові (наприклад, українською) ми
позначаємо порівняння словами "так", "більше",
"менше". В мовах програмування зазвичай використовуються спеціальні
знаки, подібні до тих, які використовуються в математичних виразах:
дорівнює(==)
не дорівнює(!=)
більше(>)
менше(<)
більше або
дорівнює(>=)
менше або
дорівнює(<=)
Новими для сприйняття можуть виявитися позначення
рівності: == (два знака
"дорівнює"); а також нерівності !=. часто початківці програмісти помиляються і
замість двох знаків "=" пишуть один. Однак, як ви повинні пам'ятати з
попереднього уроку, один знак використовується в операціях присвоєння.
Приклади роботи з логічними
виразами на мові програмування Python
(після # написані
коментарі-пояснення):
x=12-5 # це не логічна операція, а операція
присвоєння змінної x результату виразу 12 - 5
x==4 # x дорівнює 4
x==7 # x дорівнює 7
x!=7 # x НЕ дорівнює 7
x!=4 # x НЕ дорівнює 4
Складні логічні вирази
Вирази типу "skokomnogo> = тисяча двадцять
три" є простим. Однак, на практиці не рідко використовуються більш складні
логічні вираження.
Може знадобитися отримати логічний тип відповіді (
"Так" або "Ні") в залежності від результату виконання двох
простих виразів.
Наприклад, "на вулиці йде сніг або дощ",
"змінна new більше 12 і менше 20" і т.п.
У таких випадках потрібні спеціальні оператори, що
об'єднують два і більше простих логічних вирази.
Ми розглянемо два способи об'єднання: через, так
звані, логічні І (and) АБО (or).
кон’юнкція
Щоб отримати істину (True) при використанні оператора and, необхідно, щоб результат обох простих виразів,
які пов'язує цей оператор, були істиними. Якщо хоча б в одному випадку
результатом буде False (брехня), то і весь складний вираз буде помилковим.
диз’юнкція
Щоб отримати істину (True) при використанні оператора or, необхідно, щоб результат хоча б одного простого
виразу, що входить до складу складного, був справжнім. У разі оператора or
складний вираз стає помилковим лише тоді, коли помилкові всі прості вирази.
Приклади роботи зі складними
логічними виразами на мові програмування Python
(після # написані
коментарі-пояснення):
x = 8
y = 13
x == 8 and y <15 # x дорівнює 8 і
y менше 15
x> 8 and y <15 # x більше 8 і y менше 15
x! = 0 or y> 15 # x НЕ дорівнює 0 або y менше 15
x <0 or y> 15 # x менше 0 або y менше 15
Визначте усно результати виконання операцій, наведених
в прикладі вище. Перевірте правильність ваших припущень, виконавши дані вирази
за допомогою інтерпретатора мови Python.
Вивчіть на пам’ять і Ви зможете
просто оперувати складними поняттями.
Логічні операції
дорівнює(==)
не дорівнює(!=)
більше(>)
менше(<)
більше або
дорівнює(>=)
менше або
дорівнює(<=)
заперечення not
таблиця істиності
x
|
not x
|
1
|
0
|
0
|
1
|
кон’юнкція
(логічне множення) and
таблиця істиності
x
|
y
|
x and y
|
1
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
диз’юнкція (логічне додавання)
or
таблиця істиності
x
|
y
|
x or y
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
1
|
0
|
0
|
0
|
true позначають 1
false позначають 0
Приклад побудови таблиці
істинності
Приклад 1.Складіть таблиці істинності
логічних виразів зі змінними логічного типу a і b
b and b or a
a
|
b
|
b and b or a
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
Приклад 2.Складіть таблиці істинності
логічних виразів зі змінними логічного типу a і b
a
|
b
|
b and not b or a
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
0
|
0
|
Приклад 3.Складіть таблиці істинності
логічних виразів зі змінними логічного типу a і b
a
|
b
|
b or not b and not a
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
Перевірка програми
Який результат виконання програми для таких даних?
a
|
k
|
N
|
результат
|
10
|
5
|
20
|
Місця достатньо
|
120
|
34
|
88
|
Місця достатньо
|
200
|
300
|
140
|
Місця не достатньо
|
Перевірка програми
(тестування)
При яких даних
програма видасть повідомлення, що штани врятовані?
a
|
n
|
результат
|
10
|
100
|
ні
|
17
|
288
|
ні
|
15
|
301
|
так
|
20
|
400
|
ні
|
19
|
361
|
ні
|
9
|
90
|
так
|
12
|
509
|
так
|
Виконайте завдання:
Задача. “Робінзони”
На
одному маленькому квадратному безлюдному острові зі стороною a метрів
перебували k Робінзонів. Чи не порушені їх права на житло, якщо на кожного
Робінзона повинно припадати n м2 площі острова?
Домашнє завдання
Задача “Посвідчення особи”
У програмі потрібно запитати вік людини, і
отримавши відповідь, надрукувати на екрані прохання показати паспорт чи
свідоцтво про народження
Задача . “Робінзони 2”
1.
Напишіть та виконайте програму:
Проаналізуйте
Задача . “Робінзони”
Cкільком
новим Робінзонам ще вистачить місця на острові?
Перевірка програми
Який результат виконання програми для таких даних?
a
|
k
|
N
|
результат
|
10
|
5
|
20
|
0
|
120
|
34
|
88
|
20
|
200
|
300
|
140
|
15
|