Урок 08.02.2019

Логічний тип даних. Логічні вирази. Логічні операції.
Опрацюйте, вивчіть основні поняття.

Підручник с.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 площі острова?

Перегляньте відео урок 6

Домашнє завдання

Задача  “Посвідчення особи”
У програмі потрібно запитати вік людини, і отримавши відповідь, надрукувати на екрані прохання показати паспорт чи свідоцтво про народження

Задача . “Робінзони 2”
1. Напишіть та виконайте програму:
Проаналізуйте Задача . “Робінзони”
Cкільком новим Робінзонам ще вистачить місця на острові?

Перевірка програми
Який результат виконання програми для таких даних?


a
k
N
результат
10
5
20
0
120
34
88
20
200
300
140
15



Урок 15.03

Алгоритми з повтореннями для опрацювання величин Цикл - це багаторазове виконання блоку команд Цикл з параметром (лічильником) Опрац...