📘 CodingMarble Learn

ऐरे और लिस्ट: एक नाम में बहुत सारे मान

ऐरे (array) नंबर वाले डिब्बों की एक पंक्ति है जिनका नाम एक ही होता है। हर डिब्बे में एक मान होता है और उसका इंडेक्स 0 से शुरू होता है। इंडेक्स से हम डिब्बा पढ़ते या बदलते हैं, लूप से हर डिब्बे पर जाते हैं (ट्रैवर्सल), और इसी लूप से योग, औसत, सबसे बड़ा मान, गिनती और लीनियर सर्च करते हैं। 2D ऐरे पंक्तियों और स्तंभों का ग्रिड है, जिसे दो इंडेक्स और दो नेस्टेड लूप से पढ़ते हैं। ऐरे का आकार तय होता है; लिस्ट बढ़-घट सकती है।

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

  1. दस अंकों के लिए दस अलग वेरिएबल बनाना झंझट है। ऐरे इन्हें एक नाम के नीचे डिब्बों की एक पंक्ति में रखता है।
  2. हर डिब्बे का एक इंडेक्स है। पहला इंडेक्स 0 है, तो 5 डिब्बों के इंडेक्स 0 से 4 तक हैं। scores[2] तीसरा डिब्बा पढ़ता है।
  3. ट्रैवर्सल: लूप डिब्बा 0, फिर 1, फिर 2 ... पर जाता है और हर मान को कुल योग में जोड़ता है।
  4. पंक्ति पर एल्गोरिद्म: अब तक का सबसे बड़ा मान याद रखो, या डिब्बा-दर-डिब्बा खोजो जब तक लक्ष्य न मिले।
  5. 2D ऐरे एक ग्रिड है। grid[row][col] एक खाना चुनता है। बाहरी लूप पंक्तियों पर, अंदर का लूप स्तंभों पर चलता है।
  6. आपकी बारी: एक लक्ष्य और एक काम चुनें, पहले अनुमान लगाएँ, फिर लूप को हर डिब्बा जाँचते देखें।

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

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

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

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

अलग-अलग वेरिएबल क्यों न बनाएँ?

ऐरे में एक ही लूप कितने भी मानों पर चल जाता है। अलग वेरिएबल के लिए हर बार नया कोड चाहिए।

a[length] त्रुटि क्यों देता है?

आख़िरी डिब्बा length − 1 है। a[length] अंत से आगे है।

सबसे बड़ा मान 0 से नहीं, a[0] से क्यों?

अगर सभी मान ऋणात्मक हैं तो 0 सबसे बड़ा दिखेगा, जो ग़लत उत्तर है।

g[r][c] में पहले क्या आता है?

पहले पंक्ति, फिर स्तंभ, जैसे "पंक्ति C, सीट 7"।

लक्ष्य न मिले तो क्या होता है?

लूप हर डिब्बा जाँचता है, कोई मिलान नहीं मिलता और −1 लौटता है।

ऐरे क्या है?

ऐरे एक ही प्रकार के कई मानों को एक नाम से रखता है। नंबर लिखे लॉकरों की पंक्ति सोचिए।

Python:  scores = [72, 85, 90, 64, 78]
Java:    int[] scores = {72, 85, 90, 64, 78};
C++:     int scores[5] = {72, 85, 90, 64, 78};

एक मान पढ़ना: scores[1] = 85। बदलना: scores[3] = 70। scores[5] माँगना त्रुटि है (index out of bounds), क्योंकि छठा डिब्बा है ही नहीं।

लूप से ऐरे का ट्रैवर्सल

ट्रैवर्सल यानी हर एलिमेंट पर क्रम से एक बार जाना। लूप यह करता है, इसलिए वही कोड 5 मानों पर भी चलता है और 5,000 पर भी। इसी से लिस्ट हल को सामान्य बनाती है।

Python:  for i in range(len(a)): print(a[i])
Java:    for (int i = 0; i < a.length; i++) { ... }
         for (int x : a) { ... }
C++:     for (int i = 0; i < n; i++) { ... }

i < length लिखें, i <= length नहीं, वरना लूप अंत से एक डिब्बा आगे चला जाएगा।

ऐरे के मुख्य एल्गोरिद्म

big = a[0]
for x in a:
    if x > big: big = x

2D ऐरे: पंक्ति और स्तंभ

2D ऐरे पंक्तियों का ऐरे है। grid[r][c] पंक्ति r और स्तंभ c का खाना है (दोनों 0 से)।

Java:   int[][] g = new int[3][4];   // 3 पंक्ति, 4 स्तंभ
Python: g = [[1, 2, 3], [4, 5, 6]]

पंक्ति-क्रम (row-major): बाहर पंक्तियों का लूप, अंदर स्तंभों का। स्तंभ-क्रम (column-major): बाहर स्तंभों का लूप। आम काम: पंक्ति का योग, स्तंभ का योग, ग्रिड में सबसे बड़ा, खाने खोजना।

ऐरे, लिस्ट और दूसरी डेटा संरचनाएँ

ऐरेलिस्ट (ArrayList, Python list)
आकारबनाते समय तयबढ़-घट सकता है
जोड़ना/हटानानहीं, नया ऐरे बनाना पड़ता हैadd, insert, remove
लंबाईa.lengthsize() / len()

Java की ArrayList केवल ऑब्जेक्ट रखती है, इसलिए संख्याएँ रैपर क्लास में जाती हैं: int के लिए Integer, double के लिए Double। Java यह बदलाव अपने-आप करता है (ऑटोबॉक्सिंग और अनबॉक्सिंग)।

दूसरी संरचनाएँ: डिक्शनरी कुंजी से मान ढूँढती है, सेट केवल अलग-अलग मान रखता है, स्टैक/क्यू निकालने का क्रम तय करते हैं।

करके देखें: आपके हफ़्ते के कदम

7 दिन तक रोज़ के कदम (या व्यायाम के मिनट) लिखें। उन्हें 7 लंबाई के ऐरे में रखें। हाथ से लूप चलाएँ: कुल, औसत, सबसे अच्छा दिन (सबसे बड़े मान का इंडेक्स), और कितने दिन 5,000 से ऊपर रहे। फिर किसी भी भाषा में टाइप करके उत्तर जाँचें।

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

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

1. a = [4, 9, 2, 7]। a[0], a[3], लंबाई और आख़िरी इंडेक्स बताइए।

a[0] = 4, a[3] = 7, लंबाई = 4, आख़िरी इंडेक्स = 3।

2. [5, 3, 8] पर योग वाला लूप चलाइए।

total = 0 → 5 → 8 → 16। औसत = 16 / 3 ≈ 5.33।

3. [6, 11, 4, 11, 9] में सबसे बड़ा मान और उसका पहला इंडेक्स?

big = 6, फिर 11 (इंडेक्स 1)। दूसरा 11 बड़ा नहीं, इसलिए नहीं बदला। उत्तर 11, इंडेक्स 1।

4. [3, 7, 1] में 7 की लीनियर सर्च। कितनी तुलनाएँ?

3 ≠ 7, 7 = 7 → इंडेक्स 1 पर, 2 तुलनाओं में मिला।

5. g = [[1, 2, 3], [4, 5, 6]]। g[1][0], पंक्ति-योग और स्तंभ-योग?

g[1][0] = 4। पंक्ति-योग 6 और 15। स्तंभ-योग 5, 7, 9।

6. [1, 2, 3, 4, 5] को उसी ऐरे में उलटिए।

a[0]↔a[4], a[1]↔a[3] बदलें; बीच वाला वहीं → [5, 4, 3, 2, 1]। सिर्फ़ 2 अदला-बदली।

आम गलतियाँ

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

1. 8 एलिमेंट वाले ऐरे का आख़िरी इंडेक्स:
2. a = [10, 20, 30]। a[1] है:
3. Java में ऐरे a के हर इंडेक्स पर सुरक्षित लूप:
4. g[2][3] में 2 क्या है?
5. बनने के बाद कौन बढ़ सकता है?

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

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

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

आसान शब्दों में ऐरे क्या है?

एक नाम वाले नंबर लगे डिब्बों की पंक्ति, हर डिब्बे में एक ही प्रकार का एक मान।

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

ऐरे का आकार तय होता है। Python list या Java ArrayList जैसी लिस्ट बढ़-घट सकती है।

2D ऐरे किस काम आता है?

तालिका और ग्रिड के लिए: सीटें, खेल का बोर्ड, चित्र के पिक्सेल, कई विषयों के अंक।

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

रोमानियाClasa a VIII-aAlgorithms
रोमानियाClasa a IX-aStoring data and organising code in a programming language
रोमानियाClasa a X-aStructured data
रोमानियाClasa a XI-aData structures
यूक्रेन8 класProblem solving
इंग्लैंडYear 103.2 Programming
अमेरिकाGrade 9Algorithms and Programming
अमेरिकाGrade 11Data Collections
अमेरिकाGrade 11Algorithms and Programming
रूस8 классAlgorithms and programming
रूस9 классAlgorithms and programming
रूस9 классAlgorithms and programming

पहले यह पढ़ें

आगे पढ़ें

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

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