प्रोग्रामिंग लूप - सी++
शिक्षक टूलबॉक्स
-
गतिविधि रूपरेखा
-
इस अध्ययन के माध्यम से छात्रों को रिपीट या फॉरएवर लूप का उपयोग करके दोहराव वाले व्यवहारों को प्रोग्राम करना सिखाया जाएगा।
-
रिपीट और फॉरएवर लूप का उपयोग करके प्रोग्रामिंग सीखने से छात्रों को ऐसे प्रोजेक्ट बनाने में समय बचाने में मदद मिलती है जिनमें समान क्रियाओं को बार-बार दोहराया जाता है। टेक्स्ट प्रोजेक्ट में उपयोग किए गए निर्देशों के बारे में अधिक जानकारी के लिए, सहायतापर जाएँ
क्लॉबॉट V5 चलने के लिए तैयार है!
इस अन्वेषण से आपको लूप का उपयोग करके कुछ बेहतरीन प्रोजेक्ट बनाना शुरू करने के लिए आवश्यक उपकरण प्राप्त होंगे।
-
इस अन्वेषण में उपयोग किए जाने वाले VEXcode V5 निर्देश:
-
ड्राइवट्रेन.ड्राइवफॉर(फॉरवर्ड, 300, मिमी);
-
ड्राइवट्रेन.टर्नफॉर(दाएं, 90, डिग्री);
-
क्लॉमोटर.स्पिनफॉर(रिवर्स, 70, डिग्री);
-
आर्ममोटर.स्पिनफॉर(फॉरवर्ड, 360, डिग्री);
-
जबकि (सत्य) {}
-
दोहराएँ (4) {}
-
प्रतीक्षा करें (5 सेकंड);
-
अतिरिक्त जानकारी प्राप्त करने के लिए, अपने कार्यक्षेत्र में किसी कमांड के नाम पर राइट-क्लिक करें ताकि उस कमांड के लिएसहायतादेखी जा सके।
शिक्षक सुझाव
यदि छात्र पहली बार VEXcode V5 का उपयोग कर रहे हैं, तो वेलाइब्रेरी में विभिन्न लेख पढ़ सकते हैं

शिक्षकों के लिए सुझाव
-
ऑटो-कंप्लीट का उपयोग करना
ऑटो-कंप्लीट VEXcode V5 का एक फीचर है जो आपके द्वारा टाइप किए जा रहे कमांड के बाकी हिस्से का अनुमान लगाता है। चूंकि छात्र VEXcode V5 में काम कर रहे हैं, इसलिए उन्हेंसिंटैक्स में मदद के लिए ऑटो-कंप्लीट सुविधा का उपयोग करने के लिए प्रोत्साहित करें।

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

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

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

-
इस प्रोजेक्ट का नाम RepeatingActions रखें।
-
निम्न कोड टाइप करें:
int main() { // रोबोट कॉन्फ़िगरेशन आरंभ करना। दूर नहीं करते! vexcodeInit(); // 4 पुनरावृत्तियों के लिए आगे बढ़ता है और 90 डिग्री मुड़ता है repeat(4){ Drivetrain.driveFor(forward, 300, mm); Drivetrain.turnFor(right, 90, degrees); wait(5, seconds); } }
प्रोजेक्ट को ध्यान से देखें और फिर अपनी इंजीनियरिंग नोटबुक में निम्नलिखित कार्य करें।
-
अनुमान लगाइए कि इस परियोजना में क्लॉबॉट क्या कार्य करेगा। इस तथ्य से कहीं अधिक विस्तार से समझाएं कि परियोजना दोहराई जाती है।
यह क्या दोहरा रहा है? क्लॉबॉट क्या कर रहा है?
- अपनी भविष्यवाणी लिखें, लेकिन लघु परियोजना को दो से अधिक भागों में न बाँटें।
शिक्षक टूलबॉक्स
-
उत्तर
-
इस प्रोजेक्ट में रोबोट को 300 मिलीमीटर आगे बढ़ना होगा, 90 डिग्री दाएं मुड़ना होगा और फिर एक वर्ग को पूरा करने के लिए 5 सेकंड तक 4 बार इंतजार करना होगा। एक ही तरह के तीन निर्देशों को चार बार इस्तेमाल करने के बजाय, दोहराने का निर्देश उस मात्रा को घटाकर केवल एक बार कर देता है। यह निर्देश आगे बढ़ने और फिर मुड़ने की क्रियाओं को दोहराता है।
-
भविष्यवाणी शायद बस इतनी ही हो सकती है कि "क्लॉबॉट एक वर्ग में चलता है।" यह क्लॉबॉट की बार-बार होने वाली गतिविधियों को संक्षेप में बताने का एक तरीका होगा, हालांकि इसमें किसी संदर्भ का अभाव होगा।
छात्रों की इंजीनियरिंग नोटबुक को व्यक्तिगत रूप सेअंक दिए जा सकते हैं औरअंक याटीम के रूप में दिए जा सकते हैं। पिछले लिंक प्रत्येक दृष्टिकोण के लिए एक अलग मानदंड प्रदान करते हैं। जब भी शैक्षिक योजना में कोई मूल्यांकन मानदंड शामिल किया जाता है, तो गतिविधि शुरू होने से पहले मूल्यांकन मानदंड को समझाना या कम से कम छात्रों को उसकी प्रतियां देना एक अच्छी प्रथा है।
-
रिपीटिंग एक्शन्स प्रोजेक्ट को सेव करें, डाउनलोड करें और चलाएं
- अपनी इंजीनियरिंग नोटबुक में प्रोजेक्ट के बारे में दिए गए स्पष्टीकरणों की जाँच करें और आवश्यकतानुसार उनमें सुधार करने के लिए नोट्स जोड़ें।
चरण 2: प्रोजेक्ट चलाएं और रोबोट का निरीक्षण करें।

रिपीटिंग एक्शन्स प्रोजेक्ट (दाईं ओर) को फिर से देखें। यह प्रोजेक्ट आगे बढ़ने और फिर मुड़ने की प्रक्रिया को चार बार दोहराएगा। किसी निश्चित संख्या
कार्यों को दोहराने के लिए "रिपीट" लूप संरचना का उपयोग किया जाता है
यदि रिपीट संरचना को "व्हाइल" लूप संरचना से बदल दिया जाए, तो रोबोट शर्त सही रहने तक आगे बढ़ने और फिर मुड़ने के कार्यों को दोहराएगा। आप "while" लूप को हमेशा के लिए जारी रखने के लिए शर्त को "true" पर सेट कर सकते हैं।
के प्रोजेक्ट में, सेंसर के इनपुट का उपयोग यह निर्धारित करने के लिए किया जाता है कि कब मुड़ना शुरू करना है।
का प्रोजेक्ट टर्निंग शुरू करने का समय निर्धारित करने के लिए एक निश्चित ड्राइवट्रेन दूरी का उपयोग करता है। सेंसर के इनपुट की लगातार जांच करने के लिए, "व्हाइल" लूप के साथ "इफ/एल्स" स्टेटमेंट का उपयोग किया जाता है। बाईं ओर के प्रोजेक्ट में, "बम्पर बी" सेंसर दबाए जाने पर रोबोट दाईं ओर मुड़ेगा, अन्यथा यदि "बम्पर बी" सेंसर नहीं दबाया जाता है तो रोबोट लगातार आगे बढ़ता रहेगा। बम्परबी सेंसर के मान की लगातार जाँच करने के लिए, "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); } }
यदि छात्रों को किसी भी निर्देश में सहायता की आवश्यकता हो, तो उन्हें सहायता संबंधी जानकारी
Helpदेखने के लिए कहें।
से प्रोजेक्ट डाउनलोडचलाने के लिए कहें और रोबोट की गति का अवलोकन करने के लिए कहें फिर, कक्षा में चर्चा शुरू करें और छात्रों से यह समझाने के लिए कहें कि दोहराव संरचना के बजाय निरंतर चलने वाली संरचना का उपयोग
किया गया
छात्रों को यह ध्यान रखना चाहिए कि निरंतर चलने वाली संरचना का उपयोग इसलिए किया गया है क्योंकि यह परियोजना लगातार यह जाँच करती है कि बम्पर स्विच दबाया जा रहा है या नहीं।
चरण 3: स्क्वेयर्ड लूप्स चैलेंज!

- अपने क्लॉबॉट को एक वर्गाकार क्षेत्र में चलाएं।
- प्रत्येक बारी से पहले, पंजे को खोलना और बंद करना होगा, और भुजा को ऊपर और नीचे करना होगा।
- क्लॉबॉट वर्ग के किसी भी किनारे पर एक से अधिक बार नहीं चल सकता।
- आप ऊपर दिए गए RepeatingActions प्रोजेक्ट को शुरुआती बिंदु के रूप में उपयोग कर सकते हैं, लेकिन कोई भी बदलाव करने से पहले इसेSquaredLoopsके रूप में सेव कर लें।
अपनी इंजीनियरिंग नोटबुक में निम्नलिखित की योजना बनाएं:
- अपने समाधान की योजना बनाएं और अनुमान लगाएं कि आपकी परियोजना में प्रत्येक निर्देश के अनुसार क्लॉबॉट क्या करेगा।
- सबमिट करने से पहले अपने प्रोजेक्ट को डाउनलोड करें और चलाकरपरीक्षण करें।
- आवश्यकतानुसार प्रोजेक्ट में बदलाव करें और परीक्षण के दौरान किए गए परिवर्तनों के बारे में नोट्स बनाएं।
शिक्षक टूलबॉक्स
-
समाधान
स्क्वायर्ड लूप्स चैलेंज का संभावित समाधान निम्नलिखित है:
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);
}
}आप छात्रों को उनके प्रोजेक्टों के मूल्यांकन के लिएरूब्रिक प्रदान कर सकते हैं
की इंजीनियरिंग नोटबुकव्यक्तिगत रूपयाके रूप में रखा और मूल्यांकन किया जा सकता है