Тема 11
Цикл з умовою
Теоретична частина
При введені поняття циклу ми звернули
увагу, що є цикл з лічильником і цикл з умовою. Зараз розглянемо цикл з умовою.
Алгоритм циклу наступний:
Поки умова істинна виконувати
Команди циклу
На мові Python цей цикл записується так:
while умова:
тіло циклу
Розглянемо фрагмент програми
x=1
while x<10:
print(x**2)
x+=2
Спочатку змінна х набуває значення 1. На
початку циклу перевіряється умова х<10, вона істинна, тому
виконуються команди в тілі циклу: виводиться 1, змінна х збільшується на 2,
тобто стає рівною 3. Знову перевіряється умова x<10, вона є істинною, тому знову виконуються команди циклу: виводиться
9, змінна х стає рівною 5. Так повторюється ще три рази: виводиться 25, змінна
х набуває значення 7; виводиться 49, змінна х = 9; виводиться 81, змінна х=11.
Тепер умова x<10 стає хибною, тому цикл
більше не виконується. Отже, програма виводить у окремих рядках квадрати
непарних одноцифрових чисел. Зверніть увагу, що тіло циклу знаходиться правіше
оператора while.
Звичайно, що умова циклу може бути як
проста так і складна. Наприклад, для того щоб цикл повторювався, поки не
дотягнеться певний результат, наприклад, поки позиція об’єкта (i, j) не співпаде з координатою (x, y), цикл запишеться так:
while not(x==i and y==j):
тіло циклу
Розглянемо кілька
прикладів.
Приклад 1.
Дано натуральне
число n.
Знайти мінімальний його дільник, більший за 1.
Вхід
Вихід
15 3
n=int(input())
a=2
while n%a!=0: # поки дане число не ділиться на число а
a+=1 # збільшуємо змінну а на 1
print(a)
Приклад 2.
Дано натуральне
число n.
Знайти суму його цифр.
Вхід
Вихід
342
9
n=int(input())
s=0
while n>0:
s+=n%10 (знаходимо останню
цифру і додаємо до суми)
n//=10
(відкидаємо останню цифру)
print(s)
Приклад 3.
Дано послідовність
чисел по одному в кожному рядку, що закінчуються нулем. Знати середнє
арифметичне їх значення. Число 0 обробляти не потрібно. Числа в послідовності є
натуральними.
Вхід
Вихід
4
5.5
5
12
1
0
s=0
n=0
a=int(input())
while a!=0:
s+=a
n+=1
a=int(input())
print(s/n)
Практична частина
Завдання 11.1. Дано
натуральне число n. Виведіть всі квадрати натуральних чисел у порядку
зростання, що не перевищують дане число n.
Вхід
Вихід
20 1 4 9 16
Завдання 11.2. Дано
натуральне число n. Виведіть всі степені двійки у порядку зростання, що
не перевищують дане число n.
Вхід
Вихід
20 1 2 4 8 16
Завдання 11.3. Дано
натуральне число n. Виведіть YES, якщо дане число є
степенем двійки, і NO в іншому випадку.
Вхід
Вихід
20 NO
Завдання 11.4. У перший день спортсмен пробіг х км, а кожного наступного збільшував дистанцію на 10%. На який
день його пробіг буде не менше ніж у
км?
Дано натуральні числа х та у – по одному в кожному рядку. Виведіть одне натуральне число –
відповідь на задачу.
Вхід
Вихід
10 9
20
Завдання 11.5. Вклад у
банку складає х грн.. Щорічно він
збільшується на р відсотків, після
чого дробова частина копійок відкидається. Визначте, через скільки років вклад
стане не менше ніж у грн. В одному
рядку дано три натуральних числа – х, р,
у. Виведіть ціле число – відповідь на задачу.
Вхід
Вихід
1000 10 2000 8
Зауваження: функція int() для дійсного числа
знаходить його цілу частину, наприклад, int(7.6)=7
Завдання 11.6. Дано
натуральне число n. Виведіть кількість нулів в в записі цього числа.
Вхід
Вихід
20 1
Завдання 11.7. Дано
натуральне число n. Виведіть максимальну його цифру.
Вхід
Вихід
34 4
Завдання 11.8. Дано
натуральне число n. Виведіть його двійковий запис у зворотньому порядку.
Вхід
Вихід
6 011
Завдання 11.9. Дано
натуральне число n. Виведіть його цифри у зворотному порядку
Вхід
Вихід
263 362
Завдання 11.10. Дано послідовність чисел по одному в кожному рядку, що закінчуються
нулем. Знати кількість парних чисел. Число 0 обробляти не потрібно. Числа в
послідовності є натуральними.
Вхід
Вихід
4
2
5
12
1
0
Завдання 11.11Дано послідовність чисел по одному в кожному рядку, що закінчуються нулем.
Знати кількість чисел, більших за попереднє. Число 0 обробляти не потрібно.
Числа в послідовності є натуральними.
Вхід
Вихід
4
2
5
12
1
0
Завдання 11.12. Дано послідовність чисел по одному в кожному рядку, що закінчуються
нулем. Знати кількість чисел, що дорівнюють максимальному. Число 0 обробляти не
потрібно. Числа в послідовності є натуральними.
Вхід
Вихід
12
2
5
12
1
0
Немає коментарів:
Дописати коментар