субота, 18 листопада 2017 р.

Тема 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.
Звичайно, що умова циклу може бути як проста так і складна. Наприклад, для того щоб цикл повторювався, поки не дотягнеться певний результат, наприклад, поки позиція об’єкта (ij) не співпаде з координатою (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

Немає коментарів:

Дописати коментар

Вітаю Вас, читачі мого блогу, який присвячений вивченню мови Python у школі. Даний курс розрахований на учнів 8 класу, що навчаються за пр...