Продовжуємо вивчати мову програмування Python. Закріплюємо знання із теми розгалуження та цикли у Python. Виконуємо ряд практичних, творчих вправ . Використовуємо практичні завдання із дистанційного курсу Оксани Пасічник. Є картка із завданнями для учнів.
Тема: Алгоритми з повтореннями та розгалуженнями для опрацювання величин.
Метою є формування таких компетентностей:
Спілкування державною мовою. Це вміння усно і письмово висловлювати й тлумачити поняття, думки, почуття, факти та погляди (через слухання, говоріння, читання, письмо, застосування мультимедійних засобів).
Спілкування іноземними мовами. Уміння належно розуміти висловлене іноземною мовою, усно і письмово висловлювати і тлумачити поняття.
Інформаційно-цифрова компетентність передбачає впевнене, а водночас критичне застосування інформаційнокомунікаційних технологій (ІКТ) для створення, пошуку, обробки, обміну інформацією. Інформаційна й медіа-грамотність, основи програмування, алгоритмічне мислення, навички безпеки в інтернеті та кібербезпеці. Розуміння етики роботи з інформацією (авторське право, інтелектуальна власність тощо).
Тип уроку: урок застосування (закріплення) знань, умінь та навичок.
Обладнання: комп’ютер, зошит, проектор, дидактичні картки.
ПЗ: Python.
Структура уроку
1. Організаційний момент.
2. Перевірка домашнього завдання.
Задача: Ми загадуємо число, комп'ютер намагається його вгадати
import random
print("Загадай число від 1 до 10")
x=1
y=10
a=((x+y)//2)
print("Моя версія=",a)
print("Якщо мало, натисніть 1. Якщо багато, натисніть 2. Якщо вгадано, натисніть 3")
b=int(input())
while (b!=3):
if (b==1):
x=a
elif (b==2):
y=a
a=((x+y)//2)
print("Моя версія=",a)
print("Якщо мало, натисніть 1. Якщо багато, натисніть 2. Якщо вгадано, натисніть 3")
b=int(input())
print ("The End")
4. Творчі вправи.
Задача 1. Банк.
На скільки років потрібно покласти в банк суму have, щоб отримати суму want, якщо банк нараховує 24% річних?
want=int(input("Яку суму ви хочете отримати? "))
have=int(input("Яку суму ви маєте? "))
suma=have
k=0
while suma<=want:
suma=suma+0.24*suma
k=k+1
print(suma)
print("Потрібно ",k, "років")
Задача 2. Скарби.
Капітан Флінт та його пірати (K) знайшли скарб із N монет Капітан забрав собі частину скарбу, що не перевищує половину Кожен із наступних піратів вчинив так само На скількох піратів вдалось розподілити скарб таким чином? Чи був бунт? (якщо обділеними залишилось більше половини піратів)
k=int(input("Скільки було піратів? "))
n=int(input("Скільки знайдено монет? "))
kapitan=n //2
n=n-kapitan
piraty=0
while n//2>0:
suma=n//2
n=n-suma
piraty +=1
print("Гроші отримають",piraty,"піратів та капітан Флінт")
buntari=k-1-piraty
print("Бунтувати хочуть",buntari,"піратів")
if (buntari>=piraty):
print("Буде бунт")
else:
print("Бунту не буде")
Задача 3. Яблука.
Яблука складені на прилавку пірамідкою: зверху одне, далі два, три, чотири і т.д. Скільки яблук на прилавку, якщо всього N рядів?
n=int(input("Скільки рядів яблук? "))
v_ryadu=0
vsogo=0
for ryad in range(n):
v_ryadu +=1
vsogo +=v_ryadu
print("Всього на прилавку", vsogo, "яблук")
Задача 4. Яблука-2.
Скільки ящиків потрібно для зберігання цих яблук, якщо у ящик поміститься K яблук у висоту і M у ширину?
n=int(input("Скільки рядів яблук? "))
v_ryadu=0
vsogo=0
for ryad in range(n):
v_ryadu +=1
vsogo +=v_ryadu
print("Всього на прилавку", vsogo, "яблук")
k=int(input("У висоту "))
m=int(input("У ширину "))
box=0
box= vsogo // (k*m)
if (vsogo % (k*m) !=0):
box=box+1
print("Треба",box,"ящиків")
Задача 5. Букет.
Таня назбирала v волошок та r ромашок. Дівчинка вирішила зробити букети так, щоб у кожному обов'язково було a волошок та b ромашок. Скільком друзям дівчинка зможе подарувати квіткові композиції?
v=int(input("Зібрано волошок "))
r=int(input("Зібрано ромашок "))
a=int(input("У букеті має бути волошок "))
b=int(input("У букеті має бути ромашок "))
k=0
while (v>=a) and (r>=b):
v -= a
r -= b
k += 1
print("Вийшло ", k, "букетів")
Задача 6. Юні підприємці.
В учнів було S грн. Пляшка з соком коштує price грн, порожня пляшка коштує empty грн. Складіть алгоритм, за яким можна визначити, скільки пляшок соку вип'ють учні, якщо вони повертатимуть порожні пляшки й на отримані гроші купуватимуть повні?
s=int(input("Сума на початку "))
price=int(input("Ціна соку "))
empty=int(input("Порожня пляшка "))
k=0
while (s>=price):
pokupka= s//price
print("Куплено ", pokupka, "пляшок соку")
s=s-pokupka*price
s=s+pokupka*empty
k=k+pokupka
print("Куплено ", k, "пляшок соку")
Задача 7. Ліфт.
Ліфт витримує 400 кг. У ліфт заходять люди масою від 50 до 80 кг. Скільки людей зайде в ліфт?
lift=400
import random
person=random.randint(50,81)
print(person)
suma=person
k=1
while suma<=lift:
person=random.randint(50,81)
print(person)
suma+=person
k=k+1
print("У ліфт зайшло",k,"людей")
Задача 8. Кур'єри.
Івана Олександровича Хлестакова запрошували керувати департаментом. Першого дня до нього відправили 1000 кур'єрів, а кожного наступного дня відправляли вдвічі більше, ніж попереднього. Іван Олександрович згодився тоді, коли до нього одразу прибуло не менш ніж 30000 кур'єрів. На який день це сталося?
n=1000
den=1
while n<30000:
n *=2
den +=1
print("Пройде",den,"днів")
5. Підсумки уроку.
6. Домашнє завдання.
Завдання до теми: «Алгоритми з повтореннями та розгалуженнями для опрацювання величин.»
Задача 1. Банк.
На скільки років потрібно покласти в банк суму have, щоб отримати суму want, якщо банк нараховує 24% річних?
Вставити пропущені рядки коду
want=int(input("_______________________? "))
have=int(input("________________________ "))
suma=have
k=0
while _____<=________:
suma=________+0.24*_________
k=k+1
print(________)
print("Потрібно ",____, "___________")
Задача 2. Скарби.
Капітан Флінт та його пірати (K) знайшли скарб із N монет Капітан забрав собі частину скарбу, що не перевищує половину Кожен із наступних піратів вчинив так само На скількох піратів вдалось розподілити скарб таким чином? Чи був бунт? (якщо обділеними залишилось більше половини піратів)
Задача 3. Яблука.
Яблука складені на прилавку пірамідкою: зверху одне, далі два, три, чотири і т.д. Скільки яблук на прилавку, якщо всього N рядів?
Розмістити рядки коду у правильному порядку
print("Всього на прилавку", vsogo, "яблук"), n=int(input("Скільки рядів яблук? ")),
v_ryadu +=1, vsogo=0, for ryad in range(n):, vsogo +=v_ryadu, v_ryadu=0.
Задача 4. Яблука-2.
Скільки ящиків потрібно для зберігання цих яблук, якщо у ящик поміститься K яблук у висоту і M у ширину?
Задача 5. Букет.
Таня назбирала v волошок та r ромашок. Дівчинка вирішила зробити букети так, щоб у кожному обов'язково було a волошок та b ромашок. Скільком друзям дівчинка зможе подарувати квіткові композиції?
Задача 6. Юні підприємці.
В учнів було S грн. Пляшка з соком коштує price грн, порожня пляшка коштує empty грн. Складіть алгоритм, за яким можна визначити, скільки пляшок соку вип'ють учні, якщо вони повертатимуть порожні пляшки й на отримані гроші купуватимуть повні?
За коментарями до коду відтворити код програми
#Запитати у користувача, яка сума була спочатку в учнів
#Ввести із клавіатури ціну пляшки із соком, присвоїти це значення змінній price
#Ввести із клавіатури ціну порожньої пляшки , присвоїти це значення змінній empty
#Присвоїти значення нуль для змінної, яка відповідає за кількість пляшок
#використати цикл повторення з умовою, щоб цикл виконувався до тих пір поки початкова сума грошей учнів була більшою чи рівною за ціну пляшки із соком
#В середині циклу обчислити скільки пляшок соку можуть купити учні
#Вивести кількість куплених пляшок соку
#Обчислити суму грошей, яка залишилась після покупки
#Обчислити суму грошей, яка буде в учнів після того як вони здадуть порожні пляшки
#Обчислити кількість всіх куплених пляшок із соком
#Вивести кількість пляшок, які учні зможуть купити і випити
Задача 7. Ліфт.
Ліфт витримує 400 кг. У ліфт заходять люди масою від 50 до 80 кг. Скільки людей зайде в ліфт?
Задача 8. Кур'єри.
Івана Олександровича Хлестакова запрошували керувати департаментом. Першого дня до нього відправили 1000 кур'єрів, а кожного наступного дня відправляли вдвічі більше, ніж попереднього. Іван Олександрович згодився тоді, коли до нього одразу прибуло не менш ніж 30000 кур'єрів. На який день це сталося?