مسیرها
/
Python
Python
/
تمرین‌ها
/
متخصص رنگ مقاومت
متخصص رنگ مقاومت

متخصص رنگ مقاومت

آسان

مقدمه

اگر می‌خواهید چیزی با Raspberry Pi بسازید، احتمالاً از «مقاومت» استفاده می‌کنید. مانند تمرین‌های پیشین Resistor Color Duo و Resistor Color Trio، نوارهای رنگی مقاومت را به برچسب‌هایی خوانا برای انسان ترجمه می‌کنید.

  • هر مقاومت یک مقدار مقاومت دارد.
  • مقاومت‌ها کوچک‌اند، آن‌قدر کوچک که اگر مقدار مقاومت را روی‌شان چاپ کنید، خواندنش دشوار خواهد بود. برای حل این مشکل، تولیدکنندگان نوارهایی با کد رنگی روی مقاومت‌ها چاپ می‌کنند تا مقدار مقاومتشان را نشان دهند.
  • هر نوار به‌عنوان یک رقم از یک عدد عمل می‌کند. برای مثال، اگر نواری قهوه‌ای (با مقدار ۱) و پس از آن نواری سبز (با مقدار ۵) چاپ می‌کردند، به عدد ۱۵ ترجمه می‌شد.

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

در این تمرین می‌خواهید برنامه‌ی مفیدی بسازید تا لازم نباشد مقادیر نوارها را به خاطر بسپارید. این برنامه ۱، ۴ یا ۵ رنگ را به عنوان ورودی می‌گیرد و مقدار درست را بر حسب اهم خروجی می‌دهد. نوارهای رنگی به شکل زیر کدگذاری می‌شوند:

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

در Resistor Color Trio سه نوار رنگی اول را رمزگشایی کردید. برای نمونه: orange-orange-brown به مقدار اصلی 330 تبدیل می‌شود. در این تمرین باید تلورانس را هم به این ترکیب اضافه کنید. تلورانس بیشترین مقداری است که یک مقدار می‌تواند بالاتر یا پایین‌تر از مقدار اصلی باشد. برای مثال، اگر نوار آخر green باشد، بیشترین تلورانس ±0.5% خواهد بود.

نوار تلورانس یکی از این مقادیر را خواهد داشت:

  • grey - 0.05%
  • violet - 0.1%
  • blue - 0.25%
  • green - 0.5%
  • brown - 1%
  • red - 2%
  • gold - 5%
  • silver - 10%

مقاومت چهارنواری به این شکل ساخته می‌شود:

نوار_۱ نوار_۲ نوار_۳ نوار_۴
مقدار_۱ مقدار_۲ ضریب تلورانس

مثال‌ها:

  • orange-orange-brown-green برابر 330 اهم با تلورانس ±0.5% است.
  • orange-orange-red-grey برابر 3300 اهم با تلورانس ±0.05% است.

تفاوت مقاومت چهارنواری و پنج‌نواری در این است که مقاومت پنج‌نواری یک نوار اضافه برای نشان دادن مقدار دقیق‌تر دارد.

نوار_۱ نوار_۲ نوار_۳ نوار_۴ نوار_۵
مقدار_۱ مقدار_۲ مقدار_۳ ضریب تلورانس

مثال‌ها:

  • orange-orange-orange-black-green برابر 333 اهم با تلورانس ±0.5% است.
  • orange-red-orange-blue-violet برابر 323 million اهم با تلورانس ±0.1% است.

مقاومت‌های تک‌نواری هم وجود دارند. مقاومت تک‌نواری فقط رنگ black را با مقدار 0 دارد.

برنامه‌ی شما باید یک list ورودی از رنگ‌های نوار مقاومت را به یک برچسب تبدیل کند:

«... ohms ±...%»

پس یک list ورودی مانند ["orange", "orange", "black", "green"] باید این را برگرداند:

«33 ohms ±0.5%»

وقتی هزاران اهم باشد، می‌گوییم «kiloohms». این شبیه به گفتن «kilometer» برای ۱۰۰۰ متر و «kilograms» برای ۱۰۰۰ گرم است.

پس یک list ورودی مانند ["orange", "orange", "orange", "grey"] باید این را برگرداند:

«33 kiloohms ±0.05%»

وقتی میلیون‌ها اهم باشد، می‌گوییم «megaohms».

پس یک list ورودی مانند ["orange", "orange", "blue", "red"] باید این را برگرداند:

«33 megaohms ±2%»

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

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

در Exercism ثبت‌نام کنید تا Python را همراه با 17 مفهوم146 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.