المسارات
/
Lean
Lean
/
التمارين
/
ثلاثي ألوان المقاومة
ثلاثي ألوان المقاومة

ثلاثي ألوان المقاومة

متوسط

التعليمات

إذا أردت بناء شيء ما باستخدام Raspberry Pi، فغالبًا ما ستستخدم المقاومات. في هذا التمرين، تحتاج إلى معرفة ثلاثة أشياء فقط عنها:

  • لكل مقاومة قيمة مقاومة.

  • المقاومات صغيرة، صغيرة إلى حد أنه لو طُبعت قيمة المقاومة عليها لصعُبت قراءتها. وللتغلب على هذه المشكلة، يطبع المصنّعون أشرطة ملوّنة على المقاومات للدلالة على قيم مقاومتها.

  • يعمل كل شريط كرقم من أرقام العدد. فمثلًا، لو طبعوا شريطًا باللون brown (قيمته 1) يليه شريط باللون green (قيمته 5)، لكان ذلك يعني العدد 15. في هذا التمرين، ستُنشئ برنامجًا مفيدًا حتى لا تضطر إلى تذكّر قيم الأشرطة. سيأخذ البرنامج 3 ألوان كمدخلات، ويُخرج القيمة الصحيحة بالأوم. وتُرمَّز أشرطة الألوان على النحو التالي:

  • black: 0

  • brown: 1

  • red: 2

  • orange: 3

  • yellow: 4

  • green: 5

  • blue: 6

  • violet: 7

  • grey: 8

  • white: 9

في تمرين «ثنائي ألوان المقاوم» فكّكت ترميز أول لونين. على سبيل المثال: orange-orange تعطي القيمة الأساسية 33. أما اللون الثالث فيشير إلى عدد الأصفار التي يجب إضافتها إلى القيمة الأساسية. والقيمة الأساسية مع الأصفار تعطينا قيمةً بالأوم. ولا يهم في هذا التمرين ما هي الأوم حقًا. على سبيل المثال:

  • orange-orange-black تعطي 33 بدون أصفار، فتصبح 33 ohms.
  • orange-orange-red تعطي 33 مع 2 أصفار، فتصبح 3300 ohms.
  • orange-orange-orange تعطي 33 مع 3 أصفار، فتصبح 33000 ohms.

(إذا كنت من محبي الرياضيات، فقد ترغب في التفكير في الأصفار كأسس للعدد 10. وإن لم تكن من محبي الرياضيات، فاكتفِ بالأصفار. فالأمر في الحقيقة واحد، لكن بلغة بسيطة عادية بدلًا من لغة الرياضيات.)

يدور هذا التمرين حول تحويل الألوان إلى تسمية:

"... ohms"

لذا فإن إدخال "orange", "orange", "black" ينبغي أن يُرجع:

"33 ohms"

وعندما نصل إلى مقاومات أكبر، تُستخدم بادئة مترية للدلالة على مقدار أكبر من الأوم، مثل «kiloohms». وهذا يشبه قول «2 كيلومتر» بدلًا من «2000 متر»، أو «2 كيلوغرام» مقابل «2000 غرام».

على سبيل المثال، إدخال "orange", "orange", "orange" ينبغي أن يُرجع:

"33 kiloohms"

تعريف الصياغة

Caution

هذا التمرين امتداد لتمرين Resistor Color Duo ويبني عليه. ورغم أن بإمكانك حل تمارين التدريب بأي ترتيب، فإننا نشجعك على اتباع التسلسل المقترح.

في هذا التمرين، تُعطى صياغة للألوان معرَّفة مسبقًا باستخدام البادئة c*، مثل c*black. وعليك بعد ذلك تعريف صياغة تربط تسلسلًا من الألوان بقيمة مقاومة مع وحدة النظام الدولي (SI) الخاصة بها، وربما مع سابقة مترية، وفقًا للتعليمات. تقع الألوان بين *[[ و]] وتفصل بينها , ، مثل *[[c*black, c*yellow, c*violet]].

من المحتمل أن تتطلب منك هذه المهمة استخدام التدوينات أو الماكرو. وقد ترغب في الاطلاع على مرجع.

ولأن الصياغة الجديدة تُوسَّع في وقت الترجمة، فإن أي اختبار سيفشل في الترجمة ما لم تُعرَّف كل الصياغة المطلوبة. ولهذا السبب، بدلًا من الاعتماد على اختبارات وقت التشغيل التقليدية، نستخدم #guard_msgs. يقارن هذا الأمر سلسلة توثيق معطاة برسالة يولّدها أمر آخر، وهو هنا #eval، ويُبلّغ عن خطأ إذا اختلفتا. ويمكنك اعتبار غياب الخطأ اختبارًا ناجحًا.

إذا كنت تعمل محليًا أو في الملعب الإلكتروني الخاص بـ Lean، فستحصل على تغذية راجعة فورية عن أي خطأ يُبلّغ عنه #guard_msgs عبر InfoView في Lean.

Note

ينبغي إخراج قيمة المقاومة باستخدام الوحدة Ω (أوم). يمكن توليد هذا المحرف اليونيكود محليًا أو في ملعب Lean الإلكتروني بالاختصار \ohm. وإذا كنت تعمل في محرر Exercism الإلكتروني، فلا تتردد في نسخ المحرف من التعليمات.

Caution

لا يدعم مشغّل الاختبارات الإلكتروني حاليًا استيراد مكتبة البرمجة الفوقية Lean كاملة. ورغم أن لك الحرية في استخدام أي ميزات متاحة في Lean افتراضيًا، بما في ذلك ما هو داخل مساحة الأسماء Lean، فإن إضافة import Lean أو استيراد وحدات معيّنة من مساحة الأسماء Lean ستؤدي إلى فشل حلّك المرسل عند إرساله إلى Exercism.

لاحظ أن استيراد مكتبة Lean ليس ضروريًا لحل هذا التمرين.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Lean Exercism

مستعد لبدء ثلاثي ألوان المقاومة؟

سجّل في Exercism لتتعلّم وتتقن Lean عبر 100 تمرين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.