46
Від організаторів Всеукраїнських інтерактивних педагогічних марафонів Видавництво «Ранок» Весняна сесія: 20 березня – 8 квітня 2017 р. День 9

Алгоритми з повтореннями та розгал

  • Upload
    -

  • View
    47

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Алгоритми з повтореннями та розгал

Від організаторів Всеукраїнськихінтерактивних педагогічних марафонівВід організаторів Всеукраїнськихінтерактивних педагогічних марафонів

Видавництво «Ранок»

Весняна сесія: 20 березня – 8 квітня 2017 р.

День 9

Page 2: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Інформатика. 8 клас.Алгоритми з повтореннями

та розгалуженнямиПилипчук Олександр Павлович,

учитель інформатики та фізики Гаврилівської загальноосвітньої школи І–ІІІ ступенів Теофіпольської райради Хмельницької області,

співавтор підручника — переможця Всеукраїнського конкурсу

Page 3: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

МЕТОДИЧНИЙ МОДУЛЬ

Page 4: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Програма, 7 клас. Учні вже щось знають і вміють7 клас. Алгоритми з повторенням і розгалуженням (9 год)

•Базові алгоритмічні структури: структури повторення та розгалуження.•Алгоритми з повторенням. Складання та виконання алгоритмів з повторенням

у визначеному навчальному середовищі виконання алгоритмів.•Висловлювання. Істинні та хибні висловлювання. Умовне висловлювання «Якщо – то».

Алгоритми з розгалуженням .•Складання та виконання алгоритмів з повторенням і розгалуженням для виконавців

у визначеному навчальному середовищі виконання алгоритмів.•Практична робота 3. Складання та виконання алгоритмів з повторенням у визначеному

навчальному середовищі виконання алгоритмів.•Практична робота 4. Складання та виконання алгоритмів з розгалуженням у визначеному

навчальному середовищі виконання алгоритмів.•Практична робота 5. Складання та виконання алгоритмів з повторенням і розгалуженням

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

Page 5: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Учень…розрізняє:•алгоритмічні структури слідування, розгалуження, повторення;•правильні (істинні) та неправильні (хибні) висловлювання;…формулює:•умовні висловлювання «Якщо – то»;уміє:•…•складати та виконувати алгоритми з повторенням у визначеному

навчальному середовищі;•складати та виконувати алгоритми з розгалуженням у визначеному

навчальному середовищі; •складати та виконувати алгоритми з повторенням та розгалуженням у

визначеному навчальному середовищі

Програма, 7 клас. Учні вже щось знають і вміють

Page 6: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Алгоритми роботи з об’єктами та величинами (20 год)…Алгоритми з повтореннями та розгалуженнями для опрацювання величин…Практична робота 12. Складання та виконання алгоритмів з повтореннями та розгалуженнями для опрацювання величин

Тема в чинній програмі для 8 класу

Page 7: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Алгоритми з повтореннями та розгалуженнями (9 год)

•Алгоритми з розгалуженнями •Складання програм з розгалуженнями •Поліваріантне розгалуження •Компоненти вибору •Алгоритми з повтореннями. Цикл із передумовою•Алгоритми з повтореннями. Цикл із післяумовою•Алгоритми з повтореннями. Цикл із параметром•Складання циклічних алгоритмів опрацювання величин •Практична робота 15. Складання та виконання алгоритмів з повтореннями

та розгалуженнями для опрацювання величин

Тема в підручнику для 8 класу

Page 8: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

ТЕОРЕТИЧНИЙ МОДУЛЬ

Page 9: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Неповне розгалуження

Page 10: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Повне розгалуження

Page 11: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Складений оператор

Якщо на місці, де вимагається оператор, потрібно записати декілька операторів, їх об’єднують у складений оператор begin…end (операторні дужки).

Page 12: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Розгалуження

У попередньому розділі «Алгоритми роботи з об’єктами та величинами» були розглянуті логічнийтип даних (boolean) і логічні операції (or, and, not), отже учні можуть записувати складені умови.

Page 13: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Елементи керування

Для забезпечення можливості вибору використовують елементи керування Прапорець (TCheckBox) і Перемикач (TRadioButton).

Прапорець Перемикач

Page 14: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Елементи керування. Прапорець

Основна властивість елемента керування Прапорець — Checked (позначений).

Checkbox1.Checked = true

Checkbox1.Checked = false

Page 15: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Основна властивість елемента керування Прапорець — Checked (позначений).

Checkbox1.Checked = true

Checkbox1.Checked = false

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

if Checkbox1.Checked then begin … endelse begin … end

Елементи керування. Прапорець

Page 16: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Елементи керування Перемикач (TRadioButton) використовують групами по 2 або більше.

При клацанні одного перемикача з групи він стає позначеним, тому в обробнику його властивість Checked можна не перевіряти.

Елементи керування. Прапорець

Page 17: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Поліваріантне розгалуження

Гілка else (інакше) — не обов’язкова

Page 18: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Цикл із передумовою

Відмінність:•Scratch — умова припинення•Pascal — умова продовження

Page 19: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Цикл із післяумовою

У кінці кожної ітерації перевіряється умова припинення.

У Scratch цикл з післяумовою відсутній.

Існує ризик зациклення, якщо тіло циклу не впливає на умову.

Page 20: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Цикл із параметром

Відмінність: в Pascal застосовується керувальна змінна-параметр, значення якої можна використовувати в тілі циклу.

Page 21: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Цикл за переліком

Змінна C послідовно набуває всіх значень з S і щоразу виконується тіло циклу.

Page 22: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Цикл за переліком

S може бути рядком, масивом, множиною або ідентифікатором зліченого типу

Перевага: не треба знати кількість елементів в S. Опрацьовані будуть всі.

Page 23: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Специфічні цикли в Scratch

Завдяки паралельним обчисленням Scratch підтримує такі цикли:

Недолік перекладу

Page 24: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Специфічні цикли в Scratch

Завдяки паралельним обчисленням Scratch підтримує такі цикли:

«Дослівний» їх «переклад» на Pascal спричинить зациклення!Проте засоби для підтримки багатопотоковості в Pascal є.

Page 25: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Оператори. Специфічні цикли

Ще один спосіб забезпечення багаторазового виконання певних операторів у середовищі Lazarus — використання таймера (TTimer на вкладці System): через рівні проміжки часу виконується обробник події OnTimer.

Властивості:Interval: проміжок часу в мілісекундахEnabled: true — працює, false — не працює

Page 26: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

ПРАКТИЧНИЙ МОДУЛЬ

Page 27: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

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

Розглянемо інші приклади, пов’язані з розробкою хоч і простих, але повноцінних програм.

Page 28: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

ПРИКЛАД 1. КУБИК

Page 29: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Приклад 1. Кубик

Завдання. Скласти програму, яка моделює кидок грального кубика.

Вікно програми

Завдання сформульовано в загальному вигляді, тому деталі добираємо самостійно:• вікно без зайвих елементів;• при клацанні на ньому з’являється або зникає результат «кидка»;• вихід при натисканні Esc.

Page 30: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Зайві елементи вікна вимикаємо, вибравши форму і встановивши для її властивості BorderStyle значення bsNone.

Приклад 1. Кубик

Page 31: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Приклад 1. Кубик

Розміщуємо на формі 7 кругів — компонент TShape на вкладці Additional.

Надалі, керуючи видимістю цих кругів, будемо формувати з них результати кидків.

Page 32: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Вихід з програми за натисканням клавіші Esc реалізуємо, обробивши для форми подію «відпускання клавіші» — OnKeyUp.

Щоб використати константу VK_ESCAPE, слід до переліку модулів (розділ uses) додати модуль LCLType.

Приклад 1. Кубик

Page 33: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

І, нарешті, наш «кубик» має запрацювати.

Підготовчий етап:• створимо змінну логічного типу pusto — ознака того, чи показано результат кидка;• в обробнику події «створення форми» (OnFormCreate) надамо їй значення true.

Приклад 1. Кубик

Page 34: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Загальна логіка роботи обробника події «відпускання лівої кнопки миші» (OnMouseUp).Згорнут

о

Приклад 1. Кубик

Page 35: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Показуємо 1, 3 або 5

Згорнуто

Приклад 1. Кубик

Page 36: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Показуємо 2, 4 або 6Згорнуто

Готово!

Приклад 1. Кубик

Page 37: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

ПРИКЛАД 2. ГРА «КЛАЦ-КЛАЦ»

Page 38: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Завдання. Створити гру з таким сценарієм:

• на формі розташовано багато кнопок;

• потрібно в довільному порядку клацати їх мишею — кнопка при цьому зникає;

• не можна клацати мимо — це означає програш;

• через 20 секунд успішної роботи виводиться результат — число натиснутих кнопок.

Приклад 2. Гра «Клац-клац»

Page 39: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Очевидно, що логіка обробки події «клацання кнопки» для всіх кнопок однакова — збільшити змінну лічильник і сховати кнопку.

Випробуємо його на одній кнопці, доданій на форму.

Приклад 2. Гра «Клац-клац»

Page 40: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Проблема. Як зробити, щоб цей обробник правильно реагував на різні кнопки, а не лише на кнопку з назвою Button1?

Скористаємось параметром Sender, який передається в обробник при виклику. Sender — це посилання на об’єкт, який спричинив виклик. При цьому слід уточнити, що цей об’єкт розглядається саме як кнопка (TButton):

Кнопку Button1 тепер можна вилучити.

Приклад 2. Гра «Клац-клац»

Page 41: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Проблема. Як побудувати «багато» (наприклад, 400) кнопок і змусити їх працювати?

Кнопки створимо не вручну, а програмним шляхом, тобто вже після запуску програми — в обробнику події «створення форми» (OnFormCreate).

При цьому для кожної з кнопок потрібно буде розрахувати і задати координати розташування на формі і встановити бажані розміри.

Приклад 2. Гра «Клац-клац»

Page 42: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Приклад 2. Гра «Клац-клац»

Page 43: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

А ось і результат —

400 кнопок!

Приклад 2. Гра «Клац-клац»

Page 44: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Залишилось подбати про облік часу (слід додати таймер), виведення результату та обробку промаху.

Пропоную зацікавленим зробити це самостійно

Приклад 2. Гра «Клац-клац»

Page 45: Алгоритми з повтореннями та розгал

Видавництво «Ранок»

Приємний бонус!

Сертифікати — кожному учаснику! Кращі зразки навчальної літератури

видавництва «Ранок» — переможцям серед шкіл за кількістю учасників

Page 46: Алгоритми з повтореннями та розгал

Надсилайте ваші запитання та пропозиції:[email protected]

Редакція фізико-математичної літератури видавництва «Ранок»:[email protected]