Розробка уроку — практичної роботи

Тема: cтворення комп’ютерної моделі процесу взаємопов’язаного функціо­нування двох чи більше об’єктів.

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

Після виконання роботи учень

Обладнання й матеріали: ПК з встановленими ОС та інтегрованим середо­вищем об'єктно-орієнтованого програмування Lazarus, дана інструкція.

Структура уроку

  1. Організаційний момент
  2. Актуалізація опорних знань
  3. Інструктаж з БЖ
  4. Вироблення практичних навичок
  5. Підбиття підсумків уроку
  6. Домашнє завдання

Хід уроку

1. Організаційний момент.
Вітання з класом. Перевірка присутності й готовності учнів до уроку. Перевірка виконання домашнього завдання.

2. Актуалізація опорних знань.

  1. Що таке комп'ютерна програма?

  2. Назвати та пояснити призначення елементів інтерфейсу середовища програмування Lazarus, використовуючи зображення.






  3. Назвати наочно невидиму складову середовища програмування, дію якої подано такою схемою:

    програма мовою високого рівня

    ?

    програма у двійкових кодах.

    Яке її призначення?

  4. Як компілювати програму у середовищі Lazarus?

  5. Назвати й прокоментувати етапи створення елементів керування.

Усе життя ми стикаємося з різними об'єктами: фізичнми, біологічними, технічними, соціальними, що мають різні властивості. Спрощене уявлення чи подання реального об'єкта, явища чи процесу називають моделлю. Модель є образом об'єкта, явища чи процесу, в якому, з метою спрощення розв'язання певної задачі, відкидають побічні, неістотні ознаки, деталі, співвідношення чи зв'язки. Саме такі спрощення і, разом з цим, зосередження уваги на істотних властивостях і зв'язках дозволяють швидше й легше розв'язати задачу, отримати результат. Тому при побудові моделі важливо навчитися бачити й виділяти головне та відкидати побічне, неістотне.

За способом відображення дійсності розрізняють три основнi види моделей: евристичні, фізичні та математичні.

Евристична модель містить образи-об'єкти, що виникають в уяві людини, й описані словесно.

Фізична модельце сукупність фізичних (матеріальних) об'єктів.

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

Модель можна описати (подати) словесно, графічно чи за допомогою комп'ютерної програми. В останньому випадку говорять про комп'ютерну модель.

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

Групи oб'єктів можуть співіснувати й рухатись при взаємодії. Наведемо приклади процесу взаємо­пов’язаного функціонування двох чи більше об’єктів: Земля та її супутники (природний — Місяць та штучні, створені людством); Сонце й планети, астероїди й комети сонячної системи; ядра й електрони атомів; етноси (народи) й суспільні класи й прошарки людського суспільства; брокери на біржі й нерухомість; екосистеми й живі істоти; об'єкти Всесвіту та їхні розміри. Далі буде розглянуто приклад процесу взаємопов’язаного функціонування транспортних засобів, керованих програмно, й засобу регулювання дорожного руху — світлофору. Цікаво, що зараз у Китаї керування значною частиною транспортних засобів здійснють не водії, а автоматизовані технічні системи, які створені на основі моделювання.

Об'єктно-орієнтоване програмування (ООП) розглядає об'єкт як окрему одиницю сховища даних, який використовують як основний елемент побудови програми. З цієї точки зору екземпляр програми тлумачать як динамічну (змінювану) множину об'єктів, що взаємодіють. Середовище програмування надає можливість користувачу створювати програми з потрібною кількістю об'єктів. Наприклад, форма в Lazarus — це своєрідна платформа, на якій розташовують всі елементи керування (кнопки, перемикачі, прапорці, списки тощо) та інші об’єкти програми (написи, зображення, панелі тощо). Lazarus після свого запуску автоматично створює форму, надаючи їй назву (Name) Form1. Як і будь-який інший об’єкт, форма має свої властивості, сукупність значень яких (наприклад, ширина, висота, колір, текст у заголовку тощо) вирізняють одну форму від іншої.

Способи зміни властивостей об’єктів:

Метод об'єктаце частина тексту програми, що описує (можливе) виконання дій об’єктом. Метод має назву й містить набір вказівок, які може виконати об’єкт.

Подіяце зміна властивостей об'єкта, його створення або знищення. Список подій для об'єктів програми містить вкладення Події вікна Інспектор об’єктів. В Object Pascal кожна подія має свою назву. Наприклад, клацання лівою кнопкою миші називають OnCIick. Для кожного об’єкта існує набір стандартних (типових) подій, що можуть виникнути під час роботи програми. Щоб програма виконувала певні дії у відповідь на подію, що трапилася, наприклад, внаслідок дій користувача, потрібно написати процедуру опрацювання відповідної події. Середовище програмування створює обробник події у вигляді процедури.

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

Наприклад, подія OnCreate відбувається при завантаженні форми у пам’ять комп’ютера. У процедурах обробників події OnCreate встановлюють початкові значення властивостей об'єктів (у тому числі елементів керування). Подія OnCIick відбувається, коли користувач клацає на формі лівою кнопкою миші.

Усі назви процедур опрацювання подій для форми TForm1 мають такий вигляд: TForm1.НазваПодії. Зверніть увагу на вигляд назви події, породженої елементом форми. Наприклад, для кнопки Button1, розташованої на формі TForm1, назва процедури натиснення кнопки така: TForm1.Button1Click.

Виконання процедури також є подією. Якщо процедура виконується в результаті настання певної події з формою, наприклад події Click, то подію самого виконання цієї процедури називають OnClick.

3. Інструктаж БЖ.
4. Вироблення практичних навичок.


Завдання 1. Cтворити програму, при виконанні якої після натискання кнопки Рух розпочати буде показано рух двох транспортних засобів в протилежних напрямках прямолінійної ділянки дороги. Регулювання руху транспорних засобів на ділянці пішоходного переходу здійснювати за допомого світлофору. Колір світлового сигнала світлофора (червоний, жовтий чи зелений) обирати у групі перемикачів Світлофор, вид транспортного засобу (автобус, легковик чи один і другий) обирати встановленням прапорців для об'єктів Транспорт. Встановлення допустимої для траспорту швидкості на ділянці дороги здійнювати перемикачами групи Швидкість (30, 60, 90 у км/год). Завершення роботи програми здійснювати за допомогою кнопки Завершити показ.

Вказівки до виконання роботи

  1. Створити графічні моделі об'єктів (на розсуд вчителя цей етап можна не виконувати, а використати надані зображення).

    • Створити графічну модель ділянки дороги. Для простоти вважати її прямолінійною, горизонтальною і лише з двома зустрічними смугами руху. Дорожнє полотно, придорожний ландшафт намалювати за допомогою графічнного редактора й зберегти у форматі jpg. Графічна модель ділянки дороги може виглядати, наприклад, так:


    • Створити моделі об'єктів зі змінюваними властивостями:
      • корпуса світлофора ;
      • автобуса ;
      • легковика ;
      з урахуванням ширини дорожних смуг.

  2. Cтворити проект у середовищі Lazarus:
    • cтворити теку з назвою Ваше прізвище (латиницею) у вказаній вчителем теці для зберігання файлів нового проекту;
    • завантажити середовище Lazarus;
    • використати вказівку меню Файл / Новий…;

    • у вікні діалогу вибрати пункт Застосунок і натиснути кнопку Гаразд;

    • зберегти створений проект у попередньо створену теку, використавши вказівку Файл / Зберегти.

  3. Додати зображення до форми й налаштувати їхнє розташування:
    • змінити розміри форми вікна майбутнього проекту так, щоб можна було розмісти графічні моделі та об'єкти керування;

    • на панелі компонентів у групі Additional (додаткова)

      обрати компонент Image (зображення) та мишкою вказати на формі місце його розташування;

    • за допомогою маркерів налаштувати розміри зображення для розташування в ньому графічної моделі ділянки дороги;

    • у вікні Інспектор об'єктів обрати властивість Picture та у полі введення значення властивості натиснути кнопку з трьома крапками (…);

    • у вікні діалогу після натиснення кнопки Завантажити вказати шлях до файлу моделі ділянки дороги та натиснути кнопку Гаразд;

    • повторити аналогічні дії й додати на форму моделі транспортних засобів і корпуса світлофора;

    • для транспортних засобів властивості Visible надати значення Falsh;

    • зберегти проект (вказівка меню Файл / Зберегти).

  4. Додати до форми елементи інтерфейсу — компоненти керування — шляхом їх вибору на панелі компонентів у групі Standart,

    налаштовуючи у вікні Інспектор об'єктів властивість Caption:

    • для групи перемикачів RadioGroup1 — Швидкість руху ;
    • для напису Label1 — Транспорт;
    • для прапорця CheckBox1 — Автобус;
    • для прапорця CheckBox2 — Легковик;
    • для групи перемикачів RadioGroup2 — Світлофор ;
    • для кнопки Button1 — Рух розпочати;
    • для кнопки Button2 — Завершити показ.

    Для груп перемикачів RadioGroup1 (Світлофор) та RadioGroup2 (Швидкість руху) задати значення властивості Items (елементи). Для цього у вікні Інспектор об'єктів натиснути у полі введення значення властивості кнопку з трикрапкою (…). У вікні Редактор рядків, додати відповідний текст для розташування його поряд з елементами керування. Отримати такий результат:

    Зберегти внесені до проекту зміни (вказівка меню Файл / Зберегти).

  5. Додати до форми графічні елементи, створені засобами середовища Lazarus:

    • додати до зображення дороги розмітку пішоходного переходу. Для цього обрати компонент Shape (фігура) на палітрі компонентів у групі Additional (додаткова)

      та розташувати його на формі. Значення властивості Shape (форми фігури) можна змінити за допомогою випадного списку. Початкове значення цієї властивості фігури — прямокутник, тому достатньо лише налаштувати розміри й колір. Розміри прямокутника легко налаштувати за допомогою маркерів. При потребі у вікні Інспектор об'єктів можна точно встановити значення властивостей Left (відстань між лівими межами форми й об'єкта), Тop (відстань між верхніми межами форми й об'єкта), Height (висота об'єкта), Width (ширина об'єкта). Для встановлення кольору заповнення фігури використати властивість Brush (кисть), і натиснути знак +,

      обрати властивість Color та налаштувати значення цієї властивості одним із трьох способів:

      • ввести значення властивості кольору в полі введення (наприклад, clRed);

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

      • налаштувати значення властивості Color за допомогою вікна діалогу, для відкриття якого натиснути кнопку з трикрапкою (…).

    • Налаштувати властивість фігури як прямокутника ( тобто знехтувати законами перспективи, згідно з якими потрібно використати трапеції з паралельними основами і бічними сторонами, що лежать на двох прямих) білого кольору;

    • Налаштувати вид лінії контурa фігури (прямокутника), обрати властивість Pen (олівець) і натиснути знак +

    • обрати для олівця властивість Color та налаштувати значення цієї властивості як білий колір одним із трьох способів, аналогічно як для налаштування заповнення контура фігури кистю;

    • cтворити 5 копій фігури, застосовуючи переміщення без повороту, завершити побудову зображення пішоходного переходу;

    • додати ще дві копії прямокутників, які налаштувати як лінії зупинки транспорту перед cвітлофором;

    • аналогічно cтворити 3 три фігури-кола і 3 фігури-еліпси, які розташувати на корпусі світлофора. Для цих фігур не потрібно налаштовувати значення властивості Color, бо вона буде динамічною, пов'язаною зі станом перемикачів у групі Світлофор;

    • отримати такий результат:

    • зберегти внесені до проекту зміни (вказівка меню Файл / Зберегти).

  6. Налаштувати перемикання світлових сигналів світлофора

    • подвійним клацанням лівої кнопки миші на компоненті групи перемикачів RadioGroup2 (Світлофор) створити у вікні редактора програмного коду процедуру опрацювання подій, пов'язаних з вибором перемикачів;

    • внести потрібні вказівки опрацювання події між словами begin та end, щоб отримати повний код процедури, у якому:

      • Shape1, Shape2, Shape3 — круги, перелічені згори донизу;
      • Shape12, Shape13, Shape14 — еліпси, перелічені згори донизу;
    • зберегти внесені до проекту зміни (вказівка меню Файл / Зберегти);

    • скомпілювати проект і запустити його на виконання, натиснувши кнопку у вигляді зеленого трикутника або клавішу F9;

    • перевірити правильність перемикання сигналів світлофора, при необхідності внести зміни у код програми і зберегти проект.

  7. Створити коди процедур опису подій вибору транспортних засобів:

    • описати програмний код процедури, за якою після встановлення прапорця CheckBox1 властивість логічного типу Visible (видимий) об'єкта Image4 (автобус) змінює своє значення з False (хиба) на True (істина) й співставити зі зразком:

      procedure TForm1.CheckBox1Change(Sender: TObject);
      begin
        if Checkbox1.Checked then Image4.visible:=True else
      Image4.visible:=False;
      end;
    • аналогічно описати програмний код, за яким після встановлення прапорця CheckBox2 властивість логічного типу Visible (видимий) об'єкта Image3 (легковик) змінює своє значення з False (хиба) на True (істина):

      procedure TForm1.CheckBox2Change(Sender: TObject);
      begin
        if Checkbox1.Checked then Image3.visible:=True  else
      Image3.visible:=False;
      end;
    • скомпілювати проект і запустити його на виконання, натиснувши кнопку у вигляді зеленого трикутника або клавішу F9;

    • перевірити вплив прапорців на зміну видимості об'єктів автотранспорту, при необхідності внести зміни у код програми і зберегти проект.

  8. Створити процедуру вибору допустимої для транспортних засобів швидкості:

    • запровадити змінну V числового типу Integer, описавши її як глобальну на початку програми за зразком ;

    • створити програмний код процедури зміни швидкості руху транспортних засобів, яка пов'язана з подіями вибору відповідного прапорця вибору Швидкості (30, 60, 90 км/год) згідно опису ;

    • перевірити вплив вибору прапорців з відповідним значенням швидкості на зміну швидкості руху транспортних засобів. Здійснити цю дію після опису процедури опрацювання події натискання кнопки Рух розпочати.

  9. Створити процедуру опрацювання події натискання кнопки Рух розпочати, щоб перетворити статичну модель на динамічну. Для цього потрібно застосувати таймер (Timer), щоб запрограмувати виконання потрібного програмного коду через однакові проміжки часу. Коли для таймера властивість Enabled має значення True, то таймер включено, тобто система періодично із заданим інтервалом часу породжує подію OnTimer. Під час виконання програми таймер невидимий. Отже, потрібно здійснити таке:

    • розташувати на формі Form1 компонент Timer1, натиснувши кнопку TTimer (перше зліва направо зображення годинника) на панелі компонентів у групі System;

    • у вікні Інспектор об'єктів налаштувати властивості таймера згідно з поданим зображенням:

      Примітка. Cтан спокою чи рух транспортних засобів залежить не лише від сигналу світлофора, але й від відстані до лінії зупинки перед світлофором. Немає потреби запроваджувати додаткові змінні для визначення розташування автобуса та легковика, бо для даної моделі властивість Left однозначно визначає розташування об'єктів. Для автобуса, який рухається влівор, з кожним породженням таймером події OnTimer властивість Left потрібно зменшувати на V, а для легковика, що рухається вправо, — навпаки збільшувати на величину швидкості V. Описуючи процедуру, пов'язану з натисненням кнопки Рух розпочати, потрібно врахувати, що стан спокою чи руху транспортних засобів буде залежати і від сигнала світлофора, і від напрямку руху, і від відстані до лінії зупинки. Тому небхідно описати всі можливі варіанти руху, в кожному з яких застосувати прості чи складені умови й програмно змінити логічну властивість таймера Enabled (включений) з False (хиба) на True (істина).

    • ввести код процедури, пов'язаної з подією натискання кнопки Рух розпочати.

  10. Створити процедуру для опрацювання події натискання кнопки Завершити показ, програмний код якої міститиме лише одну вказівку закриття вікна програми: Close, та зберегти проект, використавши вказівку меню Файл / Зберегти все.

  11. Перевірити роботу створеної програми. Cкомпілювати проект і запустити його на виконання, натиснувши кнопку у вигляді зеленого трикутника або клавішу F9. У разі потреби внести зміни у програму і зберегти проект.

  12. Порівняти створену комп'ютерну модель процесу взаємопов’язаного функціонування групи об’єктів з демонстраційним розв'язанням завдання. У разі потреби внести зміни в програму, перевірити її дію і зберегти проект.

5. Підбиття підсумків уроку

Тема практичної роботи не конкретизує предметну галузь. Це спонукає до розвитку самостійності. Виконання даної практичної роботи створює передумови для подальшого удосконалення навичок моделювання, свідомого застосування об'єкно- та подійно-орієнтованого програмування.

Oбґрунтування та виставлення оцінок.

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

  1. У разі потреби завершити виконання завдання.

  2. Удосконалити створену модель в одному з таких напрямків: створити модель дії світлофора в автоматичному режимі, додати кнопку пріоритетного руху для пішохода, створити модель руху пішохода як учасника дорожного руху, збільшити кількiсть транспортних засобів, ускладнити модель дороги шляхом додаванням криволінійних ділянок з необхідністю сповільнення руху тощо.

  3. Запропонувати інші способи удосконалення створеної моделі.

  4. Ознайомитися зі змістовним прикладом моделювання руху транспорта на перехресті з великою кількістю транспортних засобів.


Текст упорядкував Кукуня Павло Семенович, учитель інформатики середньої загальноосвітньої школи №253 Святошинського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 17.10.2017 по 14.11.2017.