Skip to main content

प्रोग्रामिंग लूप्स - C++

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

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

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

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

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

  • इस अन्वेषण में उपयोग किए जाने वाले VEXcode V5 निर्देश:

    • ड्राइवट्रेन.ड्राइवफॉर(आगे, 300, मिमी);

    • ड्राइवट्रेन.टर्नफॉर(दाएं, 90, डिग्री);

    • ClawMotor.spinFor(रिवर्स, 70, डिग्री);

    • ArmMotor.spinFor(आगे, 360, डिग्री);

    • जबकि (सत्य) {}

    • दोहराएँ (4) {}

    • प्रतीक्षा(5, सेकंड);

अतिरिक्त जानकारी तक पहुंचने के लिए, अपने कार्यक्षेत्र में किसी कमांड के नाम पर राइट क्लिक करें और उस कमांड के लिएसहायतादेखें।

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

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

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

स्वतः पूर्ण (Autocomplete) VEXcode V5 में एक सुविधा है जो आपके द्वारा टाइप किए जा रहे कमांड के शेष भाग का पूर्वानुमान लगाती है। चूंकि छात्र VEXcode V5 में काम कर रहे हैं, इसलिए उन्हेंसिंटैक्समें मदद के लिए स्वतः पूर्ण सुविधा का उपयोग करने के लिए प्रोत्साहित करें।

स्वतः पूर्ण - ट्यूटोरियललेख में बताया गया है कि स्वतः पूर्ण सुविधा का उपयोग कैसे करें। अधिक जानकारी के लिए, VEXcode V5 के ट्यूटोरियल वीडियो देखें।

स्वतः पूर्ण ट्यूटोरियल का चयन करें.

 

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

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

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

1

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

1

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

1

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

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

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

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

     

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

     

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

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

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

    int main() {
      // रोबोट कॉन्फ़िगरेशन आरंभ कर रहा है. दूर नहीं करते!
      vexcodeInit();
    
      // आगे की ओर ड्राइव करता है और 4 पुनरावृत्तियों के लिए 90 डिग्री मुड़ता है 
      repeat(4){
        Drivetrain.driveFor(forward, 300, mm);
        Drivetrain.turnFor(right, 90, degrees);
        wait(5, seconds);
    
      }
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     

  • छात्रों से प्रोजेक्ट का नाम 'फ्लोर स्वीपर' रखने को कहें।

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

    // V5 लाइब्रेरी को शामिल करें
    #include "vex.h"
      
    // VEX लाइब्रेरी के आसान उपयोग की अनुमति देता है
    using namespace vex;
    
    // pickRandom फ़ंक्शन पैरामीटर के रूप में पारित न्यूनतम और
    मानों के बीच एक यादृच्छिक पूर्णांक लौटाता है।
    int pickRandom(int min, int max) {
      return min + rand() / (RAND_MAX / (max - min + 1));
    }
    
    int main() {
      // रोबोट कॉन्फ़िगरेशन आरंभ कर रहा है। दूर नहीं करते!
      vexcodeInit();
    
      // यादृच्छिक संख्या जनरेटर को आरंभीकृत करें।
      srand(randomSeed);
    
      while (true) {
        while (!BumperB.pressing()) {
          Drivetrain.drive(forward);
          wait(5, msec);
        }
        Drivetrain.stop();
        Drivetrain.turnFor((90 + pickRandom(0, 90)), degrees);
        wait(5, msec);
      }
    }

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

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

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

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

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

VEXcode V5 टूलबार में स्क्वेयर्ड लूप्स परियोजना नाम की छवि

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

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

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

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

int main() {
  // रोबोट कॉन्फ़िगरेशन आरंभ कर रहा है. दूर नहीं करते!
  vexcodeInit();

  repeat(4){
    Drivetrain.driveFor(forward, 300, mm);
    ClawMotor.spinFor(reverse, 70, degrees);
    ArmMotor.spinFor(forward, 360, degrees);
    ClawMotor.spinFor(forward, 70, degrees);
    ArmMotor.spinFor(reverse, 360, degrees);
    Drivetrain.turnFor(right, 90, degrees);
    wait(5, msec);
  }
}

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