ট্র্যাক
/
C#
C#
/
অনুশীলনী
/
গাড়ি, অ্যাসেম্বল!
গাড়ি, অ্যাসেম্বল!

গাড়ি, অ্যাসেম্বল!

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

ভূমিকা

সংখ্যা

C#-এ দুই ধরনের সংখ্যা আছে:

  • ইন্টিজার: দশমিক বিন্দুর পেছনে কোনো অঙ্ক নেই এমন সংখ্যা (পূর্ণসংখ্যা)। উদাহরণ হলো -6, 0, 1, 25, 976 এবং 500000।
  • ফ্লোটিং-পয়েন্ট সংখ্যা: দশমিক বিন্দুর পেছনে শূন্য বা তার বেশি অঙ্ক থাকে এমন সংখ্যা। উদাহরণ হলো -2.4, 0.1, 3.14, 16.984025 এবং 1024.0।

C#-এর সবচেয়ে কমন দুটি নাম্বার টাইপ হলো int এবং double। একটি int হলো ৩২-বিট ইন্টিজার আর একটি double হলো ৬৪-বিট ফ্লোটিং-পয়েন্ট সংখ্যা।

গাণিতিক কাজ করা হয় স্ট্যান্ডার্ড গাণিতিক অপারেটর দিয়ে। সংখ্যা তুলনা করা যায় স্ট্যান্ডার্ড সাংখ্যিক তুলনা অপারেটর এবং সমতা (==) ও অসমতা (!=) অপারেটর দিয়ে।

C#-এ দুই ধরনের সাংখ্যিক রূপান্তর আছে:

  1. ইমপ্লিসিট কনভার্সন: কোনো ডেটা হারাবে না এবং অতিরিক্ত কোনো সিনট্যাক্সের দরকার হয় না।
  2. এক্সপ্লিসিট কনভার্সন: ডেটা হারাতে পারে এবং কাস্ট-এর আকারে অতিরিক্ত সিনট্যাক্সের দরকার হয়।

যেহেতু একটি int-এর প্রিসিশন একটি double-এর চেয়ে কম, তাই একটি int থেকে double-এ রূপান্তর নিরাপদ এবং সেজন্যই সেটি একটি ইমপ্লিসিট কনভার্সন। তবে একটি double থেকে int-এ রূপান্তর করলে ডেটা হারাতে পারে, তাই এর জন্য দরকার হয় একটি এক্সপ্লিসিট কনভার্সন।

int softCool = 1358938113;
double notLost = 4.8151623;

// implicit cast: no loss of information
double macDebug = softCool;         // 1358938113.0

// explicit cast: possible loss of information 
int somethingLost = (int)notLost;   // 4

if স্টেটমেন্ট

এই অনুশীলনীতে আপনাকে শর্তসাপেক্ষে লজিক চালাতে হবে। C#-এ এটি করার সবচেয়ে কমন উপায় হলো একটি if/else স্টেটমেন্ট ব্যবহার করা:

int x = 6;

if (x == 5)
{
    // Execute logic if x equals 5
}
else if (x > 7)
{
    // Execute logic if x greater than 7
}
else
{
    // Execute logic in all other cases
}

একটি if স্টেটমেন্টের শর্ত অবশ্যই bool টাইপের হতে হবে। C#-এ truthy মানের কোনো ধারণা নেই।

নির্দেশনা

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

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

আপনার সামনে তিনটি কাজ আছে।

1. সফলতার হার হিসাব করুন

নির্দিষ্ট একটি গতির জন্য ত্রুটি ছাড়া একটি আইটেম তৈরি হওয়ার অনুপাত হিসাব করতে (static) AssemblyLine.SuccessRate() মেথডটি ইমপ্লিমেন্ট করুন। নিচের টেবিলটি দেখায় কীভাবে গতি সফলতার হারকে প্রভাবিত করে:

  • 0: ০% সফলতার হার।
  • 1 থেকে 4: ১০০% সফলতার হার।
  • 5 থেকে 8: ৯০% সফলতার হার।
  • 9: ৮০% সফলতার হার।
  • 10: ৭৭% সফলতার হার।
AssemblyLine.SuccessRate(10)
// => 0.77

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

অ্যাসেম্বলি লাইনের সফলতার হার বিবেচনায় নিয়ে প্রতি ঘণ্টায় তার উৎপাদনের হার হিসাব করতে (static) AssemblyLine.ProductionRatePerHour() মেথডটি ইমপ্লিমেন্ট করুন:

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

মনে রাখবেন, রিটার্ন করা মানটি একটি double.

3. প্রতি মিনিটে উৎপাদিত কার্যকর আইটেমের সংখ্যা হিসাব করুন

প্রতি মিনিটে কতগুলো কার্যকর গাড়ি উৎপাদিত হয় তা হিসাব করতে (static) AssemblyLine.WorkingItemsPerMinute() মেথডটি ইমপ্লিমেন্ট করুন:

AssemblyLine.WorkingItemsPerMinute(6)
// => 19

মনে রাখবেন, রিটার্ন করা মানটি একটি int.

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

গাড়ি, অ্যাসেম্বল! শুরু করতে প্রস্তুত?

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