مسیرها
/
Lean
Lean
/
تمرین‌ها
/
رنگ مقاومت
رنگ مقاومت

رنگ مقاومت

متوسط

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

اگر بخواهید چیزی با Raspberry Pi بسازید، احتمالاً از مقاومت‌ها استفاده خواهید کرد. در این تمرین باید دو نکته را درباره‌ی آن‌ها بدانید:

  • هر مقاومت یک مقدار مقاومت دارد.
  • مقاومت‌ها کوچک‌اند. آن‌قدر کوچک که اگر مقدار مقاومت را روی آن‌ها چاپ کنید، خواندنش سخت خواهد بود.

تولیدکنندگان برای دور زدن این مشکل، نوارهایی با کد رنگی روی مقاومت‌ها چاپ می‌کنند تا مقدار مقاومتشان را نشان دهند. هر نوار یک موقعیت و یک مقدار عددی دارد.

۲ نوار اول یک مقاومت از یک شیوه‌ی رمزگذاری ساده پیروی می‌کنند: هر رنگ به یک عدد واحد نگاشت می‌شود.

در این تمرین می‌خواهید برنامه‌ای مفید بسازید تا مجبور نباشید مقدار نوارها را به خاطر بسپارید.

این رنگ‌ها چنین رمزگذاری می‌شوند:

  • black: 0
  • brown: 1
  • red: 2
  • orange: 3
  • yellow: 4
  • green: 5
  • blue: 6
  • violet: 7
  • grey: 8
  • white: 9

هدف این تمرین ساختن راهی است که:

  • مقدار عددی مربوط به یک نوار رنگی خاص را جست‌وجو کنید
  • رنگ‌های مختلف نوارها را فهرست کنید

یادسپارها رنگ‌ها را به اعداد نگاشت می‌کنند، که وقتی در قالب یک آرایه ذخیره شوند، به‌طور اتفاقی با اندیس خودشان در آرایه برابر می‌شوند: Better Be Right Or Your Great Big Values Go Wrong.

اطلاعات بیشتر درباره‌ی رمزگذاری رنگی مقاومت‌ها را می‌توانید در مقاله‌ی ویکی‌پدیای کد رنگ الکترونیکی بیابید.

تعریف نحوه‌ی نگارش

در این تمرین باید نحوه‌ی نگارش رنگ‌ها را با پیشوند c* تعریف کنید، مثلاً c*black. طبق دستورالعمل‌ها، این نحوه‌ی نگارش باید در زمان کامپایل به مقدار متناظر هر رنگ به‌صورت یک Fin 10 بسط پیدا کند. به همین شکل، باید نحوه‌ی نگارش آرایه‌ای از همه‌ی مقادیر رنگ‌ها را نیز با c*all تعریف کنید.

این کار احتمالاً شما را ملزم می‌کند که از نشانه‌گذاری‌ها یا ماکروها استفاده کنید. ممکن است بخواهید نگاهی به یک مرجع بیندازید.

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

اگر به‌صورت محلی یا در زمین بازی آنلاین Lean کار کنید، از طریق Lean InfoView بازخورد فوری می‌گیرید که آیا قضیه‌ای موفق می‌شود یا شکست می‌خورد و چرا شکست می‌خورد.

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

آماده‌اید رنگ مقاومت را شروع کنید؟

در Exercism ثبت‌نام کنید تا Lean را همراه با 100 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.