Лекція 6. Логічний тип даних. Дії з даними логічного типа даних

6.1 Логічний тип даних

Думаю, що ви не раз зустрічалися з поняттям логіки, зокрема математичної. З ресурсів Вікіпедії маємо визначення логіки. Логіка — наука про закони і різновиди мислення, умови істинності знань і суджень. А тепер спробуємо сформувати своє визначення, більш простіше, яке ми будемо використовувати. Логіка – наука про умови. Без володіння логікою не можливо вирішити жодну задачу з математики, та й у повсякденному житті ми не раз користувалися різними видами логіки. Для програмістів математична логіка це така собі “зброя”, без якої жоден програміст не зміг би створити жодної програми.

Ще з молодших класів ви навчилися порівнювати між собою числа та вирази, а також перевіряти певні умови, звичайно ж за допомогою математичної логіки. Наприклад: твердження 2>1 є вірним, або істинним, а твердження 1>2 не є вірним, а отже хибне.

У всіх мовах програмування існує окремий тип даних для логічних виразів –  логічний тип даних, або, як його ще називають, булевий. Назва пішла від імені відомого англійського математика, основоположника математичної логіки Джорджа Буля (мал. 7).

Мал. 7

Всі логічні вирази (порівняння даних) належать щодо  булевого типу даних. Для порівняння даних застосовуються наступні знаки (табл. 3).

НазваПозначення
Рівність==
Більше (Менше)>(<)
Більше або дорівнює (Менше або дорівнює)>=(<=)
Не дорівнює!=

Табл. 3

Булевий тип даних вважають дуже примітивним, адже він має всього 2 значення: True (істина), або False (хиба). Залежно від того, чи виконується умова вираз може набувати або значення True, або False. Тобто:

Якщо вам потрібно представити True або False за допомогою цифр, то True позначають 1, а False позначають 0, так як кожне із значень займає всього 1 біт, бо як відомо біт це 1 або 0.

6.2 Дії з даними логічного типа даних

Як і ті типи даних, які ми вивчили раніше, булевий тип даних, можна перевести в цілі та дійсні числа або рядки тексту. Для цього потрібно застосувати вже вам відому функції int(), float(), str(). Та зважаючи на те, що ми маємо тільки 2 значення, результат очевидний:

З того, що значення булевого типу даних можуть приймати значення цілих чисел, ми можемо додавати, віднімати, ділити та множити логічні вирази на числа, але при цьому потрібно користуватися функціями переводу. Наприклад: int(2>1)+3*(2+int(1>2)) в Python буде дорівнювати 7, так як int(2>1)=1, a int(1>2)=0, тобто 1+3*(2+0) =7.

Розглянемо приклад задачі. На вході маємо число а, яке запитується у користувача, перевіряється умова а>0, результат перевірки виводиться на екран з приставкою “It’s” в початку, тобто, якщо а буде дорівнювати 4 то на екран виведеться “It’s True” і т.п.

Контрольні запитання

1. Дайте визначення поняттю логіка.

2. Що відноситься до даних логічного типу?

3. Скільки значень може набувати будь-який логічний вираз?

4. Що це за значення?

5. Коротко розкажіть про дії з даними логічного типу.

Практичні завдання

1. Створіть новий файл Python за допомогою середовища розробки програмного забезпечення IDLE. Створіть програму за даною задачею:

a. На вході маємо число а, програма перевіряє чи є число а: 1) більше 0; 2) менше 0 та виводить результат у вигляді True або False;

b. На вході маємо 2 числа, програма порівнює їх між собою і виводить результат у вигляді True або False. Порівняння відбувається за такими пунктами:

  • чи ці числа рівні;
  • чи числа нерівні;
  • чи число більше за друге;
  • чи друге число більше за перше;
  • чи квадрат першого числа більший за квадрат другого числа;
  • чи сума цих чисел більша за їх добуток.

2.* Побудувати програму “Щасливий квиток”. Припустимо користувач придбав квиток на автобус з чотирьохзначним номером. Квиток буде вважатися щасливим, якщо сума перших двох цифр буде дорівнювати сумі двох інших цифр цього квитка. На вході матимемо два числа, перше буде складатися із перших 2 цифр номеру білету, а наступне число із двох інших цифр. На виході маємо повідомлення у вигляді True/False.