1 of 18

Створення алгоритмів і програм з використанням змінних і алгоритмічної структури розгалуження

7

2 of 18

Визначення більшого(меншого)�з двох значень

Розділ 4 § 4.3

Розглянемо таку задачу.

Задача 2. Мати дала Марічці а грн, щоб вона купила ласощі та пригостила своїх шкільних друзів на свій день народження. Марічка вирішила купити 0,8 кг цукерок і 0,5 кг печива. У магазині Марічці сподобалися цукерки по ціні х грн за 1 кг і печиво по ціні у грн за 1 кг. Чи вистачить Марічці грошей на цю покупку?

7

3 of 18

Визначення більшого(меншого)�з двох значень

Розділ 4 § 4.3

Створимо математичну модель для розв’язування цієї задачі.

Очевидно, що потрібно визначити вартість запланованої покупки і порівняти її із сумою грошей, яку дала мати Марічці:

Якщо вартість покупки більша за суму наявних грошей

а якщо інакше, тобто, не більша

(менша або дорівнює)

то не вистачить

то вистачить

7

4 of 18

Визначення більшого(меншого)�з двох значень

Розділ 4 § 4.3

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

7

5 of 18

Визначення більшого(меншого)�з двох значень

Розділ 4 § 4.3

Проект розв'язування Задачі 2 в Python подано нижче.

а = float(input("Уведіть видану суму грошей: "))

х = float(input("Уведіть ціну цукерок: "))

у = float(input("Уведіть ціну печива: "))

b = 0.8*х + 0.5*у

if b > а:

print("Не вистачить")

else:

print("Вистачить")

7

6 of 18

Рух по полотні з використанням розгалуження

Розділ 4 § 4.3

У Python є можливість керувати рухом Черепашки шляхом натискання клавіш на клавіатурі. Для кожної клавіші, натискання якої буде опрацьовуватися у проекті, можна вказати різні дїі Черепашки. Для цього призначено команду:

onkey

Загальний вигляд команди onkey такий:

onkey(команда, 'клавіша')

(англ. on – на, key – клавіша).

7

7 of 18

Рух по полотні з використанням розгалуження

Розділ 4 § 4.3

Наприклад, якщо потрібно після натискання клавіші Пропуск повернути Черепашку в центр полотна, то потрібно вказати команду home і код клавіші Пропуск – слово «space». Команда опрацювання натискання клавіші буде такою:

onkey(home, 'space')

Але якщо після натискання клавіші потрібно виконати команду з параметрами (наприклад, fd(20)) або декілька команд, то ці команди описують в окремому алгоритмі. Алгоритму потрібно надати ім’я і саме це ім’я ввести в команді onkey.

7

8 of 18

Рух по полотні з використанням розгалуження

Розділ 4 § 4.3

Наприклад, якщо потрібно при натисканні клавіші стрілка праворуч повертати Черепашку в напрямку праворуч і переміщувати на 10 кроків, то іменем такого алгоритму може бути:

Кодом клавіші стрілка праворуч є слово «Right». Команда, яка викликає виконання алгоритму move_right у відповідь на натискання клавіші стрілка праворуч, має вигляд:

onkey(move_right, 'Right')

(англ. move – рухатись, right - праворуч).

move_right

7

9 of 18

Рух по полотні з використанням розгалуження

Розділ 4 § 4.3

Опис алгоритму move_right розпочинається із заголовка, який має такий вигляд:

Після заголовка описуються команди алгоритму. У проекті вони повинні розміщуватися з відступом вправо від лівої межі екрана.

(англ. definition - визначення).

def move_right():

7

10 of 18

Рух по полотні з використанням розгалуження

Розділ 4 § 4.3

Щоб у проекті відстежувалися натискання на клавіші, потрібно використати команду:

listen()

Складемо проект у Python, у якому Черепашка після кожного натискання клавіші стрілка праворуч рухається по полотну праворуч. Після того як Черепашка дійде до точки на полотні з абсцисою 300, вона з’явиться на полотні з протилежного боку в точці з абсцисою -300.

(англ. listen - слухати).

7

11 of 18

Рух по полотні з використанням розгалуження

Розділ 4 § 4.3

Під час виконання цього алгоритму Черепашка використаємо команди:

Отже, алгоритм руху вправо move_right може бути таким:

Переміщення виконавця на 10 кроків

fd(10)

визначення абсциси положення виконавця

хсог()

встановлення нового значення координати

setx(-300)

def move_right():

fd( 10)

if хсог() > 300:

setx(-300)

7

12 of 18

Рух по полотні з використанням розгалуження

Розділ 4 § 4.3

Переміщення Черепашки в точку на полотні з абсцисою -300 виглядатиме як рух у напрямку ліворуч. Тому доцільно:

на час переміщення приховати зображення Черепашки (команда hideturtle()) (англ. hide - приховати);

установити високу швидкість переміщення (команда speed(0));

після переміщення відобразити зображення виконавця (команда showturtle()) (англ. show - показувати);

уповільнити швидкість руху виконавця (команда speed(1)).

7

13 of 18

Рух по полотні з використанням розгалуження

Розділ 4 § 4.3

Ці команди варто розмістити в алгоритмі move_right у команді розгалуження.

До проекту також доцільно додати команди:

  • змінити зображення виконавця на черепашку - команда shape(''turtle");
  • підняти олівець, щоб виконавець не залишав сліду - команда up();
  • установити повільну швидкість руху виконавця - команда speed(1).

7

14 of 18

Рух по полотні з використанням розгалуження

Розділ 4 § 4.3

Отже, проект може мати вигляд, наведений нижче.

Після символа «#» у проєкті записано коментарі, які пояснюють призначення команд і не виконуються під час виконання проекту.

7

15 of 18

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

  1. Чи існує вираз з однією змінною, що містить дію ділення на вираз зі змінною, значення якого можна обчислити при будь-яких значеннях цієї змінної?
  1. Як можна використати в розгалуженні координати положення виконавця на Сцені? Наведіть приклад.

Розділ 4 § 4.3

  1. Як можна використати в розгалуженні координати положення виконавця на полотні у проектах у Python? Наведіть приклад.
  1. Як можна визначити, використовуючи розгалуження, яке з двох різних чисел більше?

7

16 of 18

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

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

§ 4.3, ст. 145-153

Розділ 4 § 4.3

7

17 of 18

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

Розділ 4 § 4.3

Сторінка

150-151

7

18 of 18

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

7