اگر بخواهید چیزی با Raspberry Pi بسازید، احتمالاً از مقاومتها استفاده خواهید کرد. در این تمرین باید دو نکته را دربارهی آنها بدانید:
تولیدکنندگان برای دور زدن این مشکل، نوارهایی با کد رنگی روی مقاومتها چاپ میکنند تا مقدار مقاومتشان را نشان دهند. هر نوار یک موقعیت و یک مقدار عددی دارد.
۲ نوار اول یک مقاومت از یک شیوهی رمزگذاری ساده پیروی میکنند: هر رنگ به یک عدد واحد نگاشت میشود.
در این تمرین میخواهید برنامهای مفید بسازید تا مجبور نباشید مقدار نوارها را به خاطر بسپارید.
این رنگها چنین رمزگذاری میشوند:
هدف این تمرین ساختن راهی است که:
یادسپارها رنگها را به اعداد نگاشت میکنند، که وقتی در قالب یک آرایه ذخیره شوند، بهطور اتفاقی با اندیس خودشان در آرایه برابر میشوند: Better Be Right Or Your Great Big Values Go Wrong.
اطلاعات بیشتر دربارهی رمزگذاری رنگی مقاومتها را میتوانید در مقالهی ویکیپدیای کد رنگ الکترونیکی بیابید.
در این تمرین باید نحوهی نگارش رنگها را با پیشوند c* تعریف کنید، مثلاً c*black. طبق دستورالعملها، این نحوهی نگارش باید در زمان کامپایل به مقدار متناظر هر رنگ بهصورت یک Fin 10 بسط پیدا کند. به همین شکل، باید نحوهی نگارش آرایهای از همهی مقادیر رنگها را نیز با c*all تعریف کنید.
این کار احتمالاً شما را ملزم میکند که از نشانهگذاریها یا ماکروها استفاده کنید. ممکن است بخواهید نگاهی به یک مرجع بیندازید.
چون نحوهی نگارش جدید در زمان کامپایل بسط پیدا میکند، هر test در کامپایل شکست میخورد مگر اینکه همهی نگارشهای لازم تعریف شده باشند. به همین دلیل، بهجای تکیه بر testهای زمان اجرای سنتی، همهی مقادیر را با قضیهها بررسی میکنیم. اگر یک قضیه از بررسی نوع سربلند بیرون بیاید، میتوانید آن را یک test موفق در نظر بگیرید.
اگر بهصورت محلی یا در زمین بازی آنلاین Lean کار کنید، از طریق Lean InfoView بازخورد فوری میگیرید که آیا قضیهای موفق میشود یا شکست میخورد و چرا شکست میخورد.