Величини в алгоритмах із циклами з лічильником
7
Величини в алгоритмах із циклами
Розділ 4 § 4.4
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Величини можуть використовуватися й у циклах з лічильником.
Блок-схему циклу з лічильником наведено на малюнку.
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Нагадаємо, що цикл з лічильником використовується в алгоритмах у випадках, коли перед його виконанням відомо, скільки разів повинні виконатися команди тіла циклу.
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Для того щоб описати повторення визначену кількість разів, використовують оператор циклу з параметром.
У мові програмування Python цикл із параметром описується оператором for...
for i in <діапазон>
<команда>
Параметр циклу
Тіло циклу
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Цикл for... виконується за такими алгоритмом:
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Розглянемо як приклад алгоритм, що містить цикл з лічильником і в якому використовуються величини.
Задача 1. За першу годину туристи пройшли 4 км, а за кожну наступну годину проходили на 0,5 км менше, ніж за попередню. Який шлях вони пройшли за 3 год?
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Створимо математичну модель ситуації, описаної в цій задачі.
Для її розв'язування потрібно обчислити суму трьох чисел:
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Використаємо для цього дві змінні:
для загального пройденого шляху (на початку її значення має дорівнювати 0, бо ще ніякий шлях не пройдено)
s
для шляху, пройденого за кожну годину (на початку її значення має дорівнювати 4 - шлях, що буде пройдено за першу годину)
a
7
Величини в циклах з�лічильником
Розділ 4 § 4.4
У розглянутому алгоритмі тіло циклу складається з двох команд:
s := s + а
а := а - 0.5,
Які виконуватимуться 3 рази.
Блок-схему алгоритму розв'язування цієї задачі подано на малюнку.
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Розглянемо хід виконання цього алгоритму:
Команда
Результат виконання
s := 0
s := 0
a := 4
a := 4
s := s + a
s := 0 + 4 = 4
a := a – 0.5
a := 4 – 0.5 = 3.5
s := s + a
s := 4 + 3.5 = 7.5
a := a – 0.5
a := 3.5 – 0.5 = 3
s := s + a
s := 7.5 + 3= 10.5
a := a – 0.5
a := 3 – 0.5 = 2.5
Повідомити значення s
Повідомлення: s = 10.5
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Цей алгоритм в Python виглядатиме так:
s = 0
a = 4
for і in range(3):
s = s + a
a -= 0.5
print("Шлях за 3 години =", s)
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Розглянемо ще один проект із циклом з лічильником з використанням величин, у якому виконавець малює 5 квадратів, які розташовані один за одним. Довжина сторони першого з квадратів дорівнює а кроків, а довжина сторони кожного наступного на 20 кроків більша.
Створимо математичну модель цього проекту.
Для зберігання довжини сторони потрібно створити змінну, наприклад а, і надати їй певного початкового значення, наприклад 30:
a = 30
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Вам відомо, що для малювання одного квадрата з довжиною сторони а кроків використовується такий цикл:
for i in range(4):
fd(a)
right(90)
Щоб виконавець намалював 5 квадратів, потрібно цей цикл помістити в цикл з лічильником, що повторюється 5 разів:
for i in range(5):
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Для малювання кожного наступного квадрата потрібно перемістити виконавця в початкову точку його малювання. Для цього потрібно підняти олівець, щоб виконавець переміщувався без малювання, і перемістити його на відстань, що дорівнює довжині сторони останнього квадрата плюс якесь число, наприклад 10. Це число визначатиме відстань між двома квадратами, тобто потрібно використати такі команди:
up
fd(a+10)
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Сторона кожного наступного квадрата повинна бути на 20 кроків більша за сторону попереднього. Тому перед малюванням чергового квадрата потрібно збільшити значення змінної а, яка й задає довжину сторони квадрата, на 20. Для цього використаємо команду:
a += 20
7
Величини в циклах з лічильником
Розділ 4 § 4.4
Повний вигляд цього проекту з результатом його виконання:
from turtle import *
up()
goto(-200, 0)
a=30
for i in range(5):
down()
for i in range(4):
fd(a)
right(90)
up()
fd(a+10)
a += 20
7
Розгадайте ребус
Лічильник
Розділ 4 § 4.4
7
Дайте відповіді на запитання
Розділ 4 § 4.4
for і in range(5):
right(x)
print("Привіт")
Що ви можете сказати про значення змінної х під час виконання цього циклу?
7
Дайте відповіді на запитання
Розділ 4 § 4.4
у = 0
х = 4
for і in range(x):
у = у + X
Чому дорівнюватиме значення у після закінчення його виконання?
7
Домашнє завдання
Проаналізувати
§ 4.4, ст. 154-156
Розділ 4 § 4.4
7
Працюємо за комп’ютером
Розділ 4 § 4.4
Сторінка
160-163
7
Дякую за увагу!
7