📘 CodingMarble Learn

प्रोग्रामिंग तकनीक

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

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

  1. ऐरे डिब्बों की एक कतार है। हर डिब्बे का नंबर (इंडेक्स) होता है और पहला इंडेक्स 0 है।
  2. स्टैक प्लेटों के ढेर जैसा है। जो प्लेट सबसे ऊपर रखी, वही सबसे पहले उठती है।
  3. क्यू टिकट की लाइन जैसी है। जो सबसे पहले आया, उसी की बारी सबसे पहले आती है।
  4. प्रोग्राम फ़ाइल से एक-एक रिकॉर्ड पढ़ता है, बदलता है और नई फ़ाइल में लिख देता है।
  5. बड़े काम को छोटे मॉड्यूल में बाँटा: मुख्य (Main) पढ़ो, हिसाब और छापो को बुलाता है। हर मॉड्यूल एक काम करता है।
  6. अब आपकी बारी। ऐरे, स्टैक या क्यू चुनिए। चीज़ें जोड़िए और निकालिए। देखिए पहले कौन निकलता है।

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

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

ऐरे 1 से नहीं, 0 से क्यों शुरू होता है?

इंडेक्स बताता है कि डिब्बा शुरुआत से कितना दूर है। पहला डिब्बा 0 कदम दूर है, इसलिए उसका इंडेक्स 0 है।

स्टैक से मैं कौन-सी चीज़ निकाल सकता हूँ?

सिर्फ़ सबसे ऊपर वाली। नीचे वाली तक पहुँचने के लिए पहले उसके ऊपर की चीज़ें हटानी पड़ती हैं।

क्यू सबसे पुरानी चीज़ पहले क्यों देती है?

यह न्यायसंगत है, टिकट की लाइन की तरह: जो पहले आया, उसकी बारी पहले।

पूरी फ़ाइल एक साथ क्यों नहीं खोलते?

कुछ फ़ाइलें बहुत बड़ी होती हैं। एक-एक रिकॉर्ड पढ़ने में कम मेमोरी लगती है और किसी भी आकार की फ़ाइल चल जाती है।

प्रोग्राम को मॉड्यूल में क्यों बाँटते हैं?

छोटे मॉड्यूल जाँचने और सुधारने में आसान होते हैं और दोबारा इस्तेमाल हो सकते हैं। Main उन्हें बस क्रम से बुलाता है।

क्या मैं स्टैक या क्यू के बीच से चीज़ निकाल सकता हूँ?

नहीं। स्टैक सिर्फ़ ऊपर वाली देता है और क्यू सिर्फ़ आगे वाली। ऐरे में कोई भी इंडेक्स चुन सकते हैं।

डेटा स्ट्रक्चर: ऐरे, स्टैक, क्यू

डेटा स्ट्रक्चर (आँकड़ा संरचना) बहुत से मानों को साथ रखने का सोचा-समझा तरीका है, ताकि प्रोग्राम उन्हें आसानी से इस्तेमाल करे।

ऐरे (array) एक ही तरह के डिब्बों की कतार है। हर डिब्बे का इंडेक्स होता है और गिनती 0 से शुरू होती है। इसलिए 6 डिब्बों वाले ऐरे के इंडेक्स 0 से 5 हैं। किसी भी डिब्बे तक सीधे पहुँचा जा सकता है: marks[3]।

स्टैक (stack) LIFO है: Last In, First Out यानी आख़िर में आया, पहले गया। Push ऊपर रखता है, Pop ऊपर वाला निकालता है। Undo बटन और ब्राउज़र का Back बटन स्टैक इस्तेमाल करते हैं।

क्यू (queue) FIFO है: First In, First Out यानी पहले आया, पहले गया। Enqueue पीछे जोड़ता है, Dequeue आगे से निकालता है। प्रिंटर की प्रतीक्षा सूची क्यू है।

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

प्रोग्राम का मानकीकरण

मानकीकरण का मतलब है कि पूरी टीम एक जैसे नियम माने, ताकि कोई भी प्रोग्राम का कोई भी हिस्सा पढ़ और सुधार सके।

मानक प्रोग्राम पढ़ने, जाँचने और बदलने में आसान होते हैं और नए साथी जल्दी सीख लेते हैं।

फ़ाइल प्रोसेसिंग

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

आम तरीका: फ़ाइल खोलो, रिकॉर्ड पढ़ो, उसे बदलो, नतीजा लिखो, फ़ाइल का अंत आने तक दोहराओ, फिर बंद करो। आम काम हैं खोजना, क्रमबद्ध करना, दो क्रमबद्ध फ़ाइलों को मिलाना और रोल नंबर जैसी कुंजी से रिकॉर्ड अपडेट करना।

इनपुट और आउटपुट डिज़ाइन

इनपुट-आउटपुट डिज़ाइन यह है कि लोग प्रोग्राम से कैसे बात करें: कौन-से फ़ॉर्म भरें और कौन-सी रिपोर्ट पढ़ें।

अच्छी इनपुट स्क्रीन सरल होती है, सही क्रम में होती है और इस्तेमाल से पहले डेटा जाँचती है: मौजूदगी जाँच (ख़ाली तो नहीं), प्रकार जाँच (अंक है, अक्षर नहीं), सीमा जाँच (अंक 0 से 100) और चेक डिजिट (लंबे नंबर की टाइपिंग-ग़लती पकड़ने वाला एक अतिरिक्त अंक)।

अच्छा आउटपुट साफ़ होता है: शीर्षक, सीधे कॉलम, इकाई और कुल की पंक्ति। मददगार संदेश दिखाइए, जैसे "अंक 0 से 100 के बीच होने चाहिए"।

संरचित प्रोग्राम डिज़ाइन

संरचित डिज़ाइन में प्रोग्राम तीन बुनियादी आकारों से बनता है: क्रम (sequence), चयन (selection) यानी if / else, और दोहराव (iteration) यानी लूप। इधर-उधर कूदना टाला जाता है।

हम टॉप-डाउन डिज़ाइन करते हैं: पहले बड़ा काम (Main) लिखो, फिर उसे छोटे मॉड्यूल में तोड़ो, और फिर और छोटे में, जब तक हर एक आसान न हो जाए। अच्छा मॉड्यूल एक ही काम करता है (उच्च संसक्ति) और दूसरे मॉड्यूल पर कम निर्भर होता है (निम्न युग्मन)। अलग-अलग लोग मॉड्यूल बना और जाँच सकते हैं और बाद में दोबारा इस्तेमाल भी कर सकते हैं।

खुद करके देखो

3D में आख़िरी चरण पर जाइए। स्टैक चुनिए, चार चीज़ें जोड़िए, फिर एक निकालिए। कौन निकली? अब क्यू चुनकर यही कीजिए। दबाने से पहले अंदाज़ा लगाइए! घर पर "चाय बनाओ" के चरण तीन मॉड्यूल (उबालो, मिलाओ, परोसो) में लिखिए और देखिए कि हर एक सिर्फ़ एक काम करता है या नहीं।

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

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

1. ऐरे marks = [7, 3, 9, 4, 6, 2] है। marks[3] क्या है?

इंडेक्स 0 पर 7, 1 पर 3, 2 पर 9, 3 पर 4। इसलिए marks[3] = 4।

2. स्टैक में 5, फिर 8, फिर 2 push किया और एक बार pop किया। क्या निकला और अब ऊपर क्या है?

Pop आख़िर में आया हुआ निकालता है: 2। अब ऊपर 8 है।

3. क्यू में 4, 1, 6 enqueue किए और एक बार dequeue किया। क्या निकला?

पहले आया, पहले गया: 4 निकला। अब क्यू में 1, 6 हैं।

4. ऐरे में 12 चीज़ें हैं। आख़िरी इंडेक्स क्या है?

इंडेक्स 0 से 11 तक हैं, इसलिए आख़िरी इंडेक्स 11 है।

5. फ़ाइल में 250 रिकॉर्ड हैं और हर एक 40 बाइट का है। फ़ाइल कितनी बड़ी है?

250 × 40 = 10,000 बाइट (10 KB)।

6. अंक का फ़ील्ड 0 से 100 लेता है। 150 को कौन-सी जाँच पकड़ेगी?

सीमा जाँच। 150, 0 से 100 के बाहर है, इसलिए प्रोग्राम त्रुटि दिखाएगा।

आम गलतियाँ

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

1. कौन-सा ढाँचा आख़िर में आया, पहले गया (LIFO) है?
2. ऐरे का पहला इंडेक्स है:
3. अंक 0 से 100 के बीच हैं, यह कौन-सी जाँच पक्का करती है?
4. अच्छा मॉड्यूल:
5. क्रमिक फ़ाइल में रिकॉर्ड पढ़े जाते हैं:

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

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

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

स्टैक और क्यू में क्या अंतर है?

स्टैक नई चीज़ पहले लौटाता है (LIFO), जैसे प्लेटें। क्यू पुरानी चीज़ पहले लौटाती है (FIFO), जैसे टिकट की लाइन।

प्रोग्रामर कोडिंग मानक क्यों मानते हैं?

ताकि टीम का कोई भी सदस्य कोड जल्दी पढ़, जाँच और सुधार सके। साफ़ नाम, एक जैसा लेआउट और टिप्पणियाँ कोड बाँटना आसान बनाते हैं।

स्ट्रक्चर्ड प्रोग्रामिंग क्या है?

क्रम, चयन और लूप से प्रोग्राम बनाना और काम को ऊपर से नीचे छोटे मॉड्यूल में बाँटना, जहाँ हर मॉड्यूल एक ही काम करे।

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

जापान高校(専門学科)1〜3年Programming Technology

पहले यह पढ़ें

आगे पढ़ें

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

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