Skip to main content

पाठ 2: परियोजना-पश्चात सारांश

[यदि तो अन्यथा] ब्लॉक का उपयोग इसलिए किया जाता है ताकि वीआर रोबोट निर्णय ले सके। यदि बूलियन स्थिति सत्य है, तो 'यदि तों' शाखा के अंदर के ब्लॉक चलेंगे। यदि बूलियन स्थिति गलत है, तो 'Else' शाखा के अंदर के ब्लॉक चलेंगे।

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

इस परियोजना में, वीआर रोबोट एक इमारत की ओर बढ़ रहा था, तभी डिस्टेंस सेंसर ने एक वस्तु का पता लगाया और <Distance found object> ब्लॉक ने सत्य बताया। इसने परियोजना की 'यदि तो' शाखा को चलाने का निर्देश दिया। इस शाखा में [ड्राइव] ब्लॉक शामिल है। इसके बाद वीआर रोबोट परियोजना की 'एल्स' शाखा को छोड़ देता है।

परियोजना बाईं ओर है, जिसमें हरे रंग का हाइलाइट है जो निष्पादित हो रही if then शाखा के परियोजना प्रवाह को दर्शाता है। दाईं ओर खेल के मैदान का ऊपर से नीचे का दृश्य दिखाया गया है, जिसमें एक तीर और लाल बॉक्स, दूरी सेंसर द्वारा पता लगाए गए महल या वस्तु को उजागर कर रहा है।

क्योंकि [If then else] ब्लॉक को [Forever] ब्लॉक के अंदर रखा गया है, इसलिए प्रोजेक्ट [If then else] ब्लॉक की स्थिति की जांच करने के लिए [Forever] ब्लॉक के शीर्ष पर वापस लूप करता है। यह लूप हमेशा जारी रहेगा, तथा वीआर रोबोट को प्रति सेकंड सैकड़ों बार [यदि तो अन्यथा] स्थिति की जांच करने का निर्देश देगा।

ध्यान दें कि [यदि तो अन्यथा] ब्लॉक के अंदर [ड्राइव] और [टर्न] ब्लॉक गैर-प्रतीक्षा ब्लॉक हैं। गैर-प्रतीक्षा ब्लॉक किसी परियोजना के प्रवाह को तब तक नहीं रोकते जब तक वे चल रहे हों।  एक गैर-प्रतीक्षा व्यवहार जो [यदि तो अन्यथा] ब्लॉक में निष्पादित होता है (जैसे कि यदि ऑब्जेक्ट का पता चला है तो ड्राइव फॉरवर्ड) स्थिति की जांच होने तक जारी रहेगा, और केवल तभी बदलेगा जब स्थिति बदल जाएगी।

वही VEXcode VR प्रोजेक्ट, जिसमें फॉरएवर ब्लॉक के नीचे से ऊपर की ओर बढ़ते हुए तीर, फॉरएवर लूप के शीर्ष पर वापस प्रोजेक्ट प्रवाह को इंगित करते हैं, ताकि इसके भीतर सभी कमांड दोहराए जा सकें।

यदि <Distance found object> ब्लॉक FALSE रिपोर्ट करता है, तो परियोजना की 'Else' शाखा निष्पादित होती है। 'Else' शाखा में [Turn] ब्लॉक शामिल है।

परियोजना बाईं ओर है, जिसमें लाल रंग का हाइलाइट है जो निष्पादित हो रही else शाखा के परियोजना प्रवाह को दर्शाता है। दाईं ओर खेल के मैदान का ऊपर से नीचे का दृश्य दिखाया गया है, जिसमें वीआर रोबोट के चारों ओर घुमावदार तीर हैं जो किसी वस्तु का पता लगाने के लिए मुड़ने का संकेत देते हैं, क्योंकि दूरी सेंसर के ठीक सामने कोई वस्तु नहीं है।

आपकी जानकारी के लिए

[यदि तो अन्यथा] ब्लॉक का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि शर्त की जाँच होने पर परियोजना में केवल एक शाखा ही चले। किसी भी समय केवल एक ही उदाहरण या स्थिति सत्य हो सकती है। इससे परियोजना अधिक कुशल हो जाती है।

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

वर्तमान परियोजना की तुलना इकाई 7 में बनाई गई परियोजना से करें।  यूनिट 7 परियोजना चार [यदि तो] ब्लॉकों का उपयोग करती है।

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

जब एकाधिक [If then] ब्लॉकों के साथ एक परियोजना को चलाया जाता है, तो यह संभव हो सकता है कि एकाधिक स्थितियाँ TRUE रिपोर्ट करें और परियोजना [Forever] ब्लॉक में कमांड के माध्यम से चले। इस परियोजना में, दोनों स्थितियाँ समान [Forever] लूप के दौरान TRUE रिपोर्ट कर सकती हैं। इस तरह के टकराव के कारण परियोजना रुक सकती है या धीमी गति से चल सकती है।

एक सदैव लूप के भीतर दो अनुक्रमित If then ब्लॉकों के परियोजना प्रवाह का आरेख। प्रारंभ करते समय, परियोजना सबसे पहले शर्त 1 की जांच करेगी, जो कि प्रथम if then ब्लॉक का पैरामीटर है। यदि यह सत्य है, तो इसके अंतर्गत 90 ब्लॉक तक दाहिनी ओर मुड़ना होगा। यदि वह शर्त गलत है, तो परियोजना शर्त 2 की जांच करने के लिए अगले if then ब्लॉक पर चली जाती है। यदि शर्त 2 सत्य है, तो इसके अंतर्गत 200 मिमी ब्लॉक के लिए ड्राइव आगे चलेगी। यदि यह गलत है, तो परियोजना पुनः प्रक्रिया को दोहराने के लिए फॉरएवर लूप के शीर्ष पर वापस चली जाएगी।

[If then else] ब्लॉक का उपयोग करने से इस तरह की त्रुटियों से बचा जा सकता है, क्योंकि इस ब्लॉक के साथ किसी निश्चित समय पर केवल एक ही स्थिति सत्य हो सकती है।

एक फॉरएवर लूप के भीतर if then else ब्लॉक का उपयोग करते हुए परियोजना प्रवाह का आरेख। प्रारंभ होने पर, if then शाखा की स्थिति की जाँच की जाएगी। यदि यह सत्य है, और ड्राइव चल रही है, तो यदि शाखा के भीतर ब्लॉक चलेगा, और रोबोट 90 डिग्री बायीं ओर मुड़ जाएगा; अन्यथा, रोबोट 200 मिमी आगे बढ़ेगा। एक शर्त की जांच करने का निर्णय लगातार लिया जाएगा क्योंकि परियोजना हमेशा के लिए लूप में है।

प्रश्न

कृपया पाठ प्रश्नोत्तरी तक पहुंचने के लिए नीचे दिए गए लिंक का चयन करें।

गूगल डॉक / .docx / .pdf