Skip to main content

प्रोग्रामिंग लूप्स - पायथन

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - गतिविधि रूपरेखा

  • यह अन्वेषण विद्यार्थियों को दोहराव या सदैव लूप का उपयोग करके दोहरावपूर्ण व्यवहारों की प्रोग्रामिंग से परिचित कराएगा।

  • दोहराए जाने वाले और हमेशा के लिए लूप का उपयोग करके प्रोग्रामिंग सीखने से छात्रों को एक प्रोजेक्ट बनाते समय समय की बचत करने में मदद मिलती है, जिसमें समान दोहराई जाने वाली क्रियाओं का उपयोग किया जाता है। किसी पाठ परियोजना में प्रयुक्त निर्देशों के बारे में अधिक जानकारी के लिए,सहायताजानकारी पर जाएँ।

क्लॉबोट V5 चलने के लिए तैयार है!

यह अन्वेषण आपको कुछ अच्छे प्रोजेक्ट बनाने के लिए उपकरण प्रदान करेगा, जो लूप का उपयोग करते हैं।

  • VEXcode V5 पायथन निर्देश जो इस अन्वेषण में उपयोग किए जाएंगे:
    • drivetrain.drive_for(फॉरवर्ड, 300, MM)
    • ड्राइवट्रेन.टर्न_फॉर(दाएं, 90, डिग्री)
    • claw_motor.spin_for(रिवर्स, 70, डिग्री)
    • arm_motor.spin_for(आगे, 360, डिग्री)
    • बम्पर_बी.प्रेसिंग()
    • जबकि सत्य: 
    • श्रेणी(4) में repeat_count के लिए: 
    • प्रतीक्षा(5, सेकंड)

आप अलग-अलगपायथनकमांड के बारे में जानने के लिए VEXcode V5 के अंदर सहायता जानकारी का उपयोग कर सकते हैं। 

ड्राइव कमांड खोलने के लिए सहायता नोट्स के साथ VEXcode V5 वर्कस्पेस को दर्शाने वाली छवि

शिक्षक युक्तियाँ आइकन शिक्षक युक्तियाँ

यदि छात्र पहली बार VEXcode V5 का उपयोग कर रहे हैं, तो वेलाइब्रेरी में विभिन्न प्रकार के लेख पढ़ सकते हैं

VEX लाइब्रेरी के VEXcode V5 अनुभाग की छवि

शिक्षक युक्तियाँ आइकन शिक्षक सुझाव - स्वतः पूर्ण का उपयोग करना

स्वतः पूर्ण (Autocomplete) VEXcode V5 में एक सुविधा है जो आपके द्वारा टाइप किए जा रहे कमांड के शेष भाग का पूर्वानुमान लगाती है। चूंकि छात्र VEXcode V5 में काम कर रहे हैं, इसलिए उन्हें पायथन सिंटैक्स में मदद के लिए स्वतः पूर्ण सुविधा का उपयोग करने के लिए प्रोत्साहित करें। जैसे ही आप निर्देश लिखना शुरू करेंगे, आपको एक स्वतः पूर्ण फ़ंक्शन दिखाई देगा। अपने इच्छित नाम का चयन करने के लिए “ऊपर” और “नीचे” कुंजियों का उपयोग करें, फिर चयन करने के लिए अपने कीबोर्ड पर “टैब” या (एंटर/रिटर्न) दबाएं। स्वतः पूर्ण का उपयोग करने के बारे में अधिक जानकारी के लिए पायथन लेखदेखें।

पायथन प्रोजेक्ट में स्वतः पूर्ण सुविधा की छवि

सुनिश्चित करें कि आपके पास आवश्यक हार्डवेयर, आपकी इंजीनियरिंग नोटबुक और VEXcode V5 डाउनलोड और तैयार है।

सामग्री की आवश्यकता:
मात्रा आवश्यक सामग्री
1

VEX V5 क्लासरूम स्टार्टर किट (अप-टू-डेट फर्मवेयर के साथ)

1

VEXcode V5 (नवीनतम संस्करण, Windows, macOS)

1

इंजीनियरिंग नोटबुक

1

क्लॉबोट टेम्पलेट (ड्राइवट्रेन 2-मोटर, कोई गायरो नहीं) उदाहरण परियोजना

चरण 1: आइए लूप्स के साथ प्रोग्रामिंग शुरू करें

  • अपना प्रोजेक्ट शुरू करने से पहले, सही टेम्पलेट प्रोजेक्ट का चयन करें। क्लॉबोट टेम्पलेट (ड्राइवट्रेन 2-मोटर, नो गायरो) उदाहरण परियोजना में क्लॉबोट की मोटर कॉन्फ़िगरेशन शामिल है। यदि टेम्पलेट का उपयोग नहीं किया जाता है, तो आपका रोबोट प्रोजेक्ट को सही ढंग से नहीं चलाएगा।
  • फ़ाइलऔरउदाहरण खोलें का चयन करें।

    VEXcode V5 में फ़ाइल मेनू को खुला हुआ दिखाने वाली छवि जिसमें ओपन उदाहरण विकल्प दिखाया गया है

     

  • विभिन्नउदाहरणपरियोजनाओं के माध्यम से स्क्रॉल करें। ये परियोजनाएं आपके क्लॉबोट द्वारा किए जा सकने वाले विभिन्न कार्यों को प्रदर्शित करती हैं। क्लॉबोट टेम्पलेट (ड्राइवट्रेन 2-मोटर, नो गायरो)उदाहरण प्रोजेक्ट का चयन करें और खोलें।

    स्पीडबोट (ड्राइवट्रेन 2-मोटर, नो गायरो) टेम्पलेट प्रोजेक्ट के चारों ओर लाल बॉक्स के साथ उदाहरण परियोजनाओं को दर्शाने वाली छवि

     

  • प्रोजेक्ट का नाम RepeatingActions रखें.

    VEXcode V5 में दोहराई जाने वाली क्रियाएँ परियोजना का नाम दर्शाने वाली छवि

  • निम्नलिखित कोड टाइप करें:

    # लाइब्रेरी आयात करती है
    from vex import *
    
    # प्रोजेक्ट कोड शुरू करें
    # 4 पुनरावृत्तियों के लिए 300 मिमी 90 डिग्री पर आगे की ओर मुड़ता है
    
    for repeat_count in range(4):
        drivetrain.drive_for(FORWARD, 300, MM)
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        wait(5, SECONDS)

प्रोजेक्ट पर नजर डालें और फिर अपनी इंजीनियरिंग नोटबुक में निम्नलिखित कार्य करें।

  1. भविष्यवाणी करें कि परियोजना में क्लॉबोट क्या कार्य करेगा। इस तथ्य के अलावा कि परियोजना दोहराई जाती है, और भी कुछ बताएं।

    यह क्या दोहरा रहा है? क्लॉबोट क्या कर रहा है?

  2. अपना पूर्वानुमान लिखें, लेकिन लघु परियोजना को दो भागों से अधिक में न विभाजित करें।

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - उत्तर

  1. इस परियोजना में रोबोट को 300 मिलीमीटर आगे बढ़ना होगा, 90 डिग्री पर दाईं ओर मुड़ना होगा, और फिर एक वर्ग पूरा करने के लिए 4 बार 5 सेकंड तक प्रतीक्षा करनी होगी। एक ही 3 निर्देशों को 4 बार प्रयोग करने के स्थान पर, दोहराए गए निर्देश से निर्देशों की संख्या घटकर केवल 1 बार रह जाती है। दोहराए जाने वाले निर्देश में आगे की ओर गाड़ी चलाने और फिर मुड़ने की क्रियाएं दोहराई जाती हैं।

  2. भविष्यवाणी बस इतनी हो सकती है कि "क्लॉबोट एक वर्ग में चलता है।" यह क्लॉबोट की बार-बार होने वाली गतिविधियों को बिना किसी संदर्भ के दर्शाने का एक संक्षिप्त तरीका होगा।

छात्रों की इंजीनियरिंग नोटबुक को बनाए रखा जा सकता है और व्यक्तिगत रूप सेयाटीम के रूप मेंअंक दिए जा सकते। पिछले लिंक प्रत्येक दृष्टिकोण के लिए अलग रूब्रिक प्रदान करते हैं। जब भी शैक्षिक योजना में किसी रूब्रिक को शामिल किया जाता है, तो गतिविधि शुरू होने से पहले छात्रों को रूब्रिक समझाना या कम से कम उसकी प्रतियां देना अच्छा अभ्यास है।

चरण 2: प्रोजेक्ट चलाएँ और रोबोट का निरीक्षण करें

VEX रोबोट के लिए दो पायथन कोड स्निपेट की तुलना। शीर्ष स्निपेट सेंसर इनपुट का उपयोग करके यह निर्धारित करता है कि कब मुड़ना है, तथा एक लूप यह जांचता है कि बम्पर स्विच दबाया गया है या नहीं; यदि दबाया जाता है, तो रोबोट 90 डिग्री पर दाईं ओर मुड़ता है, अन्यथा, यह आगे बढ़ता है। नीचे का स्निपेट एक निश्चित दूरी का उपयोग करके यह निर्धारित करता है कि कब मुड़ना है, जिसमें एक फॉर लूप होता है जो रोबोट को 300 मिमी आगे ले जाता है, 90 डिग्री दाईं ओर मुड़ता है, और 5 सेकंड तक प्रतीक्षा करता है, इस क्रम को चार बार दोहराता है

दोहराई जाने वाली क्रियाएँ परियोजना (दूसरी परियोजना) को पुनः देखें। यह परियोजना आगे बढ़ने और फिर मुड़ने के व्यवहार को चार बार दोहराएगी। एक "दोहराएँ" लूप संरचना (के लिएलूप का उपयोग करके) का उपयोग तब किया जाता है जब आप व्यवहारों के एक सेट को एक निश्चित संख्या में बार उपयोग करना चाहते हैं।

यदि दोहराएँ संरचना को जबकि लूप संरचना के साथ बदल दिया जाता है, तो रोबोट आगे की ओर दोहराएगा और फिर व्यवहार को चालू करेगा "जब तक" स्थिति सत्य है। आपwhile लूप को हमेशा के लिए जारी रखने के लिए शर्त को "सत्य" पर भी सेट कर सकते हैं।

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

सेंसर के इनपुट को लगातार जांचने के लिए, if else कथन को while लूप के साथ प्रयोग किया जाता है। बायीं ओर की परियोजना में, "बम्पर_बी" सेंसर को दबाने पर रोबोट दाईं ओर मुड़ जाएगा, अन्यथा यदि "बम्पर_बी" सेंसर को नहीं दबाया जाता है तो रोबोट हमेशा आगे की ओर ही चलता रहेगा। बम्पर_बी सेंसर के मान को लगातार जांचने के लिए, यदि कथन जबकिलूप के भीतर है।

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

अपनी शिक्षा का विस्तार करें आइकन अपनी शिक्षा का विस्तार करें

यह जानने के लिए कि आप सशर्तों के साथ लूप का उपयोग कैसे कर सकते हैं, छात्रों को VEXcode V5 में फ़्लोर स्वीपर प्रोजेक्ट बनाने को कहें।

  • छात्रों को बम्पर स्विचऔर तार लगाने के लिए कहें
  • विद्यार्थियों सेक्लॉबोट टेम्पलेट (ड्राइवट्रेन 2-मोटर, नो गायरो)उदाहरण परियोजना खोलने के लिए कहें।

     

  • छात्रों को VEXcode V5में 3-तार बम्पर स्विच कॉन्फ़िगर करने दें, बम्परके लिए आप जिस 3-तार डिवाइस का उपयोग कर रहे हैं उसे चुनें, और Bके लिए पोर्ट का चयन करें।VEXcode V5 में डिवाइस कॉन्फ़िगरेशन की छवि जिसमें बम्पर विकल्प हाइलाइट किया गया हैपोर्ट B हाइलाइट किए गए बम्पर स्विच के लिए डिवाइस कॉन्फ़िगरेशन की छवि
     
  • छात्रों से प्रोजेक्ट का नाम 'फ्लोर स्वीपर' रखने को कहें।

  • विद्यार्थियों से निम्नलिखित परियोजना बनाने को कहें।

    # लाइब्रेरी आयात करती है
    from vex import *
    
    import random
    
    # प्रोजेक्ट कोड शुरू करें
    while True:
        while (not bumper_b.pressing()):
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        
        drivetrain.stop()
    
        #random.randomint() विधि निर्दिष्ट सीमा के बीच एक यादृच्छिक पूर्णांक संख्या लौटाती है
        #सीमा के न्यूनतम और अधिकतम मानों को पैरामीटर्स में पास करें
        drivetrain.turn_for(RIGHT, (90+random.randint(0, 90)),DEGREES)
        wait(5, MSEC)

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

विद्यार्थियों को ध्यान देना चाहिए कि हमेशा के लिए संरचना का उपयोग इसलिए किया गया है क्योंकि यह परियोजना लगातार यह जांचती रहती है कि बम्पर स्विच दबाया जा रहा है या नहीं।

चरण 3: स्क्वेयर्ड लूप्स चुनौती!

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

  • अपने क्लॉबोट को एक वर्ग में ड्राइव करें।
  • प्रत्येक मोड़ से पहले पंजे को खोलना और बंद करना होगा, तथा भुजा को ऊपर उठाना और नीचे करना होगा।
  • क्लॉबोट एक से अधिक बार वर्ग के एक किनारे पर गाड़ी नहीं चला सकता।
  • आप ऊपर दिए गए RepeatingActions प्रोजेक्ट को प्रारंभिक बिंदु के रूप में उपयोग कर सकते हैं, लेकिन कोई भी परिवर्तन करने से पहले इसेSquaredLoopsके रूप में सेव कर लें।

VEXcode V5 में टूलबार में Squared Loops प्रोजेक्ट का नाम दिखाने वाली छवि

अपनी इंजीनियरिंग नोटबुक में निम्नलिखित योजना बनाएं:

  • अपने समाधान की योजना बनाएं और अनुमान लगाएं कि आपके प्रोजेक्ट में प्रत्येक निर्देश के लिए क्लॉबोट क्या करेगा।
  • अपनी परियोजना को सबमिट करने से पहले उसका परीक्षण करने के लिएडाउनलोड करें और चलाएँ।
  • आवश्यकतानुसार परियोजना में परिवर्तन करें और परीक्षण के दौरान क्या परिवर्तन किया गया है, इसके बारे में नोट करें।

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - समाधान

स्क्वेयर्ड लूप्स चैलेंज का संभावित समाधान निम्नलिखित है:

# लाइब्रेरी आयात करती है
from vex import *

# प्रोजेक्ट कोड शुरू करें
for repeat_count in range(4):
    drivetrain.drive_for(FORWARD, 300, MM)
    claw_motor.spin_for(REVERSE, 70, DEGREES)
    arm_motor.spin_for(FORWARD, 360, DEGREES)
    claw_motor.spin_for(FORWARD, 70, DEGREES)
    arm_motor.spin_for(REVERSE, 360, DEGREES)
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(5, MSEC)

आप छात्रों को उनके प्रोजेक्ट के स्कोर के लिएप्रोग्रामिंग रूब्रिकप्रदान कर सकते हैं।
छात्रों की इंजीनियरिंग नोटबुक रखी जा सकती है औरव्यक्तिगत रूप सेयाटीमके रूप में स्कोर किया जा सकता है।