1 of 22

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

За навчальною програмою 2017 року

Урок 25

7

teach-inf.at.ua

2 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

Величини можуть використовуватися й у циклах з передумовою. Вигляд блок-схеми циклу з передумовою наведено на малюнку.

7

© Вивчаємо інформатику teach-inf.at.ua

3 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

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

Виконання команд тіла такого циклу відбувається до настання певної події.

7

© Вивчаємо інформатику teach-inf.at.ua

4 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

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

Опис

Приклад

while <логічний вираз>:

<команда>

while а<5:

а+=1

Скорочена форма

7

© Вивчаємо інформатику teach-inf.at.ua

5 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

Опис

Приклад

while <логічний вираз>:

<команда1>

<команда2>

. . .

<команда n>

else:

<команда інакше>

while а<5:

s=s+a

а+=1

else:

print('Сума не змінюється')

Повна форма

7

© Вивчаємо інформатику teach-inf.at.ua

6 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

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

Задача 2. За першу годину туристична група пройшла 7 км, а за кожну наступну годину проходила на 1 км менше, ніж за попередню. Скільки годин потрібно йти туристичній групі, щоб пройти шлях, який перевищує 15 км?

7

© Вивчаємо інформатику teach-inf.at.ua

7 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

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

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

s

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

а

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

n

7

© Вивчаємо інформатику teach-inf.at.ua

8 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

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

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

s := s + а

а := а - 1

n := n + 1

які виконуватимуть-ся за умови в ≤ 15.

7

© Вивчаємо інформатику teach-inf.at.ua

9 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

Наведемо хід виконання цього алгоритму:

Команда

Результат виконання

s := 0

s := 0

a := 7

a := 7

n := 0

n := 0

s ≤ 15

Так

s := s + a

s := 0 + 7 = 7

a := a – 1

a := 7 – 1 = 6

n := n + 1

n := 0 + 1 = 1

s ≤ 15

Так

7

© Вивчаємо інформатику teach-inf.at.ua

10 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

Продовження…

Команда

Результат виконання

s := s + a

s := 7 + 6 = 13

a := a – 1

a := 6 – 1 = 5

n := n + 1

n := 1 + 1 = 2

s ≤ 15

Так

s := s + a

s := 13 + 5 = 18

a := a – 1

a := 5 – 1 = 4

n := n + 1

n := 2 + 1 = 3

s ≤ 15

Ні

Повідомити значення n

Повідомлення: n = 3

7

© Вивчаємо інформатику teach-inf.at.ua

11 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

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

s = 0

a = 7

n = 0

while s <= 15:

s = s + a

a -= 1

n += 1

print("Кількість годин =", n)

7

© Вивчаємо інформатику teach-inf.at.ua

12 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

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

І малювати квадрати потрібно доти, доки довжина його сторони не перевищує 100 кроків.

Довжина сторони першого з них дорівнює

а кроків

на 20 кроків більша за довжину сторони попереднього

довжина сторони кожного наступного квадрата

7

© Вивчаємо інформатику teach-inf.at.ua

13 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

Створимо математичну модель для цього проєкту. Перед циклом потрібно перемісти виконавця в початкову точку, наприклад (-200; 0), увести початкове значення змінної а, наприклад 40.

Перед кожним виконанням команд тіла циклу перевіряється умова а ≤ 100.

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

7

© Вивчаємо інформатику teach-inf.at.ua

14 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

Проєкт для розв’язування цієї задачі та результат його виконання:

from turtle import *

up()

goto(-200,0)

a=40

while a <= 100:

down()

for i in range(4):

fd(a)

right(90)

up()

fd(a+10)

a += 20

7

© Вивчаємо інформатику teach-inf.at.ua

15 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

Оскільки в наведеному проєкті,

початкове значення довжини сторони квадрата дорівнює

40 кроків

То результатом виконання команди перевірки умови буде Так для чотирьох значень змінної а:

на 20 кроків більша за довжину сторони попереднього

довжина сторони кожного наступного квадрата

40

60

80

100

Тому виконавець намалював саме 4 квадрати.

7

© Вивчаємо інформатику teach-inf.at.ua

16 of 22

Величини в циклах з передумовою

Розділ 4 § 4.4

Якщо ж, наприклад,

початкове значення довжини сторони квадрата задати

5 кроків

на 20 кроків більша за довжину сторони попереднього

довжина сторони кожного наступного квадрата

То умова а ≤ 100 буде істинною для п'яти значень змінної а:

5

25

45

65

85

Тому виконавець намалював би 5 квадратів.

7

© Вивчаємо інформатику teach-inf.at.ua

17 of 22

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

Повторення

«Ребуси українською» © rebus1.com

Розділ 4 § 4.4

7

© Вивчаємо інформатику teach-inf.at.ua

18 of 22

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

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

Розділ 4 § 4.4

while X <= 100:

right(x)

print("Привіт")

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

7

© Вивчаємо інформатику teach-inf.at.ua

19 of 22

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

  1. Скільки разів виконуватиметься тіло такого циклу:

Розділ 4 § 4.4

х = 50

while x <= 100:

fd(10)

print("Привіт")

x += 20

Чи може тіло такого циклу виконуватися тільки один раз? Відповідь поясніть. Чи може тіло такого циклу не виконуватися жодного разу? Відповідь поясніть.

7

© Вивчаємо інформатику teach-inf.at.ua

20 of 22

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

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

§ 4.4, ст. 157-166

Розділ 4 § 4.4

7

© Вивчаємо інформатику teach-inf.at.ua

21 of 22

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

Розділ 4 § 4.4

Сторінка

163-164

7

© Вивчаємо інформатику teach-inf.at.ua

22 of 22

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

За навчальною програмою 2017 року

Урок 25

7

teach-inf.at.ua