Skip to main content

पाठ 2: फॉर लूप के साथ प्रोजेक्ट का प्रवाह

जब कोई प्रोजेक्ट for लूप का उपयोग करता है, तब भी यह कमांड निष्पादित करते समय समान तर्क का पालन करता है। उदाहरण के लिए, ये दो कोड नमूने VR रोबोट को एक ही तरीके से चलाएंगे। हालाँकि,फॉरलूप वाला प्रोजेक्ट ऐसा करने के लिए दो ड्राइवट्रेन कमांड को चार बार दोहराता है।

फॉर लूप का उपयोग करने और न करने के बीच अंतर को दर्शाने के लिए एक वर्ग में ड्राइव करने के लिए दो कोड स्निपेट साथ-साथ दिखाए गए हैं। बाईं ओर वाले में कोई फॉर लूप नहीं है, तथा ड्राइव फॉर और टर्न फॉर कमांड को चार-चार बार दोहराया गया है। दाईं ओर वाले में एक फॉर लूप है, तथा गोलाकार पैटर्न में लाल तीर हैं जिनके अंदर 4 बार शब्द हैं, जो यह दर्शाता है कि फॉर लूप के कारण ड्राइव फॉर और टर्न फॉर कमांड चार बार दोहराए जाते हैं।

for लूप का उपयोग आदेशों की एक श्रृंखला को निर्दिष्ट संख्या में बार दोहराने के लिए किया जाता है। for लूप अपने अंदर के आदेशों के अनुक्रम को दोहराता है (जिसे पुनरावृत्त भी कहा जाता है)। पायथन फॉर लूप में, वेरिएबल 'value' का उपयोग वर्तमान पुनरावृत्ति को ट्रैक करने के लिए किया जाता है, और कुंजी शब्द 'in' पुनरावृत्तियों की संख्या निर्दिष्ट करने के लिए rangeफ़ंक्शन का उपयोग करता है। फॉर लूप के सिंटैक्स का विश्लेषण, कमांड में प्रत्येक शब्द के ऊपर पाठ के साथ दिखाया गया है, ताकि इसके कार्य की पहचान की जा सके। पहले शब्द, for, के ऊपर "लूप की पहचान करता है" लिखा है। दूसरे शब्द, value, में यह पाठ है: "चर की पहचान करता है (यह लूप के माध्यम से कितनी बार पुनरावृत्त हुआ है?) तीसरे शब्द, in, में पाठ है "चर को सूची (रेंज) से जोड़ता है।" अंतिम शब्द range है तथा कोष्ठक में पैरामीटर 10 है। इसके ऊपर लिखा है, "सूची की पहचान करता है (यह लूप के माध्यम से कितनी बार पुनरावृति करेगा?)

रेंज फ़ंक्शन यह पहचानता है कि लूप को कितनी बार पुनरावृत्त (या दोहराना) करना चाहिए। वांछित संख्या में व्यवहार को दोहराने के लिए, श्रेणी फ़ंक्शन का पैरामीटर सेट करें।

रेंज फ़ंक्शन अनिवार्य रूप से एक अस्थायी सूची बनाता है जो निर्दिष्ट करता है कि लूप को पूरा करने के लिए किस माध्यम से पुनरावृति करनी चाहिए। दोहराए जाने वाले व्यवहारों के मामले में, जैसे कि किसी वर्ग की चारों भुजाओं को खींचना, श्रेणी फ़ंक्शन (0, 1, 2, 3) की एक अस्थायी सूची का उपयोग करता है, जिससे VR रोबोट उन आदेशों को चार बार निष्पादित कर सके। वीआर रोबोट की गति रेंज फ़ंक्शन के पैरामीटर के आधार पर बदल जाएगी, जैसा कि यहां दिखाया गया है। 

रेंज फ़ंक्शन को दर्शाने वाला VEXcode प्रोजेक्ट। इसमें लिखा है def main कोष्ठक खोलें कोलन बंद करें अगली पंक्ति जो इंडेंटेड है, उसमें लिखा है pen dot move कोष्ठक खोलें नीचे कोष्ठक बंद करें अगली पंक्ति रेंज में मान के लिए कोष्ठक खोलें 0 कोष्ठक बंद करें कोलन अगली पंक्ति जो इंडेंटेड है, उसमें लिखा है drivetrain dot drive underscore कोष्ठक खोलें forward, 600, MM कोष्ठक बंद करें अगली पंक्ति drivetrain dot turn underscore कोष्ठक खोलें right, 90, degree कोष्ठक बंद करें अगली पंक्ति wait कोष्ठक खोलें five comma MSEC). केंद्र में रोबोट के साथ कला कैनवास खेल का मैदान। ड्राइवट्रेन कमांड 0 बार निष्पादित किया गया.
उपरोक्त के समान ही परियोजना, लेकिन रेंज फ़ंक्शन के पैरामीटर में 1 के साथ। कला कैनवास खेल का मैदान एक वर्ग के एक पक्ष को आकर्षित करने के लिए परियोजना के साथ पूरा करें। ड्राइवट्रेन कमांड 1 बार निष्पादित किया गया.
उपरोक्त के समान ही परियोजना, लेकिन रेंज फ़ंक्शन के पैरामीटर में 2 के साथ। आर्ट कैनवस प्लेग्राउंड में दिखाया गया है कि रोबोट ने वर्ग की पहली दो भुजाएं खींची हैं। ड्राइवट्रेन कमांड 2 बार निष्पादित किया गया।
उपरोक्त के समान ही परियोजना, लेकिन रेंज फ़ंक्शन के पैरामीटर में 3 के साथ। आर्ट कैनवास प्लेग्राउंड में दिखाया गया है कि रोबोट ने वर्ग की तीन भुजाएं खींची हैं। ड्राइवट्रेन कमांड 3 बार निष्पादित किया गया।
उपरोक्त के समान ही परियोजना, लेकिन रेंज फ़ंक्शन के पैरामीटर में 4 के साथ। आर्ट कैनवस प्लेग्राउंड में दिखाया गया है कि रोबोट ने वर्ग के सभी चार पक्षों को चित्रित किया है। ड्राइवट्रेन कमांड को 4 बार निष्पादित किया गया, जिससे वर्ग के सभी 4 पक्ष पूरे हो गए।

 

उपरोक्त के समान ही परियोजना, लेकिन रेंज फ़ंक्शन के पैरामीटर में 5 के साथ।

आर्ट कैनवस प्लेग्राउंड में दिखाया गया है कि रोबोट ने वर्ग के सभी चार पक्षों को खींचा है, और फिर पहले पक्ष पर फिर से अनुरेखण किया है। ड्राइवट्रेन कमांड को 5 बार निष्पादित किया गया, जिससे वर्ग पूरा हो गया, फिर पहली तरफ पुनः ट्रेस किया गया।

ध्यान दें कि जबरेंजफ़ंक्शन चार से पांच में परिवर्तित हुआ तो वर्ग का खींचा गया आकार नहीं बदला; लेकिन वीआर रोबोट की अंतिम स्थिति बदल गई। इस प्रकार, डिफ़ॉल्टरेंजफ़ंक्शन दस के साथके लिएलूप का उपयोग करने पर, वही वर्गाकार आकृति बनेगी, लेकिन वीआर रोबोट व्यवहार को अतिरिक्त छह बार दोहराना जारी रखेगा। 

वीआर रोबोट फॉर लूप हेडर से लेकर अंतिम इंडेंटेड कमांड तक कमांड के माध्यम से आगे बढ़ेगा। फॉरलूप हेडर यह इंगित करता है कि वीआर रोबोट को फॉर लूप के बाहर अगले कमांड पर जाने से पहले लूप के अंदर की क्रियाओं को निर्दिष्ट संख्या में दोहराना चाहिए। इंडेंटेड लाइनें यह दर्शाती हैं कि फॉर लूप के अंदर कौन से कमांड हैं और उन्हें दोहराया जाना चाहिए।

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

VEXcode VR में,waitकमांड को हमेशाforलूप के साथ जोड़ा जाता है। waitकमांड का उद्देश्य यह सुनिश्चित करना है कि VEXcode VR प्लेटफॉर्म की वेब-आधारित प्रकृति के कारण, VEXcode VR परियोजना को अपेक्षित रूप से ठीक से चला सके। forलूप का उपयोग करते समयwaitकमांड को कभी भी हटाया नहीं जाना चाहिए, अन्यथा आपका प्रोजेक्ट अपेक्षित रूप से नहीं चल पाएगा।

प्रतीक्षा आदेश के साथ फॉर लूप.

for लूप को निष्पादित करने के लिए निर्धारित की गई निर्दिष्ट संख्या, आवश्यक पुनरावृत्तियों को पूरा करने के बाद परियोजना कोforलूप से बाहर प्रवाहित होने में सक्षम बनाती है। for लूप में rangeफ़ंक्शन के पैरामीटर तक पहुंचना आवश्यक है, इससे पहले कि प्रोजेक्ट लूप के बाहर अगले कमांड पर चला जाए। नीचे दिए गए कोड नमूने में, जबforलूप में ड्राइवट्रेन कमांड को चार बार निष्पादित कर दिया जाता है, तो प्रोजेक्टforलूप से बाहर निकल जाएगा, पेन का रंग लाल कर देगा, और रिवर्स में ड्राइव करेगा। ऊपर से VEXcode प्रोजेक्ट, जिसमें रेंज पैरामीटर में 4 को फॉर लूप के चारों ओर लाल तीरों से दर्शाया गया है तथा संकेतन 4x यह दर्शाता है कि प्रोजेक्ट लूप के माध्यम से चार बार पुनरावृति करेगा। नीचे कोड की 2 अतिरिक्त पंक्तियाँ जोड़ी गई हैं। तीर दर्शाते हैं कि चार पुनरावृत्तियाँ पूरी होने के बाद वे 2 पंक्तियाँ निष्पादित होंगी। उन पंक्तियों में लिखा है, पेन डॉट सेट कलर ओपन कोष्ठक लाल क्लोज कोष्ठक और ड्राइवट्रेन डॉट ड्राइव अंडरस्कोर ओपन कोष्ठक रिवर्स कॉमा 600 कॉमा एमएम क्लोज कोष्ठक। दाईं ओर खेल के मैदान पर चलाए जाने के बाद परियोजना का चित्र है, जिसमें एक काले रंग का वर्ग दिखाया गया है, जिसके बीच से एक लाल रेखा निकल रही है, जिसे VR रोबोट द्वारा खींचा गया है।

मिनी चैलेंज

इस परियोजना में, वीआर रोबोट को आर्ट कैनवास खेल का मैदान, पर एक नीला वर्ग बनाना चाहिए, लेकिन परियोजना में त्रुटियाँ हैं। मिनी चुनौती को हल करने के लिए परियोजना को संपादित करें!

वीआर रोबोट द्वारा बनाए गए नीले वर्ग के साथ आर्ट कैनवास खेल का मैदान।

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

वीडियो फाइल
  • समाधान वीडियो देखें और समीक्षा करें कि मिनी चुनौती को पूरा करने के लिए वीआर रोबोट को किस प्रकार चलना चाहिए।
  • इस छवि से मेल खाने के लिए Unit3Lesson2 प्रोजेक्ट को संशोधित करें, या नीचे दिए गए कोड को कॉपी करें।
     
def main():
	pen.move(DOWN)
	pen.set_pen_color(RED)
	drivetrain.drive_for(FORWARD, 600, MM)
	
	for value in range(3):
		drivetrain.drive_for(FORWARD, 600, MM)
		drivetrain.turn_for(RIGHT, 90, DEGREES)
		wait (5, MSEC)
  • प्रोजेक्ट शुरू करें और पहचानें कि वीआर रोबोट कहां अपेक्षित व्यवहार पूरा नहीं कर रहा है।
  • प्रोजेक्ट को संशोधित करें और पुनः चलाएं. देखें कि क्या VR रोबोट अपेक्षित व्यवहार पूरा करता है।
  • यदि VR रोबोट नीला वर्ग नहीं बनाता है, तो पिछले चरण को दोहराएं और पुनः प्रयास करें। जब तक VR रोबोट एक नीला वर्ग नहीं बना देता, तब तक अपने प्रोजेक्ट को संशोधित करना और चलाना जारी रखें।
  • एक बार जब वीआर रोबोट सफलतापूर्वक आर्ट कैनवास प्लेग्राउंडपर एक नीला वर्ग खींच लेता है, तो प्रोजेक्ट को सेव करें।

बधाई हो! आपने मिनी चुनौती हल कर ली!

प्रश्न

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

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