ট্র্যাক
/
Rust
Rust
/
অনুশীলনী
/
অ্যাসেম্বলি লাইন
অ্যাসেম্বলি লাইন

অ্যাসেম্বলি লাইন

লার্নিং অনুশীলনী

ভূমিকা

সংখ্যা

Rust-এ সংখ্যার দুই ধরনের শ্রেণি আছে: ইন্টিজার (যা সাইনড বা আনসাইনড হতে পারে) এবং ফ্লোটিং-পয়েন্ট সংখ্যা।

ইন্টিজার

  • ইন্টিজার: দশমিক বিভাজকের পেছনে কোনো অঙ্ক নেই এমন সংখ্যা (পূর্ণ সংখ্যা)। ইন্টিজার টাইপ হয় কেবল ধনাত্মক সংখ্যা সংরক্ষণ করতে পারে (আনসাইনড), নয়তো ধনাত্মক ও ঋণাত্মক দুই ধরনের সংখ্যাই সংরক্ষণ করতে পারে (সাইনড)। উদাহরণ: -6, 0, 1, 25, 976 আর 500000।

ফ্লোটিং-পয়েন্ট সংখ্যা

  • ফ্লোটিং-পয়েন্ট সংখ্যা: দশমিক বিভাজকের পেছনে শূন্য বা তার বেশি অঙ্ক আছে এমন সংখ্যা। উদাহরণ: -2.4, 0.1, 3.14, 16.984025 আর 1024.0।

সংখ্যাসূচক টাইপের নামকরণ

একটি সংখ্যাসূচক টাইপের নাম দুইটি অংশ নিয়ে গঠিত:

  • একটি অক্ষর, যা নির্দেশ করে এটি আনসাইনড ইন্টিজার (u), সাইনড ইন্টিজার (i), নাকি ফ্লোটিং-পয়েন্ট সংখ্যা (f)।
  • একটি সংখ্যা, যা বিটে টাইপের আকার নির্দেশ করে। বড় টাইপের সর্বনিম্ন ও সর্বোচ্চ মানের মধ্যে পরিসর বেশি হয়। ফ্লোটিং পয়েন্টের ক্ষেত্রে এটি দশমিক বিভাজকের পেছনে আরও বেশি সংখ্যা রাখার সুযোগও দেয়।

নিচের সমন্বয়গুলো সম্ভব:

  • ৮ বিট: u8, i8
  • ১৬ বিট: u16, i16
  • ৩২ বিট: u32, i32, f32
  • ৬৪ বিট: u64, i64, f64
  • ১২৮ বিট: u128, i128

লক্ষ্য করুন, ফ্লোটিং-পয়েন্ট সংখ্যার জন্য কেবল ৩২-বিট আর ৬৪-বিট ভ্যারিয়েন্ট আছে।

সংখ্যার টাইপের মধ্যে রূপান্তর

Rust কোনো ইমপ্লিসিট টাইপ কনভার্সন করে না। এর মানে, যদি আপনাকে একটি সংখ্যাসূচক টাইপকে অন্য একটিতে রূপান্তর করতে হয়, তবে তা আপনাকে স্পষ্টভাবে করতে হবে। বড় টাইপ থেকে ছোট টাইপে রূপান্তর করলে (যেমন u64 থেকে u32) ডেটা হারিয়ে যেতে পারে। ফ্লোটিং পয়েন্ট থেকে ইন্টিজারে রূপান্তর করলে দশমিক বিন্দুর পেছনের সবকিছু অবশ্যই হারিয়ে যাবে, যা কার্যত নিচের দিকে রাউন্ড করে দেয়।

নির্দেশনা

এই অনুশীলনীতে আপনি একটি গাড়ি কারখানার অ্যাসেম্বলি লাইনের উৎপাদন বিশ্লেষণ করার কোড লিখবেন। অ্যাসেম্বলি লাইনের গতি 0 (বন্ধ) থেকে 10 (সর্বোচ্চ) পর্যন্ত হতে পারে।

সবচেয়ে কম গতিতে (1) প্রতি ঘণ্টায় 221টি গাড়ি তৈরি হয়। গতি বাড়ার সাথে সাথে উৎপাদন সরলরৈখিকভাবে বাড়ে। তাই গতি 4 হলে প্রতি ঘণ্টায় 4 * 221 = 884টি গাড়ি তৈরি হওয়া উচিত। তবে গতি বেশি হলে ত্রুটিপূর্ণ গাড়ি তৈরি হওয়ার সম্ভাবনাও বেড়ে যায়, আর সেগুলো পরে বাদ দিতে হয়। নিচের টেবিলে দেখানো হয়েছে গতি কীভাবে সফলতার হারকে প্রভাবিত করে:

  • 1 থেকে 4: ১০০% সফলতার হার।
  • 5 থেকে 8: ৯০% সফলতার হার।
  • 9 এবং 10: ৭৭% সফলতার হার।

আপনার হাতে দুটি কাজ।

1. প্রতি ঘণ্টায় উৎপাদনের হার গণনা করুন

প্রতি ঘণ্টায় অ্যাসেম্বলি লাইনের উৎপাদনের হার হিসাব করার একটি মেথড ইমপ্লিমেন্ট করুন, যেখানে সফলতার হারও বিবেচনায় নিতে হবে:

assembly_line::production_rate_per_hour(6)
// Returns: 1193.4

খেয়াল করুন, এখানে রিটার্ন করা মানটি একটি f64।

2. প্রতি মিনিটে উৎপাদিত সচল গাড়ির সংখ্যা গণনা করুন

প্রতি মিনিটে কতগুলো সচল গাড়ি তৈরি হয়, তা হিসাব করার একটি মেথড ইমপ্লিমেন্ট করুন:

assembly_line::working_items_per_minute(6)
// Returns: 19

খেয়াল করুন, এখানে রিটার্ন করা মানটি একটি u32।

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

অ্যাসেম্বলি লাইন শুরু করতে প্রস্তুত?

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