Реалізація алгоритмів з розгалуженнями
Пригадаємо
- розгалуження – частина алгоритму, у якій, в залежності від результату перевірки умови («так» або «ні»), передбачено виконання однієї з двох послідовностей дій (гілок)
- просте розгалуження в Python організується за допомогою умовного оператора (запис у повній формі)
if Умова:
Блок інструкцій 1
else:
Блок інструкцій 2 - вкладене (каскадне) розгалуження в Python будується так:
if Умова 1:
Блок інструкцій 1
elif Умова 2:
Блок інструкцій 2
...
elif Умова N:
Блок інструкцій N
else:
Блок інструкцій для інших випадків - зазначені блоки інструкцій в Python є вкладеними довідповідних гілок, тому при написанні програми потрібно суворо відстежувати відступи від лівого краю програми для таких блоків
Завдання-розминка
Чим відрізняються наступні фрагменти програм:
- if a > b: a = b
a = c
та
if a > b: a = b
else: a = c - if a > b: a = b
if a > c: a = c
та
if a > b: a = b
elif a > c: a = c
Для яких вхідних даних результати виконання обох программ (значення змінної a) будуть однаковими, а для яких – різними?
Потрібно записати до змінної М максимальне з трьох чисел, що зберігаються у змінних a, b і c. Чи вирішує цю задачу така програма?
if a > b: M = a
else: M = b
if c > b: M = c
else: M = b
За яких значень змінних a, b і c у змінній M буде отримана неправильна відповідь? Як потрібно змінити програму, щоб вона завжди працювала коректно?
Задачі уроку
Середовище програмування Repl.It (авторизація через Google-акаунт).
Альтернативно – середовище CodeHS.
- Відомі кількість поверхів у багатоквартирному будинку та кількість квартир на поверсі. Визначити за номером квартири її розташування (під'їзд, поверх). (модель задачі)
- На одному маленькому квадратному безлюдному острові зі стороною А метрів висадилися К потерпілих від корабельної аварії Робінзонів. Чи не порушені їхні права на житло, якщо на кожного Робінзона має припадати не менше В квадратних метрів острова? На скільки Робінзонів ще вистачить місця на острові, якщо поблизу станеться нова корабельна аварія? (модель задачі)
- Чебурашка вирішив купити килими, щоб застелити кімнату, де він жив разом із Геною. Розмірами їхньої прямокутної кімнати виявилися цілі числа a і b. Коли Чебурашка запитав у магазині, яких розмірів є квадратні килими у продажу, продавець назвав йому ціле число с. Скільки килимів треба придбати Чебурашці, щоб накрити максимальну площу кімнати? Килими не можна накладати та підгинати. Передбачити ситуацію, коли розміри килима перевищують розмір кімнати. (модель задачі)
- Жили-були дід і баба, і був у них город прямокутної форми. Довжина городу становила А метрів, а ширина - B метрів. Якось дід посварився з бабцею і вирішив поділити город. Тепер у діда квадратний город зі стороною С м, відрізаний від краю, а решта городу дісталася бабці. Визначити, чи не залишилася бабця обдуреною і якої форми город вона отримала - прямокутної, квадратної чи багатокутної? (модель задачі)
Самостійне завдання
Виконати в середовищі програмування або записати на аркуші программу до
- задачі, розглянутої на синхронному уроці
- іншої з задач уроку (на вибір)
Здати роботу через Клас.
Немає коментарів:
Дописати коментар