# निर्णय लिने: विद्यार्थी ग्रेड प्रोसेसर ## सिक्ने उद्देश्यहरू यस असाइनमेन्टमा, तपाईंले यस पाठबाट निर्णय लिने अवधारणाहरू अभ्यास गर्नेछौं। तपाईंले विद्यार्थीहरूको ग्रेड विभिन्न ग्रेडिङ प्रणालीबाट प्रोसेस गर्ने प्रोग्राम बनाउनु पर्नेछ। `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` एरेमा थप्नुहोस्। ### उपयोगी कोड प्रविधिहरू पाठबाट यी JavaScript अवधारणाहरू प्रयोग गर्नुहोस्: - **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) प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। यसको मूल भाषा मा रहेको दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।