Тема: побудова графіка функції з використанням мови Ruby.
Мета уроку: після виконання роботи учень повинен:
Обладнання: комп’ютери зі встановленими ОС та інтегрованим середовищем програмування Lazarus.
Структура уроку
Хід уроку
1. Організаційний момент
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання.
2. Актуалізація опорних знань
Описати поняття, виділені жирним шрифтом, і порівняти з очікуваним.
Створення нового файлу здійснюють за допомогою методу new класу File:
f = File.new(path; mode)
Тут (рядок тексту) path — це шлях до файлу (абсолютний чи відносний), включаючи назву файлу, mode — режим роботи з файлом (див. далі).
Параметри роботи з файлами:
Закриття файлу здійснюють за допомогою методу close з класу File:
f.close
Методи puts i write класу File найуживаніші при записі до файлу. Основна відмінність між ними полягає у тому, що puts додає ознаку кінця рядка, а write — ні. Наприклад, при виконанні такого коду:
f = File.open("one.txt", "w+") f.puts "first line" f.write "second " f.write "line" f.rewind print f.readlines
отримаємо такий результат виведення на екран:
["first line\n", "second line"]
Тут метод rewind повертає на початок файлу, який читають, метод readlines повертає масив, елементами якого є рядки файлу.
3. Вивчення нового матеріалу
SVG — Scalable Vector Graphics (англійською: масштабована векторна графіка) — специфікація мови розмітки на основі XML або формат файлу двовимірної векторної графіки (статичної, анімованої, інтерактивної).
Ця специфікація є відкритим стандартом, розробленим робочою групою SVG Working Group організації World Wide Web Consortium.
Файл svg можна створити і редагувати:
Далі ми використаємо останній варіант. Інакше кажучи, створимо програму (мовою Ruby), яка створить іншу програму (мовою розмітки) для зображення кривої, у тому числі графіка функції: лінійної, квадратичної, раціональної. Для цього немає необхідності вивчати детальний опис (англійською) з прикладами. Достатньо використати лише наступні відомості.
<svg>…</svg> — контейнер, всередині якого (замість трьох крапок) записують всі інші вказівки svg (при створення статичного малюнку у файлі формату svg). Наприклад, контейнер:
<svg width="600" height="400" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg"> </svg>
передбачає створення малюнку розміру 600×400 пікселів.
<line /> — вказівка для побудови зображення відрізка прямої.
Наприклад, вказівка:
<line x1="12" y1="34" x2="56" y2="78" style="stroke:rgb(0,0,0);stroke-width:2" />
передбачає створення зображення відрізка прямої:
<text>…</text> — контейнер, що описує форматування символів тексту і всередині якого записуєть контейнери для виведення послідовностей символів.
<tspan>…</tspan> — контейнер, що вказує яку послідовність символів і у якому місці потрібно розташувати.
Наприклад, вказівка:
<text style="font-size:12px;font-style:italic;font-weight:normal;font-family:Ubuntu,Calibri"><tspan x="12" y="34">текст для виведення</tspan></text>
передбачає таке виведення тексту:
4. Інструктаж з ТБ
5. Закріплення вивченого матеріалу
Завдання. Створити програму «Побудова графіків функцій», яка будує у форматі svg зображення кривої. Координати x, y точки кривої задати функціями деякого параметра t ∈ [–10; 10]:
def x(t) # абсциса точки t # для графіка функції # Math.cos(5*t) # фігура Ліссажу end def y(t) # ордината точки #t/2+0.75 # лінійна функція #t*t/4+t/3-0.25 # квадратична функція if !(t==0.5) # раціональна функція return (t/8+0.0625)/(2*t-1) else return 0 end # Math.sin(7*t) # фігура Ліссажу end
Криву наблизити ламаною червоного кольору. Подавати зображення прямокутника декартової площини зі сторонами, паралельними осям координат. Якщо цей прямокутник містить початок координат, зобразити осі координат зі стрілками, що вказують додатний напрям осей. Для квадрата, декартові координати точок якого лежать у межах від –1 до 1, отримати для заданих функцій такі зображення:
При виконанні завдання використати подані вище приклади вказівок svg. Отриману програму записати з назвою Ваше прізвище у теку, вказану вчителем. Порівняти створену програму з демонстраційним розв'язанням.
6. Підбиття підсумків уроку
Виставлення оцінок.
7. Домашнє завдання
Переробити створену на уроці програму й отримати зображення кривої у вікні, створеним програмою. Для цього використати можливості бібліотеки Ruby2d щодо роботи з вікнами, фігурами й текстом.
Текст упорядкував Комарець Тетяна Іванівна, вчитель міжшкільного навчально-виробничого комбінату School Champion Святошинського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 30.10.2017 по 03.11.2017.