Вкладені цикли
Цикл називають вкладеним, якщо він міститься в тілі іншого циклу (його також називають внутрішнім), а цикл, у якому він міститься, — зовнішнім.
Вкладені цикли організовані таким чином: внутрішній цикл повністю вміщується в тілі зовнішнього циклу (рис. 1). Тут А — зовнішній цикл, В — внутрішній.
Як внутрішній, так і зовнішній цикли можуть бути циклами з параметром або з умовою.
Порядок виконання вкладених циклів:
При першій ітерації (повторенні) зовнішнього циклу викликається внутрішній, який виконується до свого завершення. Після цього керування передається в тіло зовнішнього циклу. При другій ітерації зовнішнього циклу знову викликається
внутрішній. І так триватиме доти, поки не завершиться зовнішній цикл.
При першій ітерації (повторенні) зовнішнього циклу викликається внутрішній, який виконується до свого завершення. Після цього керування передається в тіло зовнішнього циклу. При другій ітерації зовнішнього циклу знову викликається
внутрішній. І так триватиме доти, поки не завершиться зовнішній цикл.
Приклад:
Зовнішній цикл перебирає список чисел (num_list), а внутрішній — список символів (alpha_list).
num_list = [1, 2, 3]
alpha_list = ['a', 'b', 'c']
for number in num_list:
print(number)
for letter in alpha_list:
num_list = [1, 2, 3]
alpha_list = ['a', 'b', 'c']
for number in num_list:
print(number)
for letter in alpha_list:
print(letter)
При першій ітерації зовнішнього циклу в консоль виводиться 1, а потім викликається внутрішній цикл, у якому виводяться послідовно a, b, c. Після цього керування передається на початок зовнішнього циклу, виводиться 2, а потім знову виконується внутрішній цикл і виводяться a, b, c і т. д.
При першій ітерації зовнішнього циклу в консоль виводиться 1, а потім викликається внутрішній цикл, у якому виводяться послідовно a, b, c. Після цього керування передається на початок зовнішнього циклу, виводиться 2, а потім знову виконується внутрішній цикл і виводяться a, b, c і т. д.
Зверни увагу!
Параметрами вкладених циклів for мають бути різні змінні.
Приклад:
Знайти всі тризначні натуральні числа, сума цифр яких дорівнює їхньому добутку. Визначити кількість таких чисел.
k = 0
for a in range (1,10):
for b in range (10):
for c in range (10):
if a + b + c = = a * b * c:
print (100 * a + 10 * b + c)
k = k + 1
print ("k=", k)
k = 0
for a in range (1,10):
for b in range (10):
for c in range (10):
if a + b + c = = a * b * c:
print (100 * a + 10 * b + c)
k = k + 1
print ("k=", k)
Приклад:
Щоб створити такий орнамент, потрібно малювання п’ятикутника повторити 10 разів.
Метод перебору значень
Метод перебору значень часто використовується в програмуванні. Наприклад, його використовують, якщо потрібно знайти цілий корінь деякого складного рівняння.
При цьому перебираються можливі цілі значення x із обмеженого діапазону і підставляються в рівняння. Відповіддю є таке значення x, при якому рівняння перетворюється на рівність.
При цьому перебираються можливі цілі значення x із обмеженого діапазону і підставляються в рівняння. Відповіддю є таке значення x, при якому рівняння перетворюється на рівність.
Приклад:
Задача. Визначити, скільки в клітці фазанів і кролів, якщо всього у них 35 голів і 94 ноги.
Нехай х — кількість фазанів, у — кількість кролів. Тоді х + у = 35. Відомо, що у фазанів 2 ноги, у кролів — 4, тому 2x + 4y = 94. Ці дві умови мають виконуватись одночасно, тобто утворюють складену умову. Фазанів може бути від 0 до 35, кролів теж може бути від 0 до 35.
Нехай х — кількість фазанів, у — кількість кролів. Тоді х + у = 35. Відомо, що у фазанів 2 ноги, у кролів — 4, тому 2x + 4y = 94. Ці дві умови мають виконуватись одночасно, тобто утворюють складену умову. Фазанів може бути від 0 до 35, кролів теж може бути від 0 до 35.
for x in range(36):
for y in range(36):
for y in range(36):
if ((2*x+ 4*y == 94) and (x+y==35)):
print('x=',x, ' y=',y)
Відповідь: x = 23; y = 12.
Відповідь: x = 23; y = 12.
Джерела:
Інформатика : підруч. для 6 кл. закл. загал. серед. освіти / [О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов]. — Харків : Вид-во «Ранок», 2019