Цикли з передумовою
Команди циклу з передумовою будуть повторюватися доти, поки перевірка умови дає істинне значення. Як тільки умова не виконується, завершується виконання циклу.
Цикл з передумовою у вигляді блок-схеми:
Завдання з циклом while:
Завдання 1. Вводити з клавіатури числа, поки не введемо нуль.
a=int(input("Введіть число "))
while (a!=0):
a=int(input("Введіть число "))
print ("The End")
Завдання 2. Генерувати випадкові числа від 1 до 6, поки не випаде 1
import random
a = 0
while (a != 1):
a = random.randint(1, 6)
print(a)
print ("The End")
Завдання 3. Порахувати, скільки чисел генерує комп'ютер, поки не отримає випадкове
число 100 в діапазоні від 1 до 100
import random
a = 0
k = 0
while (a!=100):
a=random.randint(1,100)
print(a, end=' ')
k = k + 1
print ("к=", k)
Завдання 4. Порахувати, скільки парних і непарних чисел генерує комп'ютер, поки не
отримає випадкове число 100 в діапазоні від 1 до 100.
import random
a = 0
k = 0
n = 0
while (a!=100):
a=random.randint(1,100)
print(a, end=' ')
if(a%2==0):
k=k+1
else:
n=n+1
print ("Парних=", k)
print ("Непарних=", n)
Завдання 6. Вкладник поклав до банку 5000 грн. під 20 % річних. Через скільки років сума вкладу подвоїться?
В циклах, іноді треба
виконувати дії з отримання суми або добутку чисел. Для цього використовуються
накопичувачі. Прикладом такого накопичувача є лічильник (рахує кількість кроків
циклу), який збільшує своє значення на одиницю з кожним разом виконання циклу.
Для таких накопичувачів необхідна змінна, яка має початкове значення 0 для
створення суми чисел і початкове значення 1 для знаходження добутку (змінна
створюється до початку циклу).
Завдання 7. Створити програму, яка буде обчислювати суму натуральних чисел 1+2+3+...+n та буде виводити її на екран.
n = int(input('введіть кількість чисел '))
i = 0
sum = 0
while i < n:
i = i + 1
sum = sum + i
else:
print('Сума', n, 'чисел =', sum)
Завдання 8. Дідусь Василь n днів ходив у ліс по гриби. Першого дня він знайшов 11 гибів, другого 20, третього 29. Кожного дня грибів стабільно збільшувалось. Скільки всього грибів зібрав досвідчений грибник?
(Перевірка: n = 3 sym = 60, n = 5 sym = 145)
n=int(input('Введіть кількість днів n='))
sym=0
x=11
i=1
while i<=n:
sym=sym+x
x=x+9
i=i+1
print ( 'sym=', sym )
Введемо змінні:
sym – загальна
кількість грибів;
x – кількість грибів, знайдена певного дня;
i – лічильник днів.
Початкове значення
загальної кількості грибів sym=0 (ми
ще нічого не рахували). У перший день дідусь знайшов 11 грибів, тому x=11.
Відлік днів ведемо,
починаючи з 1, тому i=1.
Цикл виконуємо, поки лічильник днів i не
досягне заданої кількості днів n (i<=n). Щодня сума знайдених
грибів sym збільшується
на x, тобто sym=sym+x.
Неважко помітити, що 20-11=
29-20= 9, тобто щодня грибник знаходив на 9 грибів більше. Тому щоденна
кількість грибів x=x+9.
Завдання 9. Ведмедик Вінні Пух дуже полюбляє
мед і хоче, щоб бджоли збирали його якомога більше. Мудра Сова порадила йому
посіяти на галявині квіти фацелії, які є чудовим медоносом.
Ведмедик весною посіяв 1 зернину. Влітку
рослина зацвіли, а восени Вінні Пух зібрав 5 насінин.
Наступного року кожна з 5 посіяних зернин потішила
ведмедика пишним цвітом та 7 насінинами
врожаю. Тобто восени 2-ого року Вінні Пух мав вже 35 зернин.
Скільки насінин матиме
любитель меду через N років?
n=int(input('Введіть кількість днів n='))
k=1
m=5
i=1
while i<=n:
k=k*m
m=m+2
i=i+1
print ('k=', k )
Введемо
змінні:
i – лічильник
років;
m – кількість
зернят, які з’явились на кінець року на кожній рослині;
k – загальна
кількість насінин, яку в поточному році спочатку посіяв, а потім зібрав Вінні
Пух.
Відлік років ведемо з першого, тому i=1. Працюватимемо, поки лічильник
років i не перевищить
заданої кількості років N (i<=N).
Першого року було посіяно 1 зернятко, тому k=1. На кінець року на рослині
з’явилось 5 насінин,
тому m=5.
Щоб знайти кількість зернин, отриманих
восени, потрібно посаджену кількість рослин k помножити
на кількість насінин на кожній із них m,
тобто k=k*m (кількість
зернин збільшується у m разів).
Неважко помітити, що врожайність рослин
щороку зростає на 2 зернини,
тому m=m+2.
Завдання 10: Cтворити програму, яка задане ціле число перетворює на число, записане навпаки.
Наприклад, при введенні числа 123 отримуємо 321. Для початку потрібно ввести
число А та задати додаткову змінну, у котру будуть записуватись змінені числа.
Цикл будемо виконувати доти, доки число А буде більшим за 0 (в майбутньому саме
його ми будемо ділити на 10 та виводити лише цілу частину). Якщо умова буде
хибна то відразу виведемо N=0. Якщо ж A>0 то у змінну Z запишемо число, що
дорівнюватиме частці чисел А та 10 по модулю. У змінну А запишемо ціле число
від ділення на 10. Число N помножимо на 10 і до отриманого значення додамо Z.
Повторюючи такі дії ми зможемо досягти «розвороту» числа.
Завдання 11. Реалізуйте гру «Вгадай слово». Задумати число від 1 до 20. Користувач за 4 спроби має його відгадати. Якщо відгадує, то появляється повідомлення «Молодець!», якщо ні то користувачеві повідомляється, більше чи ні це число від загаданого.
import random
print('Гра вгадай число')
число_пк = random.randint(1,20)
спроб = 1
число_користувача = 0
while (спроб <= 5) and число_користувача != число_пк:
print('**** Спроба - ', спроб, '****')
число_користувача = int(input('Введіть число '))
if число_користувача > число_пк:
print('Комп\'ютер: "Я загадав меше число" ')
if число_користувача < число_пк:
print('Комп\'ютер: "Я загадав більше число" ')
спроб = спроб + 1
if число_користувача != число_пк:
print('Комп\'ютер: "Вибач, та ти програв! Моє число було -', число_пк, '" ')
else:
print('Комп\'ютер: "Молодець! Ти відгадав моє число.')
Перевірка:
Завдання 12. Знайти всі дільники числа а.
n = int(input('Введіть число n = '))
i = 1
while i <= n:
if n % i == 0:
print(i, end = ' ')
i += 1
Коментарі
Дописати коментар