Розробка уроку

Тема уроку: опрацювання рядків мовою Ruby.

Мета: ознайомити з процедурами й функціями рядкових величин.

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

Обладнання: комп’ютери з встановленими ОС, браузером, середовищем програмування мовою Ruby або стійким сполученням до мережі Інтернет для роботи з online-сервісами, дана інструкція.

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

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

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

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

Інтерпретована мова програмуваннямова програмування, в якій початковий (сирцевий) код програми не перетворюють попередньо повністю у машинний код для виконання, на відміну від компільованих мов, а виконують рядок за рядком з допомогою спеціальної програми-інтерпретатора.

Rubyце інтерпретована мова високого рівня для швидкого і зручного об’єктно-орієнтованого програмування.

Алфавіт мови Ruby включає:

Коментарце частина тексту програми для пояснення програми чи окремих вказівок, що не впливає на виконання програми.

Коментар мовою Ruby у рядку починають символом
# (дієз):

# текст коментаря


Розгалуження — це простий, але потужний інструмент створення нелінійних алгоритмів. Для його запису використовують оператор такого вигляду:

if умова [then]
   код…
[elsif умова [then]
   код…]…
[else
   код…]
end

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

Вираз if використовують для перевірки справдження умови. Значения умови false и nil вважають хибними (false), а всі решта — будуть істинними (true).

Оператор повторення for:

for змінна in діапазон [do]
  код (тіло циклу)
end

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

Інша форма запису:

діапазон.each do |змінна| код (тіло циклу) end

Оператори керування циклом:

Метод введення gets має два необов'язкових аргументи:

Метод gets повертає прочитаний рядок або nil, якщо файл було прочитано до кінця. За допомогою методу gets з файлу можна прочитати і рівно один символ.

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

Метод виведення print, на відміну від методу puts, не вставляє між рядковими представленнями об'єктів ознаку кінця рядка і не завершує нею виведення. Значення спеціальної змінної $, розділяє об`єкти при виведенні. Її перевизначення призводить до зміни результату виведення:

print 1, 2, 3 # => 123
$, = ", "
print 1, 2, 3 # => 1, 2, 3

3. Вивчення нового матеріалу

У мові Ruby, як і у багатьох інших сучасних мовах, вхідні дані зчитують як рядки тексту. Тому уміння опрацювати рядок необхідне при для втілення введення даних (з файлу чи з клавіатури.

Рядок (тексту), тип strings — величина для збереження послідовності символів.

Рядок зберігає довільну послідовність байтів (кодів символів), які тлумачать згідно з певними таблицями кодування. Цей структурований тип даних є стандартним для мови Ruby. Значення рядків (послідовність символів) записують в одинарних лапках (апострофах) або у звичайних подвійних лапках:

В Ruby для опису рядків і роботи з ними використовують напрацювання мови Perl. Це дає такі можливості:

Методи опрацювання рядків подано з використанням наявної публікації в Інтернеті.

Розрізняють методи, які створюють новий рядок, не змінюючи початковий, і ті, які змінюють рядок. Зазвичай назви останніх закінчуються на !. Інакше кажучи, якщо назва метода не закінчується на !, то метод ствоює новий рядок, а не змінює вихідний. Але це правило має виключення. Наприклад, метод []= (див. далі).

Завдання 1. Ознайомитися з описом використання методів: chop, count, gets, length, split з поданого далі переліку. Літера латиниці s позначає рядок, до якого застосовують метод. У поданих далі прикладах коду передбачено виведення даних для можливості швидкої перевірки коректності коду. Радимо це робити з модифікацією перед використанням методів.

Примітка. Всe, що стосується правил при опрацюванні рядків, не вказано у програмі для загально освітніх закладів освіти навіть з профільним вивченням інформатики.

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


У наступних завданнях потрібно написати програму для виконання проголошеного завдання, використовуючи вивчені методи chop, count, gets, length, split. Якщо цих методів виявиться недостатньо, використати інші (на власний розсуд). Вважати, що рядок-аргумент містить слова, розділені пробілом, якого немає на початку тексту і наприкінці тексту. Розв'язання записати у файли з назвою Ваше_прізвище_№_завдання.rb у теку, вказану вчителем.

Завдання 2. Знайти кількість слів у рядку тексту.
Завдання 3. Надрукувати окремо з нового рядка кожне слово рядка тексту.
Завдання 4. Знайти й надрукувати перше найдовше слово рядка тексту.
Завдання 5. Порівняти створене з демонстраційними розв'язаннями: 2, 3, 4.

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

  1. Що таке рядок?
  2. Які переваги мови Ruby в опрацюванні рядків.
  3. Назвіть використані вами методи опрацювання рядків.
  4. Чого навчилися?
  5. Що виникало труднощі?

Виставлення оцінок.

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

Завдання 6. Перевірити чи слова, що записані латиницею у рядку, розташовано у алфавітному порядку.

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

  1. Розбити рядок на слова.

  2. Використати порівняння рядків для пошуку пари слів, з яких попереднє має стояти після наступного в алфавітному порядку.

  3. Якщо таку пару знайдено, вивести повідомлення про неупорядкованість, інакше — повідомлення про упорядкованість.

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

Завдання 7. Перекласти мовою Ruby код програми мовою Pascal для отримання нормальної диз'юнктивної форми булевої фукції.

Завдання 8 (за бажанням). Ознайомитися з усім переліком методів опрацювання рядків, поданим у цій розробці, й описом правил (перейти за посиланням на початку викладу матеріалу.


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