1 of 23

Величини в алгоритмах із циклами з лічильником

7

2 of 23

Величини в алгоритмах із циклами

Розділ 4 § 4.4

  1. Який фрагмент алгоритму називається циклом?
  1. Що називається тілом циклу?
  1. Чим відрізняється цикл з лічильником від циклу з передумовою?

7

3 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Величини можуть використовуватися й у циклах з лічильником.

Блок-схему циклу з лічильником наведено на малюнку.

7

4 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Нагадаємо, що цикл з лічильником використовується в алгоритмах у випадках, коли перед його виконанням відомо, скільки разів повинні виконатися команди тіла циклу.

7

5 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Для того щоб описати повторення визначену кількість разів, використовують оператор циклу з параметром.

У мові програмування Python цикл із параметром описується оператором for...

for i in <діапазон>

<команда>

Параметр циклу

Тіло циклу

7

6 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Цикл for... виконується за такими алгоритмом:

  1. Параметру циклу і присвоюється початкове значення.
  1. Якщо значення параметра циклу більше, ніж його кінцеве значення, то цикл завершується. Інакше виконується п. 3.
  1. Виконується команда.
  1. Значення параметра циклу і змінюється на відповідне наступне значення, і здійснюється перехід до п 2. і т.д.

7

7 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Розглянемо як приклад алгоритм, що містить цикл з лічильником і в якому використовуються величини.

Задача 1. За першу годину туристи пройшли 4 км, а за кожну наступну годину проходили на 0,5 км менше, ніж за попередню. Який шлях вони пройшли за 3 год?

7

8 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Створимо математичну модель ситуації, описаної в цій задачі.

Для її розв'язування потрібно обчислити суму трьох чисел:

  • перше з яких дорівнює 4,
  • а кожне наступне на 0,5 менше, ніж попереднє.

7

9 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Використаємо для цього дві змінні:

для загального пройденого шляху (на початку її значення має дорівнювати 0, бо ще ніякий шлях не пройдено)

s

для шляху, пройденого за кожну годину (на початку її значення має дорівнювати 4 - шлях, що буде пройдено за першу годину)

a

7

10 of 23

Величини в циклах з�лічильником

Розділ 4 § 4.4

У розглянутому алгоритмі тіло циклу складається з двох команд:

s := s + а

а := а - 0.5,

Які виконуватимуться 3 рази.

Блок-схему алгоритму розв'язування цієї задачі подано на малюнку.

7

11 of 23

Величини в циклах з лічильником

Розділ 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

12 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Цей алгоритм в Python виглядатиме так:

s = 0

a = 4

for і in range(3):

s = s + a

a -= 0.5

print("Шлях за 3 години =", s)

7

13 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Розглянемо ще один проект із циклом з лічильником з використанням величин, у якому виконавець малює 5 квадратів, які розташовані один за одним. Довжина сторони першого з квадратів дорівнює а кроків, а довжина сторони кожного наступного на 20 кроків більша.

Створимо математичну модель цього проекту.

Для зберігання довжини сторони потрібно створити змінну, наприклад а, і надати їй певного початкового значення, наприклад 30:

a = 30

7

14 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Вам відомо, що для малювання одного квадрата з довжиною сторони а кроків використовується такий цикл:

for i in range(4):

fd(a)

right(90)

Щоб виконавець намалював 5 квадратів, потрібно цей цикл помістити в цикл з лічильником, що повторюється 5 разів:

for i in range(5):

7

15 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Для малювання кожного наступного квадрата потрібно перемістити виконавця в початкову точку його малювання. Для цього потрібно підняти олівець, щоб виконавець переміщувався без малювання, і перемістити його на відстань, що дорівнює довжині сторони останнього квадрата плюс якесь число, наприклад 10. Це число визначатиме відстань між двома квадратами, тобто потрібно використати такі команди:

up

fd(a+10)

7

16 of 23

Величини в циклах з лічильником

Розділ 4 § 4.4

Сторона кожного наступного квадрата повинна бути на 20 кроків більша за сторону попереднього. Тому перед малюванням чергового квадрата потрібно збільшити значення змінної а, яка й задає довжину сторони квадрата, на 20. Для цього використаємо команду:

a += 20

7

17 of 23

Величини в циклах з лічильником

Розділ 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

18 of 23

Розгадайте ребус

Лічильник

Розділ 4 § 4.4

7

19 of 23

Дайте відповіді на запитання

  1. Якою є блок-схема циклу з лічильником?
  1. Як виконуватиметься цикл:

Розділ 4 § 4.4

for і in range(5):

right(x)

print("Привіт")

Що ви можете сказати про значення змінної х під час виконання цього циклу?

7

20 of 23

Дайте відповіді на запитання

  1. Як виконуватиметься фрагмент:

Розділ 4 § 4.4

у = 0

х = 4

for і in range(x):

у = у + X

Чому дорівнюватиме значення у після закінчення його виконання?

7

21 of 23

Домашнє завдання

Проаналізувати

§ 4.4, ст. 154-156

Розділ 4 § 4.4

7

22 of 23

Працюємо за комп’ютером

Розділ 4 § 4.4

Сторінка

160-163

7

23 of 23

Дякую за увагу!

7