📘 CodingMarble Learn

ब्लॉक प्रोग्रामिंग: एल्गोरिद्म, लूप, चर, घटना और सेंसर

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

🎬 कदम-दर-कदम कहानी

  1. यह ग्रिड पर रोबोट है और हरा झंडा। लक्ष्य: झंडे तक पहुँचना। रोबोट का अपना दिमाग़ नहीं है: वह सिर्फ़ ब्लॉक का आदेश मानता है।
  2. क्रम: आगे, आगे, आगे, दाएँ मुड़ो, आगे, आगे। ब्लॉक ऊपर से नीचे एक-एक करके चलते हैं। नीला निशान देखिए।
  3. लूप: 4 बार दोहराओ [आगे 2, दाएँ मुड़ो]। सिर्फ़ दो ब्लॉक, पर रोबोट पूरा वर्ग बनाता है। लूप से लिखना कम हो जाता है।
  4. चर (variable): कदम शुरू में 1। 'कदम' जितना आगे चलो, फिर कदम में 1 जोड़ो। संख्या बदलती है, इसलिए रास्ता सर्पिल बनता है।
  5. शर्त और सेंसर: दीवार का सेंसर पूछता है 'आगे दीवार है?'। हाँ तो दाएँ मुड़ो, नहीं तो आगे चलो। हरा झंडा दबाने पर प्रोग्राम शुरू होता है: यह घटना (event) है।
  6. अब आप: [आगे 2, दाएँ मुड़ो] कितनी बार दोहराना है चुनिए और 'चलाओ' दबाइए। पहले आकार का अनुमान लगाइए, फिर 2, 3, 4 और 6 आज़माइए।

टिप: 3D दृश्य को घुमाने के लिए खींचें। ज़ूम के लिए दो उंगलियाँ इस्तेमाल करें।

🤔 आम शंकाएँ और उनके जवाब

रोबोट को झंडे की जगह अपने आप क्यों पता नहीं होती?

रोबोट अपनी समझ नहीं रखता। वह सिर्फ़ उतना करता है जितना ब्लॉक कहते हैं। उसे जो भी पता चलता है, ब्लॉक या सेंसर से ही आता है।

क्या लूप सच में ब्लॉक बार-बार लिखने से बेहतर है?

हाँ। यह छोटा है और गलती एक ही जगह सुधरती है। चरण 2 का वर्ग लूप में दो ब्लॉक से बनता है, बाहर आठ चाहिए।

सिर्फ़ चर बदलने से रास्ता क्यों बदल गया?

चर तय करता है कि रोबोट हर बार कितना चले। वह बढ़ता है तो हर भुजा लंबी होती है और रास्ता सर्पिल बनता है।

शर्त और घटना में क्या अंतर है?

घटना स्क्रिप्ट शुरू करती है (हरा झंडा, कुंजी)। शर्त वह सवाल है जो स्क्रिप्ट चलते समय पूछती है (आगे दीवार है?)।

रास्ते में दो दीवारें हों तो?

वही लूप और वही शर्त दोनों को सँभाल लेती है, क्योंकि हर चक्कर में सेंसर दोबारा जाँचा जाता है। इसी से लूप के साथ शर्त इतनी ताक़तवर होती है।

बंद वर्ग बनाने के लिए कितनी बार दोहराएँ?

4 बार, क्योंकि हर चक्कर में 90 डिग्री दाएँ मुड़ते हैं और चार मोड़ से 360 डिग्री पूरे होते हैं। मुक्त खेल में 2 और 3 आज़माइए, आकार खुले रहेंगे।

एल्गोरिद्म और प्रोग्राम

एल्गोरिद्म साफ़ चरणों की सूची है जो किसी समस्या को हल करती है। प्रोग्राम वह एल्गोरिद्म है जिसे इस तरह लिखा गया हो कि कंप्यूटर या रोबोट चला सके। ब्लॉक प्रोग्रामिंग में हर आदेश एक रंगीन ब्लॉक है; ब्लॉक ईंटों की तरह जुड़ते हैं, इसलिए वर्तनी की गलती (syntax error) नहीं होती।

बने हुए प्रोग्राम को बदलना: उसे चलाइए, देखिए कहाँ गड़बड़ है, एक ब्लॉक बदलिए, फिर चलाइए। एक बार में एक ही चीज़ बदलिए ताकि पता चले किस बदलाव से ठीक हुआ या बिगड़ा। इस आदत को डीबग करना कहते हैं।

क्रम: ब्लॉक एक के बाद एक चलते हैं

सबसे सरल प्रोग्राम क्रम (sequence) है: ब्लॉक 1, फिर ब्लॉक 2, फिर ब्लॉक 3। क्रम मायने रखता है। 'आगे, फिर मुड़ो' और 'मुड़ो, फिर आगे' एक जैसे नहीं हैं। 3D में वही ब्लॉक अलग क्रम में रखने पर रोबोट दूसरे खाने पर पहुँचता है।

लूप और नेस्टेड लूप

लूप अपने अंदर के ब्लॉक दोहराता है। '4 बार दोहराओ [आगे 2, दाएँ मुड़ो]' वर्ग बनाता है। यह आठ ब्लॉक लिखने से छोटा है और सुधारना भी आसान: 2 को एक बार बदलिए, चार बार नहीं।

नेस्टेड लूप एक लूप के अंदर दूसरा लूप है। उदाहरण: 3 बार दोहराओ [ 4 बार दोहराओ [आगे 2, दाएँ मुड़ो], आगे 4 ] तीन वर्ग एक कतार में बनाता है। बाहरी लूप के हर चक्कर में भीतरी लूप पूरा चलता है, इसलिए भीतरी ब्लॉक 3 x 4 = 12 बार चलते हैं।

एक के बाद एक कई लूप भी आम हैं: पहला लूप वर्ग बनाए, दूसरा त्रिभुज।

चर (वेरिएबल)

चर एक नाम वाला डिब्बा है जिसमें बदलने वाला मान रहता है, जैसे कदम, स्कोर या जान। ब्लॉक: कदम को 1 करो, कदम में 1 जोड़ो, और कदम का मान दिखाने वाला गोल ब्लॉक।

उदाहरण: कदम = 1; 4 बार दोहराओ [आगे (कदम), दाएँ मुड़ो, कदम में 1 जोड़ो]। रोबोट 1, 2, 3, 4 खाने चलता है और सर्पिल बनाता है।

शर्त, घटना और सेंसर

शर्त तय करती है कि क्या करना है: अगर आगे दीवार है तो दाएँ मुड़ो, नहीं तो आगे चलो। सवाल के दो ही जवाब होते हैं: सही या गलत।

घटना वह है जो स्क्रिप्ट शुरू करे: हरा झंडा, कोई कुंजी, बटन, संदेश। घटना का इंतज़ार करने वाले प्रोग्राम घटना-आधारित कहलाते हैं।

सेंसर दुनिया को मापता है (दूरी, रोशनी, स्पर्श, तापमान)। एक्चुएटर दुनिया में कुछ करता है (मोटर, बत्ती, बज़र)। रोबोट का प्रोग्राम चक्र में चलता है: सेंसर पढ़ो, शर्त से तय करो, एक्चुएटर चलाओ। जैसे रेखा पर चलने वाला रोबोट हर सेकंड 50 बार रोशनी का सेंसर पढ़कर मोटर घुमाता है।

सिस्टम का व्यवहार सुधारने के लिए उसे परखिए, कोई ऐसा मामला खोजिए जहाँ वह फेल होता है (दीवार नई जगह है) और उसके लिए शर्त जोड़िए।

कस्टम ब्लॉक और उपप्रोग्राम

कस्टम ब्लॉक (उपप्रोग्राम, फ़ंक्शन) ब्लॉकों के समूह को नाम देता है। वर्ग को एक बार '4 बार दोहराओ [आगे 2, दाएँ मुड़ो]' के रूप में बनाइए, फिर कहीं भी इस्तेमाल कीजिए। वर्ग में सुधार करें तो हर जगह सुधर जाता है। कस्टम ब्लॉक में इनपुट भी हो सकता है, जैसे वर्ग (आकार)।

क्यों काम का है? प्रोग्राम छोटा, गलतियाँ कम और पढ़ना आसान: 'वर्ग, चलो, वर्ग' साफ़ बताता है रोबोट क्या कर रहा है।

मुख्य सूत्र और परिभाषाएँ

हल किए गए उदाहरण

1. '4 बार दोहराओ [आगे 2, दाएँ 90 डिग्री मुड़ो]' कौन-सा आकार बनाता है?

2 खाने की भुजा वाला वर्ग। चार भुजाएँ, चार बार 90 डिग्री दाएँ मुड़ना = 360 डिग्री, इसलिए रोबोट वहीं लौटता है जहाँ से चला था।

2. '3 बार दोहराओ [ 4 बार दोहराओ [आगे 1, दाएँ मुड़ो], आगे 3 ]' में कितने 'आगे' ब्लॉक चलेंगे?

भीतरी लूप: 4 आगे, 3 बार चला = 12। 'आगे 3' के 3 ब्लॉक और। कुल 15 आगे ब्लॉक (12 + 3)।

3. कदम = 1; 4 बार दोहराओ [आगे (कदम), दाएँ मुड़ो, कदम में 1 जोड़ो]। रोबोट कुल कितने खाने चलेगा?

कदम के मान 1, 2, 3, 4 होंगे। कुल = 1 + 2 + 3 + 4 = 10 खाने।

4. रोबोट हमेशा दोहराता है: अगर आगे दीवार तो दाएँ मुड़ो, नहीं तो आगे। वह दीवार की ओर मुँह करके शुरू करता है। पहले क्या करेगा?

वह दाएँ मुड़ेगा, क्योंकि सेंसर कहता है आगे दीवार = सही। फिर दोबारा जाँचेगा; अब आगे दीवार न हो तो आगे चलेगा।

5. एक प्रोग्राम 8 ब्लॉक से एक के बाद एक दो वर्ग बनाता है। कस्टम ब्लॉक से उसे छोटा कीजिए।

कस्टम ब्लॉक 'वर्ग' = 4 बार दोहराओ [आगे 2, दाएँ मुड़ो] (3 ब्लॉक)। फिर मुख्य प्रोग्राम सिर्फ़ 'वर्ग, आगे 3, वर्ग' (3 ब्लॉक)। छोटा और सुधारना आसान।

6. रोबोट झंडे पर रुके, आगे न निकल जाए। कौन-से ब्लॉक जोड़ेंगे?

झंडा पहचानने के लिए सेंसर (रंग या दूरी) और शर्त: अगर झंडा दिखे तो रुको, नहीं तो आगे, यह सब एक लूप के अंदर।

आम गलतियाँ

अभ्यास क्विज़

1. लूप का काम है:
2. चर (variable):
3. स्क्रिप्ट शुरू करने के लिए हरे झंडे को दबाना क्या है?
4. रोबोट का कौन-सा भाग दूरी मापता है?
5. कस्टम ब्लॉक काम का क्यों है?

अभ्यास: खुद जवाब दो

अपना जवाब लिखो या चुनो, फिर जाँचें दबाओ। अटको तो संकेत देखो; जवाब देने के बाद पूरा हल दिखेगा।

अक्सर पूछे जाने वाले प्रश्न

ब्लॉक प्रोग्रामिंग क्या है?

कोड टाइप करने की जगह दृश्य ब्लॉक जोड़कर प्रोग्राम लिखने का तरीका, जैसे Scratch में। इससे वही विचार सीखते हैं: क्रम, लूप, चर, शर्त और घटना।

एल्गोरिद्म और प्रोग्राम में क्या अंतर है?

एल्गोरिद्म चरणों में योजना है। प्रोग्राम वही योजना ऐसी भाषा या ब्लॉक में लिखी हुई जिसे कंप्यूटर चला सके।

सेंसर और एक्चुएटर क्या हैं?

सेंसर कुछ मापता है (रोशनी, दूरी, स्पर्श)। एक्चुएटर कुछ करता है (मोटर, बज़र, बत्ती)। रोबोट सेंसर पढ़ता है और एक्चुएटर चलाता है।

यह कहाँ पढ़ाया जाता है

फ्रांसQuatrièmeAlgorithms and programming
फ्रांसQuatrièmeComputing and programming
फ्रांसTroisièmeAlgorithms and programming
फ्रांसTroisièmeComputing and programming

पहले यह पढ़ें

आगे पढ़ें

इससे जुड़े पाठ

सभी कंप्यूटर विज्ञान पाठ