Інформація про новину
  • Переглядів: 11691
  • Дата: 20-09-2020, 21:52
20-09-2020, 21:52

11. Опрацювання величин логічного типу. Команда розгалуження в Python

Категорія: Інформатика





Попередня сторінка:  10. Текстові величини та операції над н...
Наступна сторінка:   12. Реалізація алгоритмів повторення м...

Ви дізнаєтесь:

  • як порівнюють значення величин у програмах;
  • які операції виконують над логічними величинами;
  • як описати алгоритмічну структуру неповного розгалуження мовою програмування Python;
  • як описати алгоритмічну структуру повного розгалуження мовою програмування Python.

1. Як порівнюють значення величин у програмах?

Ми вже розглядали програми, які реалізують лінійні алгоритми. Для опису умови в алгоритмах із розгалуженням використовують логічні вирази з використанням операцій порівняння (табл. 11.1). Результатом виконання операції порівняння значень двох величин є величина логічного типу, яка може набувати одного із двох значень: True або False. Для опису логічних величин у мові програмування Python використовують службове слово bool.

Таблиця 11.1

Логічний тип отримав свою назву на честь англійського математика та логіка середини XIX століття, одного із засновників математичної логіки Джорджа Буля.

Порівняння значень величин різних типів має особливості. Числові величини порівнюються за правилами математики. Порівняння текстових величин мовою Python, у результаті якого отримано логічне значення True, продемонстровано на малюнку 11.1.

Для логічних величин а = True, b = False результатом виконання операції а>Ь буде значення True, оскільки істинне значення True інтерпретується, як 1, а хибне False — 0. Зрозуміло, що 1 > 0.

Для того щоб перевірити, чи входить деякий фрагмент текстової величини в іншу текстову величину, використовують оператор входження in.

Наприклад, результатом перевірки умови 'у' in 'Python' є True.

2. Які операції виконують над логічними величинами?

Окрім операцій порівняння над логічними величинами, в усіх мовах програмування для запису складених висловлювань використовують логічні операції:

Операцію or ще називають логічним додаванням, a and — логічним множенням. Назви кон’юнкція та диз’юнкція походять від англ. conjunction — об’єднання та disjunction — роз’єднання. У математиці та логіці для запису логічних операцій прийняті спеціальні позначення. Операцію and позначають Л, операцію or — V.

Результати виконання цих операцій над змінними А і В логічного типу, які набувають значень True (1) і False (0), наведено в таблиці істинності (табл. 11.2).

Таблиця 11.2

З таблиці істинності видно, що за допомогою логічної операції not змінюють значення логічної величини на протилежне. Результат операції and збігається з результатом множення значень 1 і 0 — є істинним лише за умови, що обидві величини А і В набувають значення True — істина. Результат операції or буде хибним лише за умови, що величини Аі В набувають значення False, та істинним в усіх інших випадках. Наприклад, якщо А = 5, а В = 7, то значенням логічного виразу (А < В) and (В = 7) є True, оскільки логічні вирази 5 < 7 та В = 7 набувають значення True, а тому, за таблицею істинності, результатом операції and є значення True.

Щоб визначити значення складеного логічного виразу, який містить кілька логічних операцій, використовують таблицю істинності та враховують пріоритет виконання операцій: у першу чергу виконується операція not, далі — and, в останню чергу — or. Як і для числових виразів, для зміни порядку виконання логічних операцій використовують дужки.

У мові програмування Python передбачено, що логічні значення True та False можна перетворювати на значення інших типів. Наприклад, при перетворенні їх у рядкові величини отримаємо слова True та False відповідно. Для перетворення логічних значень у значення числових типів використовують функції перетворення int, float. У цьому разі True відповідає одиниці, a False — нулю як для цілих, так і для дійсних чисел. Наприклад:

У зворотному порядку перетворення працює трохи інакше, але запам’ятати дуже просто: будь-які «непорожні» значення конвертуються в True, будь-які «нульові» — у False. Для примусового приведення значення до логічного типу використовується вбудована функція bool. Наприклад:

Вправа 1. Міркуємо логічно.

Завдання. У вправі за посиланням https:// Iearningapps.org/view13123820 два роботи допомагають вам виконати завдання. Робот Плюс завжди говорить правду. Робот Мінус — завжди говорить неправду. Виконайте завдання за підказками роботів.

1. Відкрийте браузер та перейдіть за посиланням

https://learningapps.org/view13123820

або QR-кодом.

2. 2. Розгляньте перше завдання (мал. 11.2).

3. Міркуйте так. Нехай твердження робота Плюс ми позначимо літерою А, а твердження робота Мінус — літерою В. Складемо таблицю істинності для двох тверджень. Позначимо правдиву відповідь 1, а неправдиву— 0: (табл. 11.3)

Таблиця 11.3

4. Поставте позначку біля відповіді, що відповідає 1 в останньому стовпчику.

5. Виконайте наступне завдання. За запропонованим зразком створіть для нього таблицю істинності. Прослідкуйте, скільки часу витратите на його повне виконання.

6. Виконайте завдання 3 без таблиці істинності. Скільки часу витрачено? Зробіть висновок, чи допомагає таблиця істинності у передбаченні результату.

7. Зручним для вас способом завершіть виконання завдань.

3. Як описати алгоритмічну структуру неповного розгалуження мовою програмування Python?

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

Для опису алгоритмічної структури розгалуження мовою програмування, яків середовищі Скретч, використовують оператор неповного розгалуження (мал. 11.3). Команда або блок команд в операторі неповного розгалуження буде виконуватись тільки в тому разі, коли логічний вираз набуває значення True.

Мовою програмування Python в операторі неповного розгалуження після логічного виразу записують символ «:», і наступний рядок розпочинають з відступу в 4 символи. Усі команди, що мають такий відступ у програмному коді, входять до блоку команд, які будуть виконуватися в тому разі, якщо умова істинна.

Вправа 2. Максимум із двох.

Завдання. Складіть програму мовою Python, у якій із двох введених цілих чисел А і В (< 1000) виводиться найбільше з них.

1. Розгляньте блок-схему розв’язування завдання (мал. 11.4).

2. Передбачте, які команди мови Python відповідають блокам на малюнку 11.4.

3. Відкрийте середовище програмування Thonny.

4. Створіть новий файл програми мовою Python з іменем Більше з двох у папці Програми своєї структури папок.

Якщо значення логічного виразу True, то виконується блок команд 1. Якщо значення логічного виразу False, то виконується блок команд 2.

5. Запишіть програму, використавши сплановані команди. Перевірте, чи є серед них команда:

6. Запустіть програму на виконання. Доберіть самостійно значення змінних для тестування програми.

4. Як описати алгоритмічну структуру повного розгалуження мовою програмування Python?

У задачах, які передбачають виконання альтернативних дій, використовують оператор повного розгалуження. Для запису оператора повного розгалуження додатково використовують службове слово

Якщо є потреба врахувати значення декількох логічних виразів, то використовують вкладені розгалуження:

В описаних вкладених розгалуженнях, якщо значення логічного виразу 1 True, то виконується блок команд 1. Якщо значення логічного виразу 1 False і значення логічного виразу 2 True, то виконується блок команд 2, і т.д. Інакше виконується команда інакше або блок команд інакше.

Якщо вкладених умовних операторів декілька, то до якого з них належить else, можна зрозуміти за відступом. Відступ у else має бути такий само, як в і f, до якого він належить.

Вправа 3. Слово чи декілька.

Завдання. Складіть програму, за допомогою якої можна визначити, чи введений текст складається з одного слова, чи з декількох.

1. Відкрийте середовище програмування Thonny.

2. Створіть новий файл програми мовою Python з іменем Слова в папці Програми своєї структури папок.

3. Передбачте, що введене текстове значення буде надано змінній s.

4. У програмному коді запишіть команди за поданою блок-схемою (мал. 11.5).

5. Запустіть програму на виконання. Доберіть самостійно значення змінноїs для тестування програми.

Вправа 4. Кількість однакових чисел.

Завдання. Дано три цілих числа. Визначте, скільки серед них збігаються. Складіть програму для виконання завдання, яка виводить одне із чисел: 3 (якщо всі збігаються), 2 (якщо два збігаються) або 0 (якщо всі числа різні).

1. Відкрийте середовище програмування Thonny.

2. Створіть новий файл програми мовою Python з іменем Однакові числа в папці Програми своєї структури папок.

3. Передбачте використання змінних а, Ь, с для заданих цілих чисел.

4. У програмному коді запишіть команди за поданою блок-схемою (мал. 11.6).

5. Запустіть програму на виконання. Доберіть самостійно значення змінних для тестування програми.

1. У чому особливість опису порівняння величин різних типів мовою програмування Python?

2. Як визначити значення логічного виразу, що містить логічні операції and, or і поґ? Як для пошуку відповіді на це запитання можна використати таблиці істинності?

3. Що спільного й відмінного мають логічні операції and і оґ?

4. Які засоби для перетворення логічних даних в інші типи передбачено в мові програмування Python?

5. У чому особливість опису повного розгалуження мовою програмування Python?

6. Наведіть приклади, коли у програмі варто застосовувати оператор неповного розгалуження.

7. Як мовою програмування Python реалізувати вкладені розгалуження?

8. Складіть у парі 5 виразів на порівняння значень величин різних типів мовою програмування Python. Запропонуйте їх іншій парі. Перевірте правильність отриманих відповідей.

9. Обговоріть, який оператор розгалуження варто використати у програмі, за допомогою якої описують кількість п горобців, що сидять на гілці (п < 100). Наприклад, для п = 1 — отримують 1 горобець, /г = 2 — отримують 2 горобці, п = 8 — отримують 8 горобців. Перевірте власні міркування за допомогою створення програми в середовищі програмування.

10. Обговоріть, які зміни потрібно внести у програму Максимум із двох, щоб упорядкувати три введені числа за зростанням. Побудуйте блок-схему, створіть відповідну програму та протестуйте її в середовищі програмування.

11. Обговоріть блок-схему розв’язування задачі для визначення агрегатного стану води, якщо відомо, що за температури t < 0 вода перетворюється в лід, t > 100 — у пару, інакше — залишається в рідкому стані. Скористайтесь файлом Вода з папки Програмування. За блок-схемою складіть програму. Обговоріть спільне та відмінне у програмах. Чи може програмний код відрізнятись?

12. Обговоріть блок-схему розв’язування задачі для перетворення введеного значення температури повітря в прийняті одиниці (відомо, що ступінь Фаренгейта (° F) і градус Цельсія (° С) — дві основні одиниці вимірювання температури. Шкала Фаренгейта використовується переважно в США, тоді як інші країни, як правило, використовують шкалу Цельсія). Якщо користувач програми вводить значення температури у градусах °С і вказує шкалу С, то в результаті отримує введене число. Якщо вказує шкалу F, то отримує відповідне значення температури, і навпаки. Використовують при цьому такі формули переходу від однієї шкали до іншої:

13. Визначте, якого логічного значення набуває логічний вираз, записаний мовою програмування Python:

14. За допомогою умовного оператора мовою програмування Python запишіть фрагмент програмного коду для:

1) заміни значення змінної s дійсного типу його абсолютною величиною;

2) присвоювання змінній k значення 0, якщо її початкове значення належало інтервалу (0; 5);

3) надання змінній t значення True, якщо введені координати х і у належать першій або третій координатній чверті.

У завданнях 15-23 складіть блок-схему розв’язування завдання програму мовою Python та реалізуйте її в середовищі програмування.

15. Складіть програму Мішень, у якій за введеними дійсними числами х і у буде виведено повідомлення Вітаємо! Влучний пострілі, якщо точка з координатами х, у належить заштрихованій області, (мал. 11.7) та повідомлення Шкода, не влучено! — в іншому разі.

16. Відомо, що лев спить у середньому 18 год на день. Як тільки лев прокидається, він стає дуже голодним. У середовищі програмування розробіть програму Лев, щоб сказати власнику/власниці зоопарку, чи лев буде спати, голодний або щасливий. Лев буде:

• сонним, якщо час його сну не досяг 18 год;

• голодним, якщо час його сну перевищує 18 год і його не годували;

• щасливим, якщо час його сну перевищує 18 год і його нагодували.

17. Складіть програму Рік, у якій за введеним цілим числом року визначають, чи є рік високосним. Якщо рік є високосним, то слід вивести повідомлення YES, інакше — N0. Відомо, що відповідно

до григоріанського календаря рік є високосним, якщо його номер кратний 4, але не кратний 100, а також якщо він кратний 400.

18. Складіть програму Оцінки, у якій у текстове поле виводиться опис досягнутого рівня на основі шкільної оцінки:

1) 1,2, 3 — початковий рівень;

2) 4, 5, 6 — середній рівень;

3) 7,8,9 — достатній рівень;

4) 10, 11, 12 — високий рівень.

19. Складіть програму Правила дорожнього руху, у якій можна визначити, чи не порушив правила дорожнього руху водій, що проїхав відстань S за час t, якщо на шляху встановлено одне із запропонованих обмежень на швидкість: 40 км/год, 60 км/год, 90 км/год. Передбачте, що вводяться іменовані дані.

20. Відомо таке співвідношення ідеальної ваги та зросту людини за віком: від значення зросту людини в сантиметрах беруться останні дві цифри; якщо вік людини до 25 років, то її вага має становити на 5 кг менше одержаного двоцифрового числа, для людей від 25 до 45 років — дорівнювати цьому двоцифровому числу, а для старших за 45 років — двоцифрове число потрібно збільшити на 5. У середовищі програмування розробіть програму Ідеальна вага, у якій користувач вводить свій зріст у сантиметрах і вагу, вказує вік у роках. У результаті виконання програми отримують висновок: вага ідеальна, надлишкова вага, недостатня вага.

21. На сковорідку одночасно можна покласти k котлет. Кожну котлету потрібно з кожного боку обсмажувати т хв безперервно. За який найменший час вдасться підсмажити з обох сторін п котлет? Розробіть програму Кухар, яка повідомляє про час обсмаження котлету хвилинах .

Розгляньте схему та поясніть, як у мові програмування Python реалізують її складові. Наведіть приклади програм, які використовують описані команди.

 

 

Це матеріал з підручника Інформатика 7 клас Морзе

 




Попередня сторінка:  10. Текстові величини та операції над н...
Наступна сторінка:   12. Реалізація алгоритмів повторення м...



^