Ми працюємо в компанії, яка створює багатокористувацьку онлайн-гру під назвою Lexiconia.
Щоб грати, кожен гравець отримує 13 літер, які потрібно переставити, щоб скласти слова. Різні літери приносять різну кількість очок, адже з одними літерами складати слова легше, ніж з іншими.
Спочатку гра вийшла англійською, але вона дуже популярна, і тепер компанія хоче розширитися й на інші мови.
Різні мови потребують різної кількості очок за літери. Кількість очок визначається тим, як часто вживаються літери порівняно з іншими літерами цієї мови.
Наприклад, літера «C» досить поширена в англійській, і за неї дають лише 3 очки. А в норвезькій вона дуже рідкісна, і за неї дають 10 очок.
Щоб було легше додавати нові мови, нашій команді потрібно змінити те, як у грі зберігаються літери та їхня кількість очок.
Змініть формат даних про літери та їхні очки в грі.
Зараз літери зберігаються групами за кількістю очок, у звʼязку один-до-багатьох.
Це потрібно змінити так, щоб кожна окрема літера зберігалася разом зі своєю кількістю очок у звʼязку один-до-одного.
У межах цієї зміни команда також вирішила перевести літери в нижній регістр замість верхнього.
Якщо ми хочемо подивитися, як дані були структуровані раніше і як їх потрібно змінити, погляньмо на приклади в наборі тестів.
AWK дуже часто використовують як інструмент ETL (прочитати вхідні дані, обробити їх і написати «звіт»). Дуже часто на практиці формат вхідних даних буває доволі непростим. Ця вправа спробує це відтворити, використовуючи непослідовні формати вхідних даних, які програмі доведеться нормалізувати.
Зареєструйтеся на Exercism, щоб вивчати й опановувати AWK, а також 3 концепції92 вправи та справжнє наставництво від людей, і все це безкоштовно.