ইন্টারেক্টিভ গ্রেড ক্যালকুলেটর

এই অ্যাপ্লিকেশনটি জাভাস্ক্রিপ্ট ব্যবহার করে শিক্ষার্থীদের নম্বর থেকে গ্রেড নির্ধারণের প্রক্রিয়াটি প্রদর্শন করে। আপনি ইন্টারেক্টিভভাবে দেখতে পারবেন কিভাবে ডেটা প্রসেস করা হয় এবং বিভিন্ন কোডিং পদ্ধতির মধ্যে পার্থক্য কী।

ইন্টারেক্টিভ ডেমো

প্রাথমিক ডেটা (গণনার আগে)

ফলাফল (গণনার পরে)

গ্রেড গণনা করতে উপরের বাটনে ক্লিক করুন।

গ্রেড বন্টন বিশ্লেষণ


বিকল্প কোডিং পদ্ধতি

একই কাজ করার জন্য জাভাস্ক্রিপ্টে একাধিক উপায় রয়েছে। নিচে তিনটি জনপ্রিয় পদ্ধতির কোড এবং তাদের সুবিধা আলোচনা করা হলো।

এটি জাভাস্ক্রিপ্টের সবচেয়ে মৌলিক এবং পুরনো লুপ। এটি অ্যারের প্রতিটি উপাদানের উপর দিয়ে ক্রমানুসারে কাজ করে। নতুন ডেভেলপারদের জন্য এটি বোঝা সহজ।

for (let i = 0; i < students.length; i++) {
  let student = students[i];
  let grade;

  if (student.marks >= 80) {
    grade = 'A+';
  } else if (student.marks >= 70) {
    grade = 'A';
  } else if (student.marks >= 60) {
    grade = 'A-';
  } else if (student.marks >= 50) {
    grade = 'B';
  } else if (student.marks >= 40) {
    grade = 'C';
  } else {
    grade = 'Fail';
  }

  student.grade = grade;
}

`forEach()` একটি আধুনিক এবং সংক্ষিপ্ত পদ্ধতি। এটি কোডকে আরও পাঠযোগ্য করে তোলে। এটি মূল অ্যারের প্রতিটি উপাদানের উপর একটি ফাংশন চালায় কিন্তু কোনো নতুন অ্যারে তৈরি করে না।

students.forEach(student => {
    let grade;
    if (student.marks >= 80) {
        grade = 'A+';
    } else if (student.marks >= 70) {
        grade = 'A';
    } else if (student.marks >= 60) {
        grade = 'A-';
    } else if (student.marks >= 50) {
        grade = 'B';
    } else if (student.marks >= 40) {
        grade = 'C';
    } else {
        grade = 'Fail';
    }
    student.grade = grade;
});

`map()` পদ্ধতিটি সবচেয়ে কার্যকর বলে মনে করা হয় কারণ এটি মূল অ্যারে পরিবর্তন না করে একটি নতুন অ্যারে তৈরি করে। এটি ডেটার অপরিবর্তনীয়তা (immutability) বজায় রাখে, যা একটি ভালো প্রোগ্রামিং অভ্যাস।

const newStudents = students.map(student => {
    let grade;
    if (student.marks >= 80) {
        grade = 'A+';
    } else if (student.marks >= 70) {
        grade = 'A';
    } else if (student.marks >= 60) {
        grade = 'A-';
    } else if (student.marks >= 50) {
        grade = 'B';
    } else if (student.marks >= 40) {
        grade = 'C';
    } else {
        grade = 'Fail';
    }
    return { ...student, grade };
});