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

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

Мета:

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

Обладнання: комп’ютери зі встановленими ОС, інтегроване середовище програмування Mono­Develop, бібліотек Cairo і Gtk# 3.0.

Структура уроку
  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 до зіткнення.

Для створення програмного втілення моделі взаємодії об'єктів буде використано такі відомості про бібліотеку Cairo (ознайомитися, перейшовши за посиланнями):

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


Завдання 1 Створити програму, що моделює рух кругів у межах прямокутної області з початковими випадковими розташуванням і швидкостями. При дотику до межі області круг відбивається як при пружному ударі. При дотику пари кругів вони зливаються в один круг, що має більший розмір. Вважати, що:

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

  1. Створити консольний застосунок у середовищі MonoDevelop з таким налаштуванням підключення пакунків.

  2. Змінити код на код моделі рівномірного прямолінійного руху круга поверх зображення field.png.

  3. Перевірити правильність роботи коду:
    • або натиснути клавіші:
      • Ctrl + F5 — для запуску без зневадження;
      • F5 — для запуску із зневадженням (режим відладки);
    • або використати вказівки меню:
      • Виконання / Запуск без зневадження;
      • Виконання / Start Debudding — для запуску із зневадженням.

  4. Змінити код для відображення руху зеленого круга на чорному тлі зліва направо посередині між верхньою та нижньою межами. Змінити назву вікна на : "Взаємодія об'єктів". Порівняти з очікуваним.


  5. В описі класу області малювання перейти до опису багатьох кругів:
    • замінити назву змінної s на n, надавши їй змісту початкової кількості кругів і значення 3;
    • замінити змінні радіус й координати центра одного круга на масиви змінних:
      • радіуси рухомих кругів;
      • абсциси й ординати центрів кругів;
      • проєкції швидкостей осі координат;
    • у методі ініціалізації:
      • надати радіусам кругів початкового значення 28;
      • надати центрів кругів випадкових значень для розташування їх межах вікна;
      • надати проєкціям швидкостей vx, vy випадкових значень у межах від -6 до 6;
    • у методі move, виклик якого здійснює таймер, описати зміну координат центрів куль:
      • при прямолінійному рівномірному русі у межах області малювання;
      • пружне відбивання від меж області малювання.

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

  6. Здійснити опис взаємодії-злипання кругів у методі move, виклик якого здійснює таймер. Вважати, що маса круга пропорційна його площі, тобто квадрату радіуса. Дотримуватися закону збереження імпульса. Змінити значення n i r на 23 і 8 відповідно.


  7. Повідомити вчителя про наявні проблеми чи завершення роботи.
  8. Зберегти програму з назвою Ваше_прізвище у вказану вчителем теку.
  9. Порівняти з демонстраційним розв'язанням.

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

6. Домашнє завдання
При потребі доробити програму. Змінити її, передбачивши злиття при дотику чи перетину кругів (на відміну від перетину квадратів, що містять круги, реалізованому у демонстраційному розв'язанні).

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

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


Текст упорядкував Олександр Рудик.