ETL

ETL

آسان

مقدمه

شما برای شرکتی کار می‌کنید که یک بازی آنلاین چندنفره به اسم Lexiconia می‌سازد.

برای بازی کردن، به هر بازیکن ۱۳ حرف داده می‌شود که باید آن‌ها را بازآرایی کند تا کلمه بسازد. حروف مختلف امتیازهای متفاوتی دارند، چون ساختن کلمه با بعضی حروف آسان‌تر از حروف دیگر است.

این بازی در ابتدا به انگلیسی عرضه شد، اما بسیار محبوب است و حالا شرکت می‌خواهد به زبان‌های دیگر هم گسترش پیدا کند.

زبان‌های مختلف باید از امتیازهای متفاوتی برای حروف پشتیبانی کنند. امتیازها بر اساس این تعیین می‌شوند که هر حرف در مقایسه با حروف دیگر آن زبان چقدر استفاده می‌شود.

برای مثال، حرف «C» در انگلیسی کاملاً رایج است و فقط ۳ امتیاز ارزش دارد. اما در نروژی حرفی بسیار کمیاب است و ۱۰ امتیاز ارزش دارد.

برای اینکه افزودن زبان‌های جدید آسان‌تر شود، تیم شما باید روش ذخیره‌سازی حروف و امتیازهایشان را در بازی تغییر دهد.

دستورالعمل‌ها

وظیفه‌ی شما این است که قالب داده‌ی حروف و ارزش امتیازی آن‌ها را در بازی تغییر دهید.

در حال حاضر، حروف بر اساس امتیازشان در گروه‌هایی ذخیره می‌شوند، به شکل یک «نگاشت» یک‌به‌چند.

  • 1 امتیاز: «A»، «E»، «I»، «O»، «U»، «L»، «N»، «R»، «S»، «T»
  • 2 امتیاز: «D»، «G»
  • 3 امتیاز: «B»، «C»، «M»، «P»
  • 4 امتیاز: «F»، «H»، «V»، «W»، «Y»
  • 5 امتیاز: «K»
  • 8 امتیاز: «J»، «X»
  • 10 امتیاز: «Q»، «Z»

این باید تغییر کند تا هر حرف به‌صورت جداگانه همراه با امتیازش در یک نگاشت یک‌به‌یک ذخیره شود.

  • ارزش «a» یک امتیاز است.
  • ارزش «b» 3 امتیاز است.
  • ارزش «c» 3 امتیاز است.
  • ارزش «d» 2 امتیاز است.
  • و غیره.

به‌عنوان بخشی از این تغییر، تیم تصمیم گرفته است حروف را از بزرگ به کوچک تغییر دهد.

Note

اگر می‌خواهید ببینید داده‌ها پیش‌تر چگونه ساختار‌بندی شده بودند و چگونه باید تغییر کنند، به نمونه‌های موجود در مجموعه‌ی تست نگاهی بیندازید.

درباره‌ی تست‌ها

از AWK اغلب به‌عنوان یک ابزار ETL استفاده می‌شود (ورودی را بخوانید، آن را پردازش کنید و یک «گزارش» بنویسید). در عمل هم قالب ورودی معمولاً تا حدی دشوار است. این تمرین تلاش می‌کند همین وضعیت را شبیه‌سازی کند، با استفاده از قالب‌های ورودی ناسازگاری که برنامه‌تان باید آن‌ها را یکدست کند.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
AWK Exercism

آماده‌اید ETL را شروع کنید؟

در Exercism ثبت‌نام کنید تا AWK را همراه با 3 مفهوم92 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.