ট্র্যাক
/
WebAssembly
WebAssembly
/
অনুশীলনী
/
রেজিস্টর কালার ট্রিও
রেজিস্টর কালার ট্রিও

রেজিস্টর কালার ট্রিও

মধ্যম

নির্দেশনা

আপনি যদি Raspberry Pi দিয়ে কিছু বানাতে চান, তাহলে সম্ভবত রেজিস্টর ব্যবহার করবেন। এই অনুশীলনীর জন্য এদের সম্পর্কে আপনাকে মাত্র তিনটি বিষয় জানতে হবে:

  • প্রতিটি রেজিস্টরের একটি রেজিস্ট্যান্স মান থাকে।

  • রেজিস্টর ছোট হয়, আসলে এতটাই ছোট যে সেগুলোর গায়ে রেজিস্ট্যান্স মানটি ছাপলে পড়া কঠিন হয়ে যেত। এই সমস্যা এড়াতে নির্মাতারা রেজিস্টরের গায়ে রঙ দিয়ে কোড করা ব্যান্ড ছাপেন, যাতে সেগুলোর রেজিস্ট্যান্স মান বোঝা যায়।

  • প্রতিটি ব্যান্ড একটি সংখ্যার একটি অঙ্ক হিসেবে কাজ করে। যেমন, তারা যদি একটি brown ব্যান্ড (মান 1) তারপর একটি green ব্যান্ড (মান 5) ছাপত, তাহলে সেটি 15 সংখ্যাটি বোঝাত। এই অনুশীলনীতে আপনি একটি সহায়ক প্রোগ্রাম তৈরি করবেন, যাতে ব্যান্ডগুলোর মান আপনাকে মনে রাখতে না হয়। প্রোগ্রামটি ইনপুট হিসেবে ৩টি রঙ নেবে এবং সঠিক মানটি ওহমে আউটপুট দেবে। রঙের ব্যান্ডগুলো এভাবে এনকোড করা হয়েছে:

  • 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 এবং ২টি শূন্য, যা 3300 ohms হয়ে দাঁড়ায়।
  • orange-orange-orange হলে হবে 33 এবং ৩টি শূন্য, যা 33000 ohms হয়ে দাঁড়ায়।

(আপনার যদি গণিত পছন্দের বিষয় হয়, তাহলে শূন্যগুলোকে 10-এর সূচক হিসেবে ভাবতে পারেন। গণিত পছন্দ না হলে শূন্যগুলো নিয়েই এগিয়ে যান। আসলে বিষয়টা একই, শুধু গণিতের পরিভাষার বদলে সহজ ভাষায় বলা।)

এই অনুশীলনীটি রঙগুলোকে একটি লেবেলে রূপান্তর করার বিষয়ে:

"... ohms"

তাই "orange", "orange", "black" ইনপুট দিলে রিটার্ন করা উচিত:

"33 ohms"

বড় রেজিস্টরের ক্ষেত্রে ওহমের বড় মাত্রা বোঝাতে একটি মেট্রিক প্রিফিক্স ব্যবহার করা হয়, যেমন "kiloohms"। এটা অনেকটা "2000 মিটার"-এর বদলে "2 কিলোমিটার", বা "2000 গ্রাম"-এর জন্য "2 কিলোগ্রাম" বলার মতো।

যেমন, "orange", "orange", "orange" ইনপুট দিলে রিটার্ন করা উচিত:

"33 kiloohms"

ইনপুট অবৈধ হলে খালি দৈর্ঘ্য রিটার্ন করুন।

সংরক্ষিত অ্যাড্রেস

প্রথম স্ট্রিংয়ের বাফারটি লিনিয়ার মেমোরির ১০২৪-২০৪৭ বাইট ব্যবহার করে। দ্বিতীয় স্ট্রিংয়ের বাফারটি লিনিয়ার মেমোরির ২০৪৮-৩০৭১ বাইট ব্যবহার করে। তৃতীয় স্ট্রিংয়ের বাফারটি লিনিয়ার মেমোরির ৩০৭২-৪০৯৫ বাইট ব্যবহার করে।

লিনিয়ার মেমোরির ০-১০২৩ বাইটের প্রথম সেগমেন্টটি ব্যবহারের জন্য খালি আছে।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
WebAssembly Exercism

রেজিস্টর কালার ট্রিও শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, WebAssembly ট্র্যাকের 87টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।