# সিদ্ধান্ত নেওয়া: ছাত্রদের গ্রেড প্রসেসর ## শেখার লক্ষ্য এই অ্যাসাইনমেন্টে, আপনি এই পাঠের সিদ্ধান্ত নেওয়ার ধারণাগুলি অনুশীলন করবেন একটি প্রোগ্রাম তৈরি করে যা বিভিন্ন গ্রেডিং সিস্টেম থেকে ছাত্রদের গ্রেড প্রসেস করে। আপনি `if...else` স্টেটমেন্ট, তুলনা অপারেটর এবং লজিক্যাল অপারেটর ব্যবহার করবেন নির্ধারণ করতে কোন ছাত্ররা তাদের কোর্সে পাস করছে। ## চ্যালেঞ্জ আপনি একটি স্কুলে কাজ করেন যা সম্প্রতি অন্য একটি প্রতিষ্ঠানের সাথে একীভূত হয়েছে। এখন আপনাকে দুটি সম্পূর্ণ ভিন্ন গ্রেডিং সিস্টেম থেকে ছাত্রদের গ্রেড প্রসেস করতে হবে এবং নির্ধারণ করতে হবে কোন ছাত্ররা পাস করছে। এটি শর্তযুক্ত লজিক অনুশীলনের জন্য একটি চমৎকার সুযোগ! ### গ্রেডিং সিস্টেমগুলি বোঝা #### প্রথম গ্রেডিং সিস্টেম (সংখ্যাসূচক) - গ্রেডগুলি ১-৫ সংখ্যার মধ্যে দেওয়া হয় - **পাসিং গ্রেড**: ৩ এবং তার বেশি (৩, ৪, বা ৫) - **ফেল গ্রেড**: ৩ এর নিচে (১ বা ২) #### দ্বিতীয় গ্রেডিং সিস্টেম (লেটার গ্রেড) - গ্রেডগুলি লেটার ব্যবহার করে: `A`, `A-`, `B`, `B-`, `C`, `C-` - **পাসিং গ্রেড**: `A`, `A-`, `B`, `B-`, `C`, `C-` (উল্লিখিত সব গ্রেড পাসিং) - **নোট**: এই সিস্টেমে ফেল গ্রেড যেমন `D` বা `F` অন্তর্ভুক্ত নেই ### আপনার কাজ নিম্নলিখিত অ্যারে `allStudents` যা সমস্ত ছাত্র এবং তাদের গ্রেডকে উপস্থাপন করে, একটি নতুন অ্যারে `studentsWhoPass` তৈরি করুন যা সমস্ত ছাত্রদের অন্তর্ভুক্ত করবে যারা তাদের নিজ নিজ গ্রেডিং সিস্টেম অনুযায়ী পাস করেছে। ```javascript let allStudents = [ 'A', // Letter grade - passing 'B-', // Letter grade - passing 1, // Numeric grade - failing 4, // Numeric grade - passing 5, // Numeric grade - passing 2 // Numeric grade - failing ]; let studentsWhoPass = []; ``` ### ধাপে ধাপে পদ্ধতি 1. **একটি লুপ সেট আপ করুন** যা `allStudents` অ্যারের প্রতিটি গ্রেডের মধ্য দিয়ে যাবে 2. **গ্রেডের ধরন পরীক্ষা করুন** (এটি সংখ্যা না স্ট্রিং?) 3. **উপযুক্ত গ্রেডিং সিস্টেমের নিয়ম প্রয়োগ করুন**: - সংখ্যার জন্য: পরীক্ষা করুন গ্রেড >= ৩ - স্ট্রিংয়ের জন্য: পরীক্ষা করুন এটি বৈধ পাসিং লেটার গ্রেডগুলির মধ্যে একটি কিনা 4. **পাসিং গ্রেডগুলি** নতুন অ্যারে `studentsWhoPass` এ যোগ করুন ### সহায়ক কোড কৌশল এই পাঠ থেকে নিম্নলিখিত জাভাস্ক্রিপ্ট ধারণাগুলি ব্যবহার করুন: - **typeof অপারেটর**: `typeof grade === 'number'` ব্যবহার করে পরীক্ষা করুন এটি সংখ্যাসূচক গ্রেড কিনা - **তুলনা অপারেটর**: `>=` ব্যবহার করে সংখ্যাসূচক গ্রেড তুলনা করুন - **লজিক্যাল অপারেটর**: `||` ব্যবহার করে একাধিক লেটার গ্রেড শর্ত পরীক্ষা করুন - **if...else স্টেটমেন্ট**: বিভিন্ন গ্রেডিং সিস্টেম পরিচালনা করতে - **অ্যারে মেথড**: `.push()` ব্যবহার করে পাসিং গ্রেডগুলি নতুন অ্যারে যোগ করুন ### প্রত্যাশিত আউটপুট যখন আপনি আপনার প্রোগ্রাম চালাবেন, `studentsWhoPass` এর মধ্যে থাকবে: `['A', 'B-', 4, 5]` **কেন এই গ্রেডগুলি পাস করেছে:** - `'A'` এবং `'B-'` বৈধ লেটার গ্রেড (এই সিস্টেমে সমস্ত লেটার গ্রেড পাসিং) - `4` এবং `5` সংখ্যাসূচক গ্রেড >= ৩ - `1` এবং `2` ফেল করেছে কারণ এগুলি সংখ্যাসূচক গ্রেড < ৩ ## আপনার সমাধান পরীক্ষা করা আপনার কোডটি বিভিন্ন পরিস্থিতিতে পরীক্ষা করুন: ```javascript // Test with different grade combinations let testGrades1 = ['A-', 3, 'C', 1, 'B']; let testGrades2 = [5, 'A', 2, 'C-', 4]; // Your solution should work with any combination of valid grades ``` ## বোনাস চ্যালেঞ্জ মৌলিক অ্যাসাইনমেন্ট সম্পন্ন করার পরে, এই এক্সটেনশনগুলি চেষ্টা করুন: 1. **ভ্যালিডেশন যোগ করুন**: অকার্যকর গ্রেড পরীক্ষা করুন (যেমন নেগেটিভ সংখ্যা বা অকার্যকর লেটার) 2. **পরিসংখ্যান গণনা করুন**: কতজন ছাত্র পাস করেছে বনাম ফেল করেছে তা গণনা করুন 3. **গ্রেড রূপান্তর**: সমস্ত গ্রেড একটি একক সংখ্যাসূচক সিস্টেমে রূপান্তর করুন (A=5, B=4, C=3, ইত্যাদি) ## রুব্রিক | মানদণ্ড | উৎকৃষ্ট (৪) | দক্ষ (৩) | উন্নয়নশীল (২) | প্রাথমিক (১) | |----------|---------------|----------------|----------------|---------------| | **কার্যকারিতা** | প্রোগ্রাম সঠিকভাবে উভয় সিস্টেম থেকে সমস্ত পাসিং গ্রেড সনাক্ত করে | প্রোগ্রাম সামান্য সমস্যা বা প্রান্তিক ক্ষেত্রে কাজ করে | প্রোগ্রাম আংশিকভাবে কাজ করে কিন্তু লজিক্যাল ত্রুটি রয়েছে | প্রোগ্রামে উল্লেখযোগ্য ত্রুটি রয়েছে বা এটি চালানো যায় না | | **কোডের গঠন** | পরিষ্কার, সুসংগঠিত কোড যথাযথ if...else লজিক সহ | ভালো গঠন যথাযথ শর্তযুক্ত স্টেটমেন্ট সহ | গ্রহণযোগ্য গঠন কিছু সংগঠনের সমস্যা সহ | দুর্বল গঠন, লজিক অনুসরণ করা কঠিন | | **ধারণার ব্যবহার** | তুলনা অপারেটর, লজিক্যাল অপারেটর এবং শর্তযুক্ত স্টেটমেন্ট কার্যকরভাবে ব্যবহার করা হয়েছে | পাঠের ধারণাগুলির ভালো ব্যবহার সামান্য ফাঁক সহ | পাঠের ধারণাগুলির কিছু ব্যবহার কিন্তু গুরুত্বপূর্ণ উপাদান অনুপস্থিত | পাঠের ধারণাগুলির সীমিত ব্যবহার | | **সমস্যা সমাধান** | সমস্যার স্পষ্ট বোঝাপড়া এবং চমৎকার সমাধান পদ্ধতি প্রদর্শন করে | ভালো সমস্যা সমাধানের পদ্ধতি শক্তিশালী লজিক সহ | গ্রহণযোগ্য সমস্যা সমাধান কিছু বিভ্রান্তি সহ | অস্পষ্ট পদ্ধতি, বোঝাপড়া প্রদর্শন করে না | ## জমা দেওয়ার নির্দেশিকা 1. **আপনার কোডটি** প্রদত্ত উদাহরণগুলির সাথে ভালোভাবে পরীক্ষা করুন 2. **কমেন্ট যোগ করুন** আপনার লজিক ব্যাখ্যা করতে, বিশেষত শর্তযুক্ত স্টেটমেন্টগুলির জন্য 3. **আউটপুট যাচাই করুন** প্রত্যাশিত ফলাফলের সাথে মিলে: `['A', 'B-', 4, 5]` 4. **প্রান্তিক ক্ষেত্রে বিবেচনা করুন** যেমন খালি অ্যারে বা অপ্রত্যাশিত ডেটা টাইপ > 💡 **প্রো টিপ**: সহজভাবে শুরু করুন! প্রথমে মৌলিক কার্যকারিতা কাজ করান, তারপর আরও উন্নত বৈশিষ্ট্য যোগ করুন। মনে রাখুন, লক্ষ্য হলো এই পাঠে শেখা সিদ্ধান্ত নেওয়ার লজিক অনুশীলন করা। --- **অস্বীকৃতি**: এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে সচেতন থাকুন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়বদ্ধ নই।