Skip to main content

पाठ 3: सशर्त कथन

पिछले पाठ में, आपने सीखा कि किसी प्रोजेक्ट में ऑप्टिकल सेंसर से डेटा का उपयोग करके डिस्क को रंग के आधार पर कैसे सॉर्ट किया जाए। इस पाठ में, आप VEXcode में विकल्पों का पता लगाने के लिए जो कुछ भी सीखा है, उसे आगे बढ़ाएंगे, जो परियोजना को निर्णय लेने में सक्षम बनाता है, चाहे ऑप्टिकल सेंसर द्वारा कोई भी रंग पता लगाया जाए। आप इनके बारे में जानेंगे: 

  • औद्योगिक परिवेश में निर्णय लेने की प्रक्रिया को अनुकूलित करना क्यों महत्वपूर्ण है?
  • यदि तो,यदि तो अन्यथा, औरअन्यथा यदिब्लॉकों के बीच का अंतर।

एकाधिक शर्तों की जाँच करना

पिछले पाठ में आपने एक प्रोजेक्ट बनाया था जो डिस्क को रंग के आधार पर लाल पैलेट या हरे पैलेट में वर्गीकृत कर सकता था। यद्यपि यह प्रभावी है, लेकिन परियोजना एक समय में केवल एक डिस्क को ही सॉर्ट कर सकती है। किसी कारखाने में, कई वस्तुओं को बार-बार छांटने और पैलेट करने की आवश्यकता होती है। इसे प्रभावी ढंग से करने के लिए, 6-अक्ष भुजा को बार-बार यह निर्णय लेने में सक्षम होना चाहिए कि वस्तुओं को कैसे स्थानांतरित किया जाए, या क्या मानवीय हस्तक्षेप की आवश्यकता है। 6-अक्ष भुजा पाठ्यक्रम के परिचय में आपने जिन क्यूब्स को स्थानांतरित किया था, उन पर विचार करें।ऑप्टिकल सेंसर के ऊपर नीले घन को पकड़े हुए 6-अक्षीय भुजा का क्लोजअप।

क्या होगा यदि लोडिंग क्षेत्र में एक नीला क्यूब हो? पिछले पाठ से परियोजना में क्या होगा? औद्योगिक परिवेश में, सभी संभावित स्थितियों पर विचार किया जाना आवश्यक है। यदि कोई गलत वस्तु छांटने वाली वस्तुओं में मिल जाती है, तो यह सुनिश्चित करने के लिए कि कार्य कक्ष और उसके आसपास के श्रमिक सुरक्षित रहें तथा प्रभावी ढंग से कार्य करते रहें, मानवीय हस्तक्षेप की आवश्यकता होगी।

अनुक्रमिकयदि तोब्लॉक

पिछले पाठ में, आपने दो अलग-अलग स्थितियों की एक के बाद एक जांच करने के लिए क्रम में दोयदि तोब्लॉकों का उपयोग किया था, जो अनिवार्य रूप से परियोजना के भीतर दो प्रश्न पूछ रहे थे।

उदाहरण VEXcode परियोजना जो पिछले पाठ में चुनौती को पूरा करेगी। टिप्पणी पर लाल रंग का हाइलाइट है जिसमें लिखा है डिस्क को सही पैलेट पर ले जाएं और उस टिप्पणी के नीचे दो यदि तो ब्लॉक हैं। लाल हाइलाइट बॉक्स में ब्लॉक इस प्रकार हैं: यदि ऑप्टिकल 5 लाल का पता लगाता है तो आर्म 10 को स्थिति x 169 y 150 z 100 पर ले जाएं, और यदि ऑप्टिकल 5 हरा का पता लगाता है तो आर्म 10 को स्थिति x 172 y 1 z 100 पर ले जाएं।

पहले, वस्तु लाल है?, फिर, क्या वस्तु हरी है?. प्रत्येक बार प्रोजेक्ट चलाने पर प्रत्येक स्थिति की जांच की जाती है, चाहे ऑप्टिकल सेंसर द्वारा क्या पता लगाया गया हो। यद्यपि यह संरचना आपको एक समय में एक डिस्क को प्रभावी ढंग से सॉर्ट करने में सक्षम बनाती है, लेकिन ऐसा करने का यह सबसे कुशल तरीका नहीं है। लाल डिस्क को छांटा जा सकता है, लेकिन ऑप्टिकल सेंसर पर्यावरण में किसी अन्य चीज से हरे रंग का भी पता लगा सकता है, और इसके विपरीत भी। ऐसी वस्तु पर भी कोई विचार नहीं किया जाता जो न तो लाल हो और न ही हरी, जैसे कि कोई अप्रत्याशित वस्तु जो सुरक्षा संबंधी समस्या उत्पन्न कर सकती है।

परियोजना प्रवाह छवियाँ

इस पाठ में, VEXcode परियोजनाओं के प्रवाह को समझाने वाली छवियां साझा की गई हैं। आप पाठ के माध्यम से आगे बढ़ते हुए इन छवियों को अपनी इंजीनियरिंग नोटबुक में पुनः बना सकते हैं। 

अपनी नोटबुक में आपके लिए सबसे अच्छा काम करने वाले विज़ुअलाइज़ेशन बनाने में मदद के लिए Google स्लाइड या Microsoft PowerPoint में तीर, बॉक्स या फ़्लोचार्ट जैसे टूल का उपयोग करें।

गूगल स्लाइड में लाइन टूलबॉक्स खुला है। टूलबॉक्स लाइन, एरो, एल्बो कनेक्टर, कर्व्ड कनेक्टर, कर्व, पॉलीलाइन और स्क्रिबल के विकल्प दिखाता है।

 

अनुक्रमिकयदि तो अन्यथाब्लॉक

एक अलग ब्लॉक है जिसका उपयोग हमें लाल और हरे रंग की स्थितियों की जांच करने और एक अलग रंग के लिए जिम्मेदार बनाने में सक्षम बनाने के लिए किया जा सकता है। यदि तो अन्यथाब्लॉक एक C ब्लॉक है जो रिपोर्ट किए गए बूलियन मान के आधार पर या तोयदिशाखा याअन्यथाशाखा के अंदर ब्लॉक चलाता है।

प्रोजेक्ट प्रवाह को दर्शाने के लिए लाल और हरे तीरों के साथ if then else ब्लॉक का उपयोग करते हुए कोड का स्निपेट। परियोजना में लिखा है: डिस्क को सही पैलेट पर ले जाएं, यदि ऑप्टिकल 5 लाल रंग का पता लगाता है तो आर्म 10 को स्थिति x 169 y 150 z 100 पर ले जाएं अन्यथा सिग्नल टावर 6 को नीले और ब्लिंकिंग पर सेट करें, आर्म 10 को नियंत्रित स्टॉप पर सेट करें। ध्यान दें कि else के बाद के दोनों कमांड if then else ब्लॉक की else शाखा के अंतर्गत आते हैं। एक हरा तीर और पाठ पढ़ने वाला ऑप्टिकल यदि तो स्थिति ब्लॉक के लिए कदम से लाल सच बिंदुओं का पता लगाता है। पाठ पढ़ने वाले ऑप्टिकल के साथ एक लाल तीर, if then से else शाखा की शुरुआत में सेट सिग्नल टावर ब्लॉक तक लाल झूठे बिंदुओं का पता लगाता है।

यदिशाखा हो तो या यदि शाखा हो तोचलाने के बाद, परियोजना स्टैक में अगले ब्लॉक पर चली जाएगी। शाखाओं को अधिक दृश्यमान बनाने के लिएIf then elseब्लॉकों का प्रोजेक्ट प्रवाह भी दिखाया जा सकता है।

पहले की तरह ही परियोजना प्रवाह, लेकिन स्पष्टता के लिए if शाखा और else शाखा को अलग कर दिया गया है। बाईं ओर लाल रंग का पाठ है जिसमें लिखा है 'लाल नहीं पाया गया झूठा अन्यथा', तथा एक तीर सेट सिग्नल टावर और सेट नियंत्रित स्टॉप ब्लॉक की ओर इशारा कर रहा है। दाईं ओर लाल रंग में लिखा है 'सच', फिर एक तीर है जो 'स्थान पर जाने के लिए' ब्लॉक की ओर इशारा करता है। बायीं और दायीं दोनों ओर नारंगी तीर हैं जो यह संकेत देते हैं कि वे if then else ब्लॉक के नीचे परियोजना को जारी रखेंगे।

ध्यान दें कि इन उदाहरणों में, elseशाखा का उपयोग किसी वस्तु के न तो लाल और न ही हरे होने की स्थिति को संभालने के लिए किया जाता है। ऐसी स्थिति में मानवीय हस्तक्षेप की आवश्यकता होगी। पहले आपने पढ़ा था कि सिग्नल टॉवर पर नीली रोशनी का उपयोग मानवीय हस्तक्षेप की आवश्यकता को इंगित करने के लिए किया जाता है। इसके अतिरिक्त, नियंत्रित स्टॉप 6-एक्सिस आर्म की गति को रोक देगा ताकि लोगों और मशीनरी को सुरक्षित रखा जा सके। एक सेट सिग्नल टावरब्लॉक और एकसेट कंट्रोल स्टॉपब्लॉक कोअन्यथाशाखा में जोड़ा जा सकता है, ताकि कोई वस्तु जो लाल या हरी नहीं थी, इन सुरक्षा सुविधाओं को ट्रिगर करेगी।

यदि तो अन्यथा ब्लॉक की अन्यथा शाखा की सामग्री को लाल बॉक्स से दर्शाया गया है। इसमें सेट सिग्नल टावर ब्लॉक और आर्म नियंत्रित स्टॉप ब्लॉक शामिल हैं।

अब तक प्राप्त चित्रों में केवल यह दिखाया गया है कि वस्तु के लाल होने की स्थिति से कैसे निपटा जाए। वस्तु के हरे होने की स्थिति की जांच करने के लिए एक और यदि तो अन्यथाआवश्यकता है।

वही वेक्सकोड परियोजना जिसमें पहले के ठीक बाद दूसरा if then else ब्लॉक जोड़ा गया है। यह ब्लॉक और इसके अंतर्गत आने वाले ब्लॉक इस प्रकार हैं: यदि ऑप्टिकल 5 हरा रंग पहचानता है तो भुजा 10 को x 172 y 1 z 100 स्थिति में ले जाएं, अन्यथा सिग्नल टावर 6 को नीला और चमकता हुआ सेट करें, भुजा 10 को नियंत्रण बंद पर सेट करें।

आइये इस संरचना के साथ परियोजना प्रवाह के बारे में सोचें। प्रत्येक बार जब परियोजना चलाई जाएगी, तो अनेक शाखाएं चलेंगी, चाहे ऑप्टिकल सेंसर द्वारा कोई भी रंग पहचाना जाए।

दो if then else ब्लॉकों के लिए प्रोजेक्ट प्रवाह छवि। शीर्ष आधा भाग पहले से समान परियोजना प्रवाह को दर्शाता है, फिर एक नारंगी तीर को पहले if then else ब्लॉक से दूसरे ब्लॉक की ओर बढ़ते हुए देखा जा सकता है। दूसरे if then else ब्लॉक में हरे तीर और बगल में पाठ है जिसमें लिखा है: optical detects green true. तीर if then से if then शाखा के अंदर move to position ब्लॉक की ओर इंगित करता है। उसी बिंदु से शुरू होकर लाल रंग का पाठ और एक लाल तीर है जिस पर लिखा है: ऑप्टिकल हरे रंग के झूठ का पता लगाता है। तीर if then से else शाखा में सेट सिग्नल टावर ब्लॉक की ओर इंगित करता है।

आइये एक लाल डिस्क के उदाहरण से इस बारे में सोचें। यदि ऑप्टिकल सेंसर लाल रंग का पता लगाता है, तो पहलेयदि तो अन्यथाब्लॉक की स्थिति सत्य के रूप में रिपोर्ट करेगी। यदिशाखा के अंदर का ब्लॉक चलेगा, 6-अक्ष भुजा को लाल पैलेट पर ले जाएगा। हालाँकि, दूसरेIf then elseब्लॉक के अंदर की स्थिति झूठी रिपोर्ट करेगी। इसका अर्थ यह है कि इसकीअन्यथाशाखा के अंदर का ब्लॉक चलेगा, जिससे 6-अक्षीय भुजा नियंत्रित स्टॉप पर आ जाएगी और सिग्नल टॉवर पर नीला चमकेगा। चूंकि 6-अक्षीय भुजा नियंत्रित रोक स्थिति में होगी, इसलिए परियोजना में कोई अन्य ब्लॉक नहीं चल सकेगा, और जब तक इसका समाधान नहीं हो जाता, तब तक सभी परिचालन बंद रहेंगे। 

ऑप्टिकल सेंसर द्वारा लाल रंग का पता लगाने के उदाहरण के माध्यम से परियोजना प्रवाह। परियोजना के किनारे पर नोट्स और तीर ऑप्टिकल लाल सच का पता लगाता है, तो पहले अगर तो शाखा में ब्लॉक स्थिति के लिए कदम चलेगा। नीचे लिखा है: else शाखा नहीं चलेगी क्योंकि if then शाखा चलाई गई थी। एक तीर दूसरे if then else ब्लॉक की ओर इशारा करता है। इसके बगल में लिखा है: ऑप्टिकल हरे रंग के झूठे को पहचानता है और लाल तीर को दूसरे if then else ब्लॉक की else शाखा की ओर इंगित करता है। एक नारंगी तीर सेट आर्म से कंट्रोल स्टॉप ब्लॉक तक जब आर्म 10 कंट्रोल स्टॉप हैट ब्लॉक की ओर इशारा करता है। नीचे लिखा है कि नियंत्रण रोक ट्रिगर हो जाएगा, तथा नियंत्रण रोके गए हैट ब्लॉक से जुड़े ब्लॉकों को छोड़कर सभी ब्लॉकों को रोक दिया जाएगा।

हालांकि अब हम एक अप्रत्याशित वस्तु (जैसे कि एक नीला क्यूब) का हिसाब रख सकते हैं, लेकिन 6-एक्सिस आर्म कभी भी डिस्क को पैलेट पर छोड़ने के प्रोजेक्ट के बिंदु तक नहीं पहुंच पाएगा। लाल और हरे रंग की स्थितियों को एक के बाद एक जांचने के बजाय, यह जांचने का एक तरीका है कि क्या कोई वस्तु हरी है या नहीं, केवलयायदि वस्तु लाल नहीं है।   

नेस्टेडयदि तो अन्यथाब्लॉक 

यदि तो अन्यथाब्लॉक की प्रत्येक शाखा अपने भीतर अन्य C ब्लॉक को स्वीकार कर सकती है। इसे 'घोंसला बनाना' कहा जाता है। इसका मतलब यह है कि दूसरेIf then elseब्लॉक को पहले वाले कीelseशाखा के भीतर इस तरह से नेस्ट किया जा सकता है।उपरोक्त के समान ही परियोजना, लेकिन पहले if then else ब्लॉक की else शाखा के अंदर दूसरा if then else ब्लॉक। एक लाल बॉक्स दूसरे if then else के चारों ओर है जो पहले if then else ब्लॉक की else शाखा में स्थित है।

अब ऑप्टिकल सेंसर द्वारा हरे रंग का पता लगाने की स्थिति की जांच केवल तभी की जाएगी जब पिछली स्थिति (ऑप्टिकल सेंसर द्वारा लाल रंग का पता लगाना) गलत रिपोर्ट करेगी। इसलिए जब ऑप्टिकल सेंसर लाल रंग का पता लगाता है, तो केवल पहली(यदिशाखा ही चलेगी, जिससे डिस्क लाल पैलेट के ऊपर चली जाएगी। 

परियोजना का निकट दृश्य, जिसमें प्रथम if then else ब्लॉक की if then शाखा में move to position ब्लॉक को लाल बॉक्स के साथ दर्शाया गया है।

यदि ऑप्टिकल सेंसर हरे रंग का पता लगाता है, तो पहलीयदिशाखा (ऑप्टिकल लाल का पता लगाता है) की स्थिति गलत रिपोर्ट करेगी, और इसलिएअन्यथाशाखा चलेगी। नेस्टेड If then elseब्लॉक की स्थिति की जांच यह देखने के लिए की जाएगी कि क्या ऑप्टिकल सेंसर हरे रंग का पता लगाता है। वह स्थिति सत्य के रूप में रिपोर्ट होगी, इसलिए दूसरीयदिशाखा के अंदर का ब्लॉक चलेगा, डिस्क को हरे रंग के पैलेट पर ले जाएगा। 

यदि ऑप्टिकल सेंसर द्वारा न तो लाल और न ही हरा का पता लगाया गया (जैसे कि नीले क्यूब को उठाए जाने के मामले में), तो दोनों ही स्थितियां गलत बताई जाएंगी, और इसलिए नेस्टेडयदि तब अन्यथाब्लॉक कीअन्यथाशाखा चलेगी, जिससे एक नियंत्रित स्टॉप सक्रिय हो जाएगा और श्रमिकों को मानवीय हस्तक्षेप की आवश्यकता के बारे में सचेत किया जाएगा। इन परियोजना प्रवाहों को प्रवाह चार्ट के रूप में भी देखा जा सकता है, जैसा कि यहां देखा गया है।

एक परियोजना के प्रवाह को समझाने वाला आरेख. सबसे ऊपर यह प्रश्न है कि क्या ऑप्टिकल लाल रंग का पता लगाता है? एक हरे रंग की रेखा बाईं ओर जाती है और कहती है कि लाल पैलेट के ऊपर जाएं, फिर वहां से एक नारंगी रेखा नीचे आती है और कहती है कि डिस्क को सही पैलेट पर रखें। मूल प्रश्न से एक लाल रेखा निकलती है और कहती है कि गलत। इसके बाद एक और प्रश्न आता है: क्या ऑप्टिकल हरा रंग पहचानता है? पुनः दाईं ओर की हरी रेखा सत्य कहती है और हरे रंग के पैलेट के ऊपर चली जाती है। यह नारंगी रेखा के साथ उसी बॉक्स से जुड़ता है, जिस पर दूसरी हरी रेखा है, जो कहती है कि डिस्क को सही पैलेट पर रखें। दाईं ओर लाल रेखा है जो झूठा बताती है और सिग्नल टावर को नीले रंग में चमकने और ट्रिगर नियंत्रित स्टॉप पर सेट करती है।

नेस्टेडयदि तो अन्यथाब्लॉकप्रश्नों की कैस्केडिंग सूची के रूप में देखा जा सकता है। यहां प्रश्न इस प्रकार हैं: 

  1. क्या वस्तु लाल है? 
    1. हाँ? लाल पट्टी से हट जाओ और सवाल पूछना बंद करो।
    2. नहीं? दूसरा प्रश्न पूछें. 
      1. क्या वस्तु हरी है?
        1. हाँ? हरे रंग की पट्टी से हट जाओ और सवाल पूछना बंद करो।
        2. नहीं? तब वस्तु लाल या हरी नहीं होती। सिग्नल टॉवर के रंग बदलें और नियंत्रित स्टॉप को ट्रिगर करें।

ध्यान दें कि प्रश्न केवल तभी पूछे जाते हैं जब पिछले प्रश्न का उत्तर नकारात्मक दिया गया हो। 

जबकि यह उन सभी स्थितियों को संभालता है जिन्हें हम जांचना चाहते हैं, एक और ब्लॉक है जो उसी तरह से स्थितियों की जांच करेगा, लेकिन नेस्टिंग ब्लॉक की तुलना में इसे बनाना आसान है। 

अन्यथा यदिब्लॉक

अन्यथा यदि ब्लॉक आपको एक ही ब्लॉक के भीतर कई स्थितियों की जांच करने में सक्षम बनाता है। इस ब्लॉक की प्रत्येक स्थिति की क्रमिक रूप से जाँच की जाएगी, केवल तभी जब पूर्ववर्ती स्थिति गलत रिपोर्ट करे। यदि else if शाखाओं के लिए सभी बूलियन शर्तें गलत हैं, तो else अनुभाग के अंदर के ब्लॉक चलाए जाएंगे।

VEXcode में अन्यथा यदि ब्लॉक. इस ब्लॉक में लिखा है if then else if then else और इसमें एक प्लस चिह्न है जो ब्लॉक में अतिरिक्त if then else खंडों को विस्तारित और जोड़ता है।

इस ब्लॉक का प्रोजेक्ट प्रवाह नेस्टेडIf then elseब्लॉक के समान ही है, लेकिन इसे बनाना आसान है, क्योंकि ब्लॉकों को नेस्ट करने की कोई आवश्यकता नहीं है। आप निम्नलिखित पाठ में Else ifब्लॉक के साथ कोडिंग के बारे में अधिक जानेंगे।

अपनी समझ की जाँच करें

अगले पाठ पर जाने से पहले, अपनी इंजीनियरिंग नोटबुक में निम्नलिखित प्रश्नों के उत्तर देकर सुनिश्चित करें कि आप इस पाठ की अवधारणाओं को समझते हैं।

अपनी समझ की जाँच करें प्रश्न > (Google Doc/ .docx / .pdf)


किसी प्रोजेक्ट में अन्यथाब्लॉक लागू करने के लिएअगला >चयन करें।