На уроці ви створите функції-роботи на Ruby, маленьких помічників, які будуть виконувати ваші команди: рахувати, малювати, розважати вас. 🤖✨
Практика.
Функції-роботи на Ruby
У кожного робота, як і у кожної функції, має бути своє ім’я. Якщо його покликати за цим іменем, то робот-функція зробить свою роботу.
Перед тим як почати, домовмося, що зверху файлу у нас живуть всі роботи-функції. А нижче вже саме програма, там ми будемо кликати відповідних роботів на допомогу.

Перші прості роботи-функції
Приклад: Почнемо з простих роботів. Наша задача — створити робота-підлабузика, або, іншими словами, робота-підлизу. Його задача – зчитати ім’я і написати щось дуже хороше, аж занадто хороше про цю людину:
# Functions
def robot_pidlabuznyk (name)
puts "Hey, #{name}. You are awesome!"
puts "You are the best person in the world!!!!"
end
# Main program
robot_pidlabuznyk("Alice")
Ось так ми викликали робота-підлизу для того, щоб осипати компліментами Алісу. Викличте його ще раз, передавши інші імена, наприклад:
robot_pidlyza "Лідія Олексіївна"
robot_pidlyza "Свинка Пепа"⭐️ Самостійні завдання
2⭐️: Створіть робота сувору вчительку, яка буде примушувати робити домашку і ставити двійки. Параметр: ім’я. Робот має казати щось на кшталт:
“Привіт, #{name}. Забув домашку ? А голову ти вдома не забув ? Двійка тобі!!!!”

3⭐️: Створіть простого робота на одну з поданих тем (на картинках нижче). Простий робот має один параметр і просто виводить рядок з цим параметром.

4⭐️: Створіть Робота-мотиватора 💪. Він має казати підбадьорливу фразу (придумайте свою, не з прикладу)
Наприклад: Мілано, не здавайся! Кожен великий програміст колись писав дивний код!
Складніші роботи

Приклад: Тепер створимо робота-математика, який зможе розв’язувати задачі на рух. Напишімо першу функцію для робота-математика:
def robot_math_get_s (v,t)
s=v*t
puts "Відстань: #{s}"
end
robot_math_get_s(60,2)
Приклад: Настав час для робота-поета. Він буде виводити віршик ось з таким красивими відступами:

На клавіатурі такі відступи може зробити кнопка Tab, а в програмуванні є спеціальний символ \t
def robot_poet_tab (poem)
i=0
poem.each_line do |line|
puts "\t"*i+line
i+=1
end
end

Щоб викликати робота-поета треба передати йому змінну з віршиком і викликати функцію. Віршик можеш обрати з таблички нижче.
p="- Ну, хіба таке годиться?!
В тебе знову одиниця!
А мене сьогодні, мамо,
Запитали знов те ж саме!
"
robot_poet_tab(p)
⭐️⭐️ Божевільна фабрика роботів. Самостійні завдання
6⭐️⭐️: Створіть ще функції, щоб знаходити швидкість і час. Протестуйте всі ці функції з різними числами.
Також, при діленні, щоб програма працювала для дробових чисел, треба одне з чисел переводити в дробове відразу у функції, наприклад:
t=s.to_f/v
Так, програма працюватиме, для прикладу, коли є відстань у 3 км і швидкість 6 км/год.
7⭐️⭐️: Розв’яжіть задачі з таблички за допомогою функцій з минулих завдань:

8⭐️⭐️: Створіть ще одну функцію-робота, яка буде рахувати якусь математичну або фізичну формулу. (Не площу і не периметр, бо ми таке вже робили на минулих заняттях).
Викличте функцію-робота для двох прикладів.
Приклад (перевод величин з хвилин в години):
120 хвилин це 2 години
30 хвилин це 0.5 години
9⭐️⭐️⭐️: Зробіть іншого робота-поета, який виводить будь-який вірш зі смайликами (в кожному наступному рядку більше смайлів). Приклади віршів можете взяти нижче:

10⭐️⭐️⭐️: Зробіть іншого робота-поета, який виводить будь-який вірш великими літерами з подвійними пропусками між рядками (використайте \n для нових рядків):

Віршики для роботи, щоб довго не шукати:
Коли прийшов зі школи внук,
Дідусь щоденник взяв до рук:
— За віщо двійку ти схопив?
— За те, що швидко відповів…
— За те, що швидко? — гримнув дід.
За це ж п’ятірки ставить слід!
— Та що ви, діду, кричите?
Сказав я швидко, та не те…
* * * * * * *
— Чого увесь урок ти, Лідо,
пасешся в зошиті сусіда?
— Перевіряю я Семена:
чи вірно він списав у мене?
Засмутилось кошеня
— Треба в школу йти щодня.
І прикинулось умить,
Що у нього хвіст болить.
Довго думав баранець
І промовив, як мудрець:
— Це хвороба не проста,
Треба різати хвоста.
Кошеня кричить: «Ніколи!
Краще я піду до школи!»
* * * * * * *
Ну, хіба таке годиться?!
В тебе знову одиниця!
А мене сьогодні, мамо,
Запитали знов те ж саме!
– Ти в нас грамотний такий,
– Хвалить мене мама.
Тільки хто ж чита книжки
Догори ногами!
Книгу я кручу – дива!
Не збагну нічого –
Де у книжки голова?
Де у книжки ноги?
* * * * * * *
— Де Іванко? — запитав
наш учитель Тому.
— Та він ногу поламав
і побіг додому!
Фабрика роботів
11⭐️⭐️: Робот-кіт🐱. У функцію передається слово. Вона повинна сказати “Мяу” стільки разів, скільки літер у слові (Підказка : s.length)
Приклад: cat_language(“Неllo”)
Результат: Мяу Мяу Мяу Мяу
12⭐️⭐️: Робот-перекладач котячої мови 🐱. Робот перекладає слово у котячу мову — додає “мяу”.
Підказка:
a = "Як тебе звати?"
a.split.each do |word|
..
end13⭐️⭐️: 💡 Робот-енергетик, який рахує енергію героя.
Правило: кожне печиво = +5 енергії
Приклад: puts “Ти з’їв 3 печива й отримав 15 енергії!”
14⭐️⭐️⭐️: Робот-генератор сендвічів 🥪 Робот робить сендвічі: у змінних йому передають три параметри: кількість хліба, сиру, ковбаси. Робот каже, скільки сендвічів можна зробити.
Кожен сендвіч = 2 шматки хліба + 1 сир + 1 ковбаса.

15⭐️⭐️: 📚 Робот-генератор домашки: генерує домашку для людини випадковим чином (Підказка: обрати випадковий var.sample)
tasks = [
"написати функцію",
"виправити баг",
"з'їсти печиво",
"вивчити цикл",
"врятувати світ від багів"
]16⭐️⭐️: 😜Робот-генератор дивних імен. Генерує максимально дивні імена. (Підказка: обрати випадковий var.sample)
adjectives = ["Галактичний", "Лазерний","Супер","Мутантський","Божевільний"]
nouns = ["Огірок","Картопляник","Хом'як","Бутерброд","Кактус"]
17⭐️⭐️: 🤯😱Робот-панікер. Якщо йому передали велике число (більш як 50), то робот панікує : “😱 ПАНІКА!!! ЧИСЛО ЗАНАДТО ВЕЛИКЕ!!!”, якщо число менше, то пише “Все нормально. Робот спокійний.”
18⭐️⭐️: 🧠 Робот-математик, який знаходить найбільше число з трьох, які йому передали.
19⭐️⭐️: Робот перевіряє паліндром: якщо слово читається справа наліво і зліва направо однаково — це паліндром. (Підказка : var.reverse)
Українські паліндроми: око, шалаш, радар
Англійські паліндроми: madam, level
20⭐️⭐️: 🤪 Робот-генератор мемів. Випадково обирає мем і виводить на екран (Підказка: обрати випадковий var.sample)
memes = [
"Коли код працює з першого разу 😎",
"Я: напишу 1 функцію. Ruby: 200 помилок.",
"Ctrl+C Ctrl+V — найсильніша магія програміста",
"Я виправив баг… але з'явилось 5 нових",
"StackOverflow — мій найкращий друг"
]21⭐️⭐️: 🕺💃👯♀️👯 Робот-генератор танців. Випадково обирає танцювальний рух і виводить на екран (Підказка: обрати випадковий var.sample)
moves = [
"робот робить місячну ходу",
"робот крутиться як вертушка",
"робот танцює floss",
"робот робить breakdance",
"робот дивно трясе антенами"
]
22⭐️⭐️: Робот-генератор випадкових фактів. Зі списку фактів робот випадково обирає один і виводить на екран (Підказка: обрати випадковий var.sample).
⭐️⭐️⭐️⭐️ Робот-бос 4го рівня (великі завдання)
23⭐️⭐️⭐️⭐️: Супер робот-тренер програмістів. Роботу передаємо список учнів як параметр і він кожному дає випадкову кількість енергії rand(min, max)
Приклад: Максим отримує 56 енергії для програмування!
24⭐️⭐️⭐️⭐️⭐️: Робот-шахіст: малює шахівницю заданого розміру. Приклад для 4 на 4:
⬛️⬜️⬛️⬜️
⬜️⬛️⬜️⬛️
⬛️⬜️⬛️⬜️
⬜️⬛️⬜️⬛️
25⭐️⭐️⭐️⭐️⭐️: Робот-художник. Робот створює картину з випадкових смайлів.. Параметр: robot_random_art(width, height). (Підказка: обрати випадковий var.sample)
emojis = [“⭐”, “🌈”, “🍕”, “🤖”, “👾”, “🔥”, “🌟”, “🍪”]
Приклад результату:
⭐🍕👾👾🌟🍪🔥🌈⭐👾
🔥🔥🍪🤖🌈🌟👾🍕🍕⭐
👾🍪🌟🌈🤖🔥🍕👾⭐🍪
26⭐️⭐️⭐️⭐️⭐️: Робота-функцію, який допоможе вчительці виставити середній бал учням за семестр. Функція має бути одна для всіх учнів. Ось оцінки дітей:
danylo=[11,10,12,12]
milana=[8,9,7,12,8]
alex= [6,4,11,3,6,6,4,7,5]
eva=[9,7,11,10,10,8,9,12,11,10,11,10,12]
Приклад роботи програми:
Середній бал Данила: 11.25
Середній бал Мілани: 8.8
Середній бал Алекса: 5.777777777777778
Середній бал Єви: 10.0
Пару підказок, якщо треба:
Підказки написані білим шрифтом. Виділи наступні рядки й ти їх побачиш
Щоб порахувати середній бал, треба скласти всі оцінки і поділити на їхню кількість.
В функції треба буде зробити цикл for i in 0 .. a.length-1
Тобі знадобиться змінна для кількості оцінок. Згадай, як порахувати, скільки елементів у списку.
І ще змінна для суми оцінок.
27⭐️⭐️⭐️⭐️: 0️⃣1️⃣ Робот-перекладач на мову роботів. Параметр – рядок з текстом. Робот аналізує кожний символ (text.each_char do |char| …….. end)
Якщо зустрічає пробіл – так і передає в результат
якщо зустрічає голосну – в результат дописує 0
якщо зустрічає щось інше – в результат дописує 1
Тобто для text = “Як тебе звати” програма має видати 01 1010 11010
vowels = “аеєиіїоуюяAEЄИІЇОУЮЯ”

Домашня робота
1: Зробіть завдання на 8 зірочок. ⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️
Акція !
Якщо завдання зробили та здали під час уроку, завдання на ⭐️⭐️⭐️ ⭐️⭐️ зірочок = 12 б !
Функції використовувати обов’язково!!!

Level Up!
Функції-роботи на Ruby
1: Два завдання на ⭐️⭐️⭐️ або більше зірочок.
Не зупиняйтеся у вивченні Ruby! До зустрічі на наступних уроках!
