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

Тема 8
Цикли. Цикл з лічильником
Теоретична частина
Під час виконання різноманітних завдань часто доводиться повторювати деякі дії декілька раз, можливо, з невеликими відмінностями. Наприклад, на уроці фізкультури вчитель пропонує учням зробити 10 присідань чи пробігти 5 кіл по стадіону. В обох наведених прикладах потрібно повторити певну кількість дій деяку кількість раз. Інколи кількість повторень невідома, але при цьому задається деяка умова. Наприклад, робіть підтягування на турніку, поки можете. В першому випадку відома кількість повторень, а в іншому – ні. Дії, які повторюються називаються циклічними або циклом. В першому наведеному прикладі говорять про цикл з лічильником, а в другому – про цикл з умовою.
Розпочнемо вивчення циклів із циклу з лічильником. На мові Python він записується так:
for i in range(n):
    тіло циклу
Змінна і (параметр циклу, кількість ітерацій, повторень) пробігає значення певного діапазону записаного у функції range() і для кожного значення виконується деяка послідовність команд, яка називається тілом циклу. Як видно із запису, тіло циклу знаходиться правіше оператора for.
Розглянемо параметри функції range(). У наведеному записі змінна n задає інтервал від 0 до n-1 включно (всього n значень). Тобто, спочатку змінна і набуває значення 0 і для цього значення виконуються всі команди у циклі. Наступне значення змінної і є 1, потім 2, потім і т.д., поки не досягне значення n, для якого цикл вже не виконується. У випадку запуску циклу не з нуля, то вводиться ще один параметр – початкове значення. Наприклад,
for i in range(3,n):
    тіло циклу
Значення змінної і розпочинається з 3, потім 4, і т.д. і закінчується n-1.
Якщо ввести ще один параметр, то отримаємо … Спробуйте зрозуміти самостійно.
n=10
for i in range(3,n,2):
    print(i, end=’ ’)
Програма виведе результат:
3 5 7 9
Здогадалися? Змінна і змінює значення з певним кроком, який задається у третьому параметрі. Більш формально можна сказати так:
Функція range(x,y,d) задає інтервал від х до y-1 включно з кроком d, тобто xx+dx+2dx+3d, … поки не досягне значення, рівного y або більше, для яких вона не виконується. 
Якщо значення d<0, то повинно бути x>y. Наприклад, для виведення чисел від 100 до 1 потрібно записати так:
for i in range(100,0,-1):
    print(i, end=’ ’)

Розглянемо кулька прикладів.
Приклад 1.
Дано натуральне число n. Знайти n! (добуток всіх натуральних чисел, що не перевищує nтобто 1*2*3*…*n).
Вхід                                              Вихід
6                                                    720
n=int(input())
p=1
for i in range(1,n+1):
    p*=i                                    # те саме, що p=p*i
print(p)

Приклад 2.
У одному рядку дано два натуральних числа a і b (a<b). Вивести у одному рядку через пропуск квадрати натуральних чисел від a до b включно.
Вхід                                              Вихід
8 11                                               64 81 100 121
a,b=map(int,input().split())
for i in range(a,b+1):
    print(i**2,end=’ ‘)

 Практична частина
Завдання 8.1. Дано натуральне число n. Знайдіть суму натуральних чисел від 1 до n.
Вхід                                                     Вихід
       10                                                         55 
Завдання 8.2. У двох рядках дано по одному натуральному числу a та b (0<a<b<50). Знайти добуток натуральних чисел від а до b включно.
Вхід                                                     Вихід
        4                                                           840
        7
Завдання 8.3. Дано натуральне число n. Виведіть таблицю множення для даного числа від 1 до 10 (див. приклад).
Вхід                                                     Вихід
5                                                            5*1=5
                                                              5*2=10
                                                              5*3=15
                                                              5*4=20
                                                              5*5=25
                                                              5*6=30
                                                              5*7=35
                                                              5*8=40
                                                              5*9=45
                                                              5*10=50
Завдання 8.4. У двох рядках дано по одному натуральному числу a та b (0<a<b<50). Виведіть таблицю квадратів натуральних чисел від aдо b включно (див. приклад).
Вхід                                                     Вихід
        9                                                            9*9=81
       12                                                           10*10=100
                                                                      11*11=121
                                                                      12*12=144
Завдання 8.5. У одному рядку дано два натуральних числа a та b. Виведіть в одному рядку через пропуск всі натуральні числа від а до включно.
Вхід                                                     Вихід
        6 10                                                     6 7 8 9 10
        Вхід                                                     Вихід
        10 6                                                      10 9 8 7 6
Завдання 8.6. У одному рядку дано три натуральних числа a, b та с. Виведіть одному рядку через пропуск квадрати натуральних чисел від a до з кроком с
Вхід                                                     Вихід
        2 7 2                                                    4 16 36 

Вхід                                                     Вихід

       10 2 3                                                  100 49 16  

1 коментар:

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