Спробуймо на зуб задачі на умови у Ruby. Щоб стати справжнім майстром програмування, потрібно тренуватись — як лицарі в стародавніх легендах ⚔️. У цьому уроці ви навчитеся створювати умови (if, else, elsif) у Ruby — саме ті чарівні команди, які дозволяють програмі приймати рішення.
Ми поринемо в історію 🌍 — на вас чекають задачі про козаків і лицарів, винахідників і дослідників, а може навіть про вікінгів! 🛶
Тут кожна програма стане маленькою подорожжю в часі — від стародавнього світу до сучасності.
Готуйтеся: історія оживе у вашому коді! 💻✨

Логічні оператори в умовах
Історичні смайли: 🏺🏰⛵🏯🗿📜👑⚔️⛩️🕰️🧭🗽🔥🏛️🏹🪶🗺️🛶
| Оператор | Оператор (інша назва) | Пояснення | Приклад на смайликах |
|---|---|---|---|
&& | AND | (І) Якщо виконується і перше і друге одночасно | if колір==”сірий” and матеріал==”камінь” 🗿🏛️ |
| || | OR | (АБО) Якщо виконуються перше або друге | if тип==”зброя” or тип==”транспорт” ⛵⚔️🏹🛶 |
! | ! | (НЕ) Змінює значення на протилежне | if колір!=”жовтий” 🏺🏰🏯🗿⚔️⛩️🗽🏛️🪶🗺️🛶 |

Практика. Задачі на умови у Ruby
Задачі на умови у Ruby: наукові відкриття
1: Створімо програмку з найпростішою умовою: користувач вводить рік, а програма визначає, чи цей рік був до якогось відкриття чи після:
puts "Введіть рік:"
year=gets.chomp.to_i
if year < 1503
puts "Картину 'Мона Ліза' ще не написано"
else
puts "Леонардо да Вінчі вже написав 'Мону Лізу'"
end

2: Оберіть ще 2 відкриття з таблички й допишіть нові умови в поточну програму. Вводити рік наново не треба. Коли користувач вводить рік, то ваша програма має написати інформацію про три відкриття.
Рік | Відкриття / Створення
--------|---------------------------------------------------
1453 | Гутенберг винайшов друкарський верстат 🖨️
1503 | Леонардо да Вінчі малює «Мону Лізу» 🖼️
1609 | Галілео Галілей сконструював перший телескоп 🔭
1821 | Майкл Фарадей відкрив електромагнітну індукцію ⚡
1825 | Винайдено перший паровий потяг 🚂
1876 | Александр Белл винайшов телефон ☎️
1879 | Томас Едісон створив лампу розжарювання 💡
1895 | Вільгельм Рентген відкриває рентгенівські промені 🩻
1903 | Брати Райт здійснюють перший політ на літаку ✈️
1928 | Олександр Флемінг відкриває пеніцилін 💊
1939 | Створено шифрувальну машину Енігма 🕵️
1946 | Створено перший електронний комп’ютер ENIAC 💻
1969 | NASA висаджує людину на Місяць 🌕
2007 | Apple створює перший iPhone 📱
Задачі на умови у Ruby про вікінгів
🛶 Вікінги — це відважні мореплавці з Півночі, які не боялися штормів і відкривали нові землі. ⚔️ Вони жили за власними правилами, любили пригоди й залишили по собі безліч легенд! Вікінги вірили, що найкращі воїни, після смерті потрапляють до Валгалли — це небесна зала для найвідважніших воїнів, де вони святкують після земних битв. 🌄
Вікінги часом бували жорстокі й наганяли страх на Європу, але зрештою, це була видатна цивілізація, яка була породженням свого часу

3: Оберіть одну з задач і розв’яжіть її (задачі відсортовані за складністю).
a. Користувач вводить рік. Якщо рік від 793 до 1066, то програма має написати: “Так! Це епоха вікінгів — море, мечі й слава!”, якщо ні : “Ні, це не час вікінгів.”
b. Користувач вводить ціль (змінна goal).
Якщо ціль “золото”, програма пише: “Ти шукаєш скарби в монастирях!”.
Якщо ціль “слава”, програма пише: “Ти мрієш про місце у Валгаллі!”
Якщо щось інше: “Вікінг без мети — не вікінг!”
с. Програма просить ввести назву моря. Якщо море Балтійське або Північне, програма пише: “Там плавали справжні вікінги!”. Якщо інше: “Це море не з маршрутів вікінгів.”
d. Вікінг готується до битви. Він може воювати, якщо: у нього є меч або сокира,
та він не поранений. Створіть відповідні змінні й перевірку чи є все необхідне. Виведіть “До бою!” , якщо є все необхідне, інакше: “Потрібен відпочинок.”.


е. Вікінг готується до зимової битви. Він озброєний, якщо:
у нього є меч і щит,
або у нього є сокира і шолом.
Також, якщо він не має рукавичок, то він не хоче йти в бій навіть при озброєності.
Зробіть відповідні перевірки й виведіть результат готовності.
Задачі на умови у Ruby про епохи
4: Роздивіться табличку. За її даними створіть програму, в якій юзер вводить рік, а програма визначає, до якої історичної епохи він належить. Підказка:
| Роки | Назва епохи | Короткий опис |
|---|---|---|
| до 476 року | Стародавній світ (Античність) | Розвиток перших цивілізацій (Шумер, Єгипет, Давня Греція, Римська імперія). Закінчується падінням Західної Римської імперії. |
| 477 –1599 | Середньовіччя | Феодалізм, християнство, хрестоносні походи, розвиток міст, готична культура. |
| 1600 – 1789 | Новий час | Відродження, географічні відкриття, реформація, епоха абсолютних монархій, просвітництво. |
| 1790 – 1913 | Новітній час | Французька революція, промислова революція, імперіалізм, націоналізм, модернізація. |
| 1914 – 1945 | Сучасна історія | Перша і Друга світові війни, економічні кризи, міжвоєнний період. |
| 1946 – 1990 | Холодна війна | Ідеологічне та геополітичне протистояння між СРСР і США, гонка озброєнь, космічна гонитва. |
| 1991 – теперішній час | Сучасний період | Глобалізація, розвиток інформаційних технологій, нові соціальні та політичні процеси. |

Домашня робота
1: Створіть програми:
а)Користувач вводить рік. Якщо рік від 250 до 66 млн років тому, то програма пише “Динозаври панували на Землі”, інакше “Немає динозаврів”.
Підказка: >=250000000
б) Користувач вводить назву динозавра (dino_name). Якщо це “Тиранозавр” або “Велоцираптор” — виведіть “Це хижий динозавр”. Якщо це “Трицератопс” або “Птеранодон” — виведіть “Це травоїдний динозавр”. Інакше — “Невідомий динозавр”.
Якщо в консолі не працює українська мова, можете це завдання зробити англійською




3: Створіть програмку, в якій користувач вводить рік, а програма визначає, в якому класі цей рік будуть проходити на уроці з Історії України 💛💙( За бажанням можна вивести й пояснення). Протестуйте що програма також працює для років до нашої ери (наприклад, введіть -300, має видавати 7 клас), та для років з майбутнього (наприклад 3000).

| Клас | Роки, які охоплюються | Пояснення |
|---|---|---|
| 7 клас | до 1500 | Стародавня та Середньовічна історія України (до ХV ст.). Трипільська культура, скіфи, анти, утворення Київської Русі, Хрещення Русі, розквіт Київської держави, монгольська навала, Галицько-Волинське князівство. |
| 8 клас | 1500 – 1799 | Ранній новий час (Козацька доба) (XVI–XVIII ст..). Період козацтва, Національно-визвольна війна, Гетьманщину та занепад автономії. |
| 9 клас | 1800 – 1913 | Нова історія України (XIX ст. — 1914). Українські землі у складі двох імперій — російської та Австро-Угорської, розвиток культури, національне відродження. |
| 10 клас | 1914 -1938 рр.. | Новітня історія України (Перший період). Події Першої світової війни, Українську революцію, утворення УНР та ЗУНР, а також життя в радянській Україні у 1920–1930-х роках. |
| 11 клас | 1939 – поточний рік | Новітня історія України (Другий період). Події Другої світової війни, радянський період післявоєнних десятиліть, здобуття незалежності та новітня історія України. |
| — | після поточного року | 🪐 Майбутнє — ще не написане! 👩🚀 |
** 6 клас не зазначено в таблиці, бо курс є вступним.
** цифри у таблиці можуть бути приблизними.


Level Up!
Задачі на умови у Ruby
1: Створіть такі програми:
а) Вікінг планує битву з ворожим загоном. Йому потрібно вирішити, чи йти у бій:
- Якщо кількість воїнів (
warriors) у його загоні більша за 10 і рівень бойового духу (morale) не менший за 7,- то він йде в бій, якщо погода не “шторм”.
- Інакше — чекає покращення погоди.
- Якщо воїнів менше або рівно 10, виведіть: “Занадто мало воїнів, треба чекати підкріплення”.
б) Користувач вводить ім’я скандинавського бога, його силу (0-100) та вік (у роках).
Якщо сила менша за 50 —"#{god} — молодий або слабкий бог."
Якщо сила більша за 90 і вік менший за 1000 — вивести"#{god} — молодий і могутній бог!"
Якщо сила більша за 90 і вік більший або рівний 1000 —"#{god} — мудрий і дуже сильний бог!"
Якщо сила від 50 до 90 включно —"#{god} — бог середнього рівня сили."

2: 🦖 Створіть програму в якій треба ввести зріст динозавра у метрах. Програма має порівняти його зріст з відомими об’єктами й вивести всі об’єкти, які нижчі за динозавра. Висоту об’єктів знайдете нижче (але можете обрати свої). Також внизу є табличка-довідник зросту динозаврів для тестування🌍🦕

statue_of_liberty_pedestal = 17 # Висота п'єдесталу Статуї Свободи
big_ben_tower_part = 15 # Висота частини вежі Біг-Бен
moai_statue_average = 9 # Середній зріст статуй моаї на острові Пасхи
big_ben_clock_face = 4 # Діаметр циферблата Біг-Бена
little_mermaid_statue = 1 # Статуя Русалоньки в Копенгагені
| 🦖Назва динозавра | 📏Зріст (м) | 💡Факт |
|---|---|---|
| Brachiosaurus | 13 | Один із найвищих динозаврів, мав довгі передні лапи. |
| Tyrannosaurus rex | 5 | Хижак із сильними щелепами, один з найвідоміших динозаврів. |
| Spinosaurus | 7 | Найбільший хижий динозавр, ймовірно водоплавний. |
| Diplodocus | 4 | Дуже довгий, з довгою шиєю, але не дуже високий. |
| Velociraptor | 1 | Малий і швидкий хижак, приблизно з розмір курки. |
| Giganotosaurus | 6 | Один із найбільших наземних хижаків, більший за T. rex. |
| Ankylosaurus | 2 | Броньований динозавр із масивним кулястим хвостом. |
| Sauroposeidon | 17 | Мав найвищу шию серед відомих динозаврів, до 17 м висоти. |


Не зупиняйтесь у вивченні Ruby! До зустрічі у наступних уроках!