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

رنگ مقاومت

تمرین یادگیری

مقدمه

بیشتر برنامه‌ها به برخی کتابخانه‌ها وابستگی دارند. مدیریت دستی آن‌ها می‌تواند دردسرساز باشد. خوشبختانه، اکوسیستم Rust به‌طور پیش‌فرض cargo را همراه دارد! cargo می‌تواند وابستگی‌های یک پروژه را مدیریت کند.

اغلب می‌بینید که به بسته‌های خارجی در Rust «کریت» می‌گویند. کریت یک واحد کامپایل در Rust است. یک کریت می‌تواند به یک فایل اجرایی یا به یک کتابخانه کامپایل شود.

بیشتر اوقات، افزودن یک وابستگی خارجی به سادگی افزودن یک خط به فایل Cargo.toml شماست.

در این تمرین، وابستگی‌های enum-iterator و int-enum برای شما اضافه شده‌اند.

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

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

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

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

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

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

این رنگ‌ها به‌صورت زیر رمزگذاری شده‌اند:

  • Black: 0
  • Brown: 1
  • Red: 2
  • Orange: 3
  • Yellow: 4
  • Green: 5
  • Blue: 6
  • Violet: 7
  • Grey: 8
  • White: 9

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

  1. جست‌وجوی مقدار عددی مرتبط با یک نوار رنگی مشخص
  2. تبدیل مقدار عددی به رشته‌ای که رنگ را نشان می‌دهد
  3. فهرست کردن رنگ‌های مختلف نوارها

برای کار شماره‌ی یک به کریت بیرونی int-enum نیاز دارید و برای کار شماره‌ی سه به enum-iterator. هر دو از قبل در Cargo.toml این تمرین گنجانده شده‌اند. حتماً مستندات این کریت‌ها را بررسی کنید تا یاد بگیرید چطور از آن‌ها استفاده کنید. برای انجام کار شماره‌ی دو می‌توانید پیاده‌سازی پیش‌فرض Debug برای Enumها را بررسی کنید.

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

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

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

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

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