Величини в алгоритмах із циклами з передумовою
За навчальною програмою 2017 року
Урок 25
7
teach-inf.at.ua
Величини в циклах з передумовою
Розділ 4 § 4.4
Величини можуть використовуватися й у циклах з передумовою. Вигляд блок-схеми циклу з передумовою наведено на малюнку.
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 4 § 4.4
Нагадаємо також, що цикл з передумовою використовується в алгоритмах у випадках, коли перед його виконанням не відомо, скільки разів повинні виконатися команди тіла циклу.
Виконання команд тіла такого циклу відбувається до настання певної події.
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 4 § 4.4
У мові програмування Python цикл із передумовою описується оператором while...
Опис
Приклад
while <логічний вираз>:
<команда>
while а<5:
а+=1
Скорочена форма
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 4 § 4.4
Опис
Приклад
while <логічний вираз>:
<команда1>
<команда2>
. . .
<команда n>
else:
<команда інакше>
while а<5:
s=s+a
а+=1
else:
print('Сума не змінюється')
Повна форма
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 4 § 4.4
Розглянемо як приклад алгоритм, що містить цикл з передумовою і в якому використовуються величини.
Задача 2. За першу годину туристична група пройшла 7 км, а за кожну наступну годину проходила на 1 км менше, ніж за попередню. Скільки годин потрібно йти туристичній групі, щоб пройти шлях, який перевищує 15 км?
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 4 § 4.4
Створимо математичну модель ситуації, описаної в цій задачі. Для її розв'язування використаємо три змінні:
для загального пройденого шляху (на початку її значення має дорівнювати 0, бо ще ніякий шлях не пройдено)
s
для шляху, пройденого за кожну годину (на початку її значення має дорівнювати 7 - шлях, що буде пройдено за першу годину, а кожне наступне її значення має бути на 1 менше від попереднього)
а
для кількості пройдених годин (на початку її значення має дорівнювати 0)
n
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 4 § 4.4
У розглянутому алгоритмі тіло циклу складається з трьох команд:
Блок-схему алгоритму розв'язування цієї задачі наведено на малюнку.
s := s + а
а := а - 1
n := n + 1
які виконуватимуть-ся за умови в ≤ 15.
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 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
Величини в циклах з передумовою
Розділ 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
Величини в циклах з передумовою
Розділ 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
Величини в циклах з передумовою
Розділ 4 § 4.4
Розглянемо застосування циклу з передумовою з використанням величин ще в одному проєкті, у якому виконавець повинен малювати квадрати, що розміщені один за одним.
І малювати квадрати потрібно доти, доки довжина його сторони не перевищує 100 кроків.
Довжина сторони першого з них дорівнює
а кроків
на 20 кроків більша за довжину сторони попереднього
довжина сторони кожного наступного квадрата
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 4 § 4.4
Створимо математичну модель для цього проєкту. Перед циклом потрібно перемісти виконавця в початкову точку, наприклад (-200; 0), увести початкове значення змінної а, наприклад 40.
Перед кожним виконанням команд тіла циклу перевіряється умова а ≤ 100.
І якщо результат виконання цієї команди Так, то виконуються команди тіла циклу: малюється черговий квадрат, олівець переміщується в точку початку малювання наступного квадрата, довжина сторони квадрата змінюється на 20.
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 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
Величини в циклах з передумовою
Розділ 4 § 4.4
Оскільки в наведеному проєкті,
початкове значення довжини сторони квадрата дорівнює
40 кроків
То результатом виконання команди перевірки умови буде Так для чотирьох значень змінної а:
на 20 кроків більша за довжину сторони попереднього
довжина сторони кожного наступного квадрата
40
60
80
100
Тому виконавець намалював саме 4 квадрати.
7
© Вивчаємо інформатику teach-inf.at.ua
Величини в циклах з передумовою
Розділ 4 § 4.4
Якщо ж, наприклад,
початкове значення довжини сторони квадрата задати
5 кроків
на 20 кроків більша за довжину сторони попереднього
довжина сторони кожного наступного квадрата
То умова а ≤ 100 буде істинною для п'яти значень змінної а:
5
25
45
65
85
Тому виконавець намалював би 5 квадратів.
7
© Вивчаємо інформатику teach-inf.at.ua
Розгадайте ребус
Повторення
«Ребуси українською» © rebus1.com
Розділ 4 § 4.4
7
© Вивчаємо інформатику teach-inf.at.ua
Дайте відповіді на запитання
Розділ 4 § 4.4
while X <= 100:
right(x)
print("Привіт")
Що можна сказати про значення змінної х під час виконання цього циклу? Якої команди не вистачає в тілі цього циклу? Відповідь поясніть.
7
© Вивчаємо інформатику teach-inf.at.ua
Дайте відповіді на запитання
Розділ 4 § 4.4
х = 50
while x <= 100:
fd(10)
print("Привіт")
x += 20
Чи може тіло такого циклу виконуватися тільки один раз? Відповідь поясніть. Чи може тіло такого циклу не виконуватися жодного разу? Відповідь поясніть.
7
© Вивчаємо інформатику teach-inf.at.ua
Домашнє завдання
Проаналізувати
§ 4.4, ст. 157-166
Розділ 4 § 4.4
7
© Вивчаємо інформатику teach-inf.at.ua
Працюємо за комп’ютером
Розділ 4 § 4.4
Сторінка
163-164
7
© Вивчаємо інформатику teach-inf.at.ua
Дякую за увагу!
За навчальною програмою 2017 року
Урок 25
7
teach-inf.at.ua