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

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

Мета: навчитися створювати комп’ютерну модель процесу взаємопов’язаного функціонування двох чи більше об’єктів за допомогою мови ruby й унаочнювати її за допомогою бібліотеки ruby2D, вдосконалювати вміння визначати зв'язки між об'єктами, представляти їх у нових взаємозв'язках; формувати обізнаність про можливості ПК як інструменту навчально-пізнавальної діяльності. Після виконання роботи учень:

Обладнання: ПК з встановленою ОС, інтерпретатором ruby і бібліотекою ruby2d.

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

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

Хід уроку

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

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

Згадаймо деякі факти з математики й фізики, необхідні для побудови комп'ютерної моделі взаємодії кількох дисків (куль), які рухаються у межах прямокутника (прямокутного паралелепіпеда), відбиваючись від його стінок і злипаючись у момент дотику в одну. Для моделі плоских фігур (дисків) в усіх формулах нижче потрібно вилучити вирази з аплікатою z.

Відстань між точками A(xA , yA , zA) i B(xB , yB , zB) дорівнює такому виразу:

((xAxB)2 + (yAyB)2 + (zAzB)2)1/2,

де піднесення до степеня 1/2 означає видобування арифметичного (невід'ємного) кореня квадратного.

Координати C(xC , yC , zC) середини відрізка з кінцями A(xA , yA , zA) i B(xB , yB , zB) задовольняють такі рівності:

xC = (xA + xB) / 2;     yC = (yA + yB) / 2;     zC = (zA + zB) / 2,

які еквівалентні таким:

xA = 2xCxB ;     yA = 2yCyB ;     zA = 2zCzB .

Рівномірний прямолінійний рух матеріальної точки у 3-вимірному означає таку зміну координат з плином часу t:

x(t) = x(0) + vx t ;     y(t) = y(0) + vy t ;     z(t) = z(0) + vz t ,

де:
x(t), y(t), z(t) — координати у момент часу t;
vx, vy, vz — сталі проєкції швидкості на осі координат.

Пружне відбивання від площини {x = a} матеріальної точки, яка, крім моменту удару, рухається рівномірно і прямолінійно, означає таке:

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

Позначимо:

Наступні перетворення формулами задають перехід від властивостей невідбитої до властивостей відбитої матеріальної точки:

(x₀ , y₀ , z₀) (2a – x₀ , y₀ , z₀),        (vx , vy , vz) ( – vx , vy , vz).

Якщо замість матеріальної точки розглянути кулю радіуса r з координатами центра (x₀ + r, y₀ + r, z₀ + r), формули будуть такими самими, як і для матеріальної точки, крім формули для абсциси x. Маємо еквівалентність з відбиванням матеріальної точки, що збіється з центром кулі:

У загальному випадку маємо: x₀ 2(ar ∙ sign vx) – x₀.

Заміною літер "x", "y", "z" з поданих вище формул можна отримати формули для відбивання від площини {y = a} або {z = a}.

Закони збереження маси й імпульсу класичної механіки при "злипанні" двох куль в одну призводять до справдження таких рівностей:

m = m1 + m2;

x = (m1 x1 + m2 x2) / m;
y = (m1 y1 + m2 y2) / m;
z = (m1 z1 + m2 z2) / m;

vx = (m1 v1x + m2 v2x) / m;
vy = (m1 v1y + m2 v2y) / m;
vz = (m1 v1z + m2 v2z) / m,

де:

m — маса кулі — результату "злипання";
m1 , m2 — маси куль до зіткнення;
x1 , y1 , z1 — координати центра кулі маси m1, якби вона не "злиплася" з іншою;
x2 , y2 , z2 — координати центра кулі маси m2, якби вона не "злиплася" з іншою;
x, y, z — координати центра мас системи двох куль — центру результату злипання;
vx , vy , vz — координати швидкості центра мас системи двох куль — центру результату злипання;
v1x , v1y , v1z — координати швидкості кулі маси m1 до зіткнення;
v2x , v2y , v2z — координати швидкості кулі маси m2 до зіткнення.

3. Вивчення нових знань

Ruby 2Dбагатоплатформна бібліотека для створення 2D-програми мовою Ruby.

Цю бібліотеку можна встановити, дотримуючись певних вказівок.

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

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

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


Завдання 1. Створити проект «Колонія водоростей», в якому є спочатку кілька персонажів — колоній одноклітинних зелених водоростей однакової маси, які буде зображено кругами однакового радіусу. Вони рухаються прямокутним полем рівномірно і прямолінійно до дзеркального відбивання від його меж або до дотику двох колоній, після якого відбувається злипання і перетворення двох на одну колонію при збереженні маси й імпульсу руху (сума добутків мас і швидкостей). Радіус зображення пропорційний кореню квадратному маси колонії (тобто маса пропорційна площі відповідного зображення), а його центр є центром мас двох колоній, що злипаються.

Вказівки до виконання

  1. Надати значення параметрам моделі:
    • початковий радіус кругів 5;
    • початкова кількість кругів 40;
    • верхня межа проекції швидкості 10;
    • розмір вікна по горизонталі 360;
    • розмір вікна по вертикалі 360.
  2. Описати структуру даних — масиви:
    • мас;
    • радіусів;
    • абсцис;
    • ординат;
    • складових швидкості по горизонталі;
    • складових швидкості по вертикалі;
    • зображень кругів.
  3. Встановити параметри вікна програми.
  4. Надати початкових випадкових значень коодинатам і швидкостям.
  5. Відобразити початковий стан.
  6. Запрограмувати зміну координат при прямолінійному рівномірному русі.
  7. Запрограмувати зміну координат при відбиванні від країв вікна.
  8. Відобразити зміни координат.
  9. Перебрати всі можливі пари кругів щодо можливості злиття.
  10. Врахувати закон збереження імпульсу для швидкостей.
  11. Визначити центра злиття центр мас кругів, що злилися.
  12. Врахувати закон збереження маси.
  13. Визначити радіус результату злиття з такої умови:
    маса пропорційна площі — квадрату радіуса.
  14. Зменшити на 1 кількість дисків після злиття.
  15. Запрограмувати зміну координат при відбиванні від країв після злиття.
  16. Відобразити зміни координат дисків після злиття.

Примітка. Вказівка: «Надати початкових випадкових значень коодинатам і швидкостям» передбачає розташування кругів без попарних перетинів. Якщо учень не знає, як це зробити, він може розташувати диски з перетинами і застосувати процедуру злиття дисків для отримання початкового стану. Але таке відхилення від плану понижує оцінку на 1 бал.

6. Підбиття підсумків уроку
Виставлення оцінок.

7. Домашнє завдання
У разі потреби завершити роботу над програмою. Порівняти з демонстраційним розв'язанням.

Завдання 2. Створити програму «Папуги», в якому є такі персонажі: Рудий Кіт та 6 папуг — по два червоного, жовтого та зеленого кольору. Папуги сидять по колу, їх занумеровано послідовними натуральними числами від 1 до 6. Рудий Кіт — у центрі кола. З інтервалом 3 секунди Кіт називає два різні випадкові натуральні числа у межах від 1 до 6 включно — номери папуг. Якщо ці папуги однакового кольору, нічого не відбувається. Інакше, якщо їхній колір різний, вони змінюють свій колір на один і той самий, який відмінний від кольору їх обох. Зображення знайти або виготовити самостійно.


Текст упорядкувала Суховенко Антоніна Павлівна, вчитель Компаніївського коледжу ветеринарної медицини Білоцерківського НАУ Київської області, під час виконання випускної роботи на курсах підвищення кваліфікації з 26.03.2018 р. по 30.03.2018 р.