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

Preview:

Citation preview

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

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

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

День 9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Checkbox1.Checked = true

Checkbox1.Checked = false

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

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

Checkbox1.Checked = true

Checkbox1.Checked = false

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

if Checkbox1.Checked then begin … endelse begin … end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

о

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

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

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

Згорнуто

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

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

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

Готово!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

400 кнопок!

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

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

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

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

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

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

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

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

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

Надсилайте ваші запитання та пропозиції:pidruchnik@ranok.com.ua

Редакція фізико-математичної літератури видавництва «Ранок»:phys-mat@ranok.com.ua

Recommended