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

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

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

ভূমিকা

Clojure-এ সংখ্যার মধ্যে রয়েছে:

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

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

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

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

(cond (= x 5) "Expression to evaluate when x equals 5"
      (> x 7) "Expression to evaluate when x is greater than 7"
      :else   "Expression to evaluate in all other cases")

নোট

কোন কোন ক্ষেত্রে =-এর বদলে == অপারেটরটিই বেশি উপযুক্ত হতে পারে, যেখানে সংখ্যাগুলোর সঠিক টাইপ নির্বিশেষে তুলনা করা দরকার। যেমন,

(== 5.0 5) ;; true as both numbers are equal when type is ignored
(= 5.0 5) ;; false as the types of numbers are also taken into account here i.e. float is different from int

সমতা নিয়ে Clojure গাইডে, বিশেষ করে সংখ্যা অংশে আরও বিস্তারিত আলোচনা আছে।

নির্দেশনা

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

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

  • 0: 0% সফলতার হার।
  • 1 থেকে 4: 100% সফলতার হার।
  • 5 থেকে 8: 90% সফলতার হার।
  • 9: 80% সফলতার হার।
  • 10: 77% সফলতার হার।

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

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

অ্যাসেম্বলি লাইনের সফলতার হার বিবেচনায় নিয়ে প্রতি ঘণ্টায় উৎপাদনের হার হিসাব করতে production-rate ফাংশনটি ইমপ্লিমেন্ট করুন:

(production-rate 6)
;;=> 1193.4

লক্ষ্য করুন, রিটার্ন করা মানটি একটি double।

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

প্রতি মিনিটে কতগুলো কার্যকর গাড়ি উৎপাদিত হয় তা হিসাব করতে working-items ফাংশনটি ইমপ্লিমেন্ট করুন:

(working-items 6)
;;=> 19

লক্ষ্য করুন, রিটার্ন করা মানটি একটি int।

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

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

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