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

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

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

ভূমিকা

সংখ্যা

জাভায় দুই ধরনের সংখ্যা আছে:

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

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

পাটিগণিত করা হয় সাধারণ গাণিতিক অপারেটর দিয়ে। সংখ্যা তুলনা করা যায় সাধারণ সংখ্যাসূচক তুলনা অপারেটর (যেমন 5 > 4 এবং 4 <= 5) এবং সমতা (==) ও অসমতা (!=) অপারেটর দিয়ে।

জাভায় দুই ধরনের সংখ্যাসূচক রূপান্তর আছে:

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

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

if-else স্টেটমেন্ট

if-then স্টেটমেন্ট

জাভার সবচেয়ে মৌলিক কন্ট্রোল ফ্লো স্টেটমেন্ট হলো if-then স্টেটমেন্ট। এই স্টেটমেন্ট দিয়ে কোডের একটি অংশ কেবল তখনই চালানো হয়, যখন একটি নির্দিষ্ট শর্ত true হয়। একটি if-then স্টেটমেন্ট if ক্লজ দিয়ে ডিফাইন করা হয়:

class Car {
    void drive() {
        // the "if" clause: the car needs to have fuel left to drive
        if (fuel > 0) {
            // the "then" clause: the car drives, consuming fuel
            fuel--;
        }
    }
}

উপরের উদাহরণে, গাড়ির জ্বালানি ফুরিয়ে গেলে Car.drive মেথড কল করলে কিছুই হবে না।

if-then-else স্টেটমেন্ট

if-then-else স্টেটমেন্ট এমন একটি বিকল্প এক্সিকিউশন পথ দেয়, যা ব্যবহার করা হয় যখন if ক্লজের শর্তের মান false হয়। এই বিকল্প এক্সিকিউশন পথটি একটি if ক্লজকে অনুসরণ করে এবং else ক্লজ দিয়ে ডিফাইন করা হয়:

class Car {
    void drive() {
        if (fuel > 0) {
            fuel--;
        } else {
            stop();
        }
    }
}

উপরের উদাহরণে, গাড়ির জ্বালানি ফুরিয়ে গেলে Car.drive মেথড কল করলে গাড়ি থামানোর জন্য আরেকটি মেথড কল হবে।

if-then-else স্টেটমেন্ট else if ক্লজ ব্যবহার করে একাধিক শর্তও সমর্থন করে:

class Car {
    void drive() {
        if (fuel > 5) {
            fuel--;
        } else if (fuel > 0) {
            turnOnFuelLight();
            fuel--;
        } else {
            stop();
        }
    }
}

উপরের উদাহরণে, জ্বালানি 5-এর কম বা সমান হলে গাড়ি চালালে গাড়িটি চলবে, তবে জ্বালানি লাইট জ্বলে উঠবে। জ্বালানি 0-এ পৌঁছালে গাড়িটি চলা বন্ধ করবে।

নির্দেশনা

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

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

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

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

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

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

CarsAssemble.productionRatePerHour(6)
// => 1193.4

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

2. প্রতি মিনিটে কতগুলো কার্যকর আইটেম উৎপাদিত হয় তা হিসাব করুন

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

CarsAssemble.workingItemsPerMinute(6)
// => 19

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

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

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

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