2008-11-04 12 views
5

आपने प्रोग्रामर को नेस्टेड सरणी कैसे समझाई है। मैं किसी ऐसे व्यक्ति को सोच रहा हूं जिसमें प्रोग्रामिंग की एंट्री लेवल समझ हो, लेकिन अधिक जटिल कोडिंग करने की कोशिश कर रहा है।प्रोग्रामर को नेस्टेड सरणी समझाते हुए

सरणी के साथ सरणी काम करता है, लेकिन वे विचार के चारों ओर अपने दिमाग को काफी समझ नहीं सकते हैं।

संपादित करें: एक नेस्टेड सरणी के उदाहरण:

array(
    'array1' => array(
     'key1' => 'val1', 
     'key2' => 'val2', 
    ), 
    'array2' => array(
     'key1' => 'val1', 
     'key2' => 'val2', 
    ), 
); 
बेशक

, वे आम तौर पर इस तुलना में अधिक जटिल हैं और हो सकता है कि समस्या है।

+0

कृपया हमें बताएं (हमें, पहले :) "घोंसला वाले सरणी" के साथ आपका क्या मतलब है! सी या कुछ अन्य भाषा में एक उदाहरण करें ... –

+1

यह प्रश्न ऑफ-विषय प्रतीत होता है क्योंकि यह सहायता केंद्र में वर्णित चर्चा की सीमा के भीतर नहीं है। – Will

उत्तर

10

उन्हें एक सूची के रूप में एक सरणी के बारे में सोचने के लिए कहें- यह उन्हें किराने की सूची की तरह कुछ कम अमूर्त देने में मदद करता है। फिर, एक नेस्टेड सरणी बस सूचियों की एक सूची है।

शायद मेरे पास एक todo सूची, किराने की सूची, और amazon.com पर एक इच्छासूची है। अब मेरे पास मेरी सभी सूचियों की एक सूची है, और मैं उनके द्वारा कदम उठाकर प्रत्येक सूची में उन सभी तत्वों को देख सकता हूं।

2

आपने इसे कैसे समझाया है? यह किसी ऐसे व्यक्ति के लिए एक बड़ी छलांग की तरह प्रतीत नहीं होता है जो एक आयामी को समझने में सक्षम होने के लिए एक आयामी सरणी को समझता है कि एक int या स्ट्रिंग के बजाय प्रत्येक सरणी तत्व के बजाय एक और सरणी होती है।

शायद एक समानता निर्देशिका की तुलना करने में समानता होगी, एक आयामी सरणी एक निर्देशिका के समान होगी जिसमें फाइलों का एक समूह होता है, एक निर्देशिका में एक द्वि-आयामी सरणी जिसमें कई अन्य निर्देशिकाएं होती हैं, जिनमें प्रत्येक फाइल का एक समूह होता है, इत्यादि

0

यदि आप सी प्रकार, गैर-रैग किए गए, सरणी को देख रहे हैं, तो इसे संख्याओं की तुलना में, आधार 10 भाग, और वहां अंक मदद कर सकते हैं। इसी प्रभाव के लिए एक और अच्छा स्रोत समय होगा क्योंकि इसमें गैर वर्दी बेस 60s = 1m, 60m = 1h, 24h = 1day, 7day = 1week

1

उदाहरण के रूप में बिटमैप का उपयोग करें।

int x[5][5] = { 
    { 1,0,0,0,1 }, 
    { 0,1,0,1,0 }, 
    { 0,0,1,0,0 }, 
    { 0,1,0,1,0 }, 
    { 1,0,0,0,1 } 
}; 

फिर उन्हें बताएंगे कि कैसे बिटमैप प्रदर्शित करने के लिए नेस्टेड for छोरों उपयोग करने के लिए: सी में, आप एक X इस तरह की एक बिटमैप बना सकते हैं।

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

+0

आप * सी में ऐसा कर सकते हैं, आपका कंपाइलर केवल यह इंगित करेगा कि कोड के उस खंड में एक int * को आपके int को कास्टिंग करना सबसे अच्छा विचार नहीं है जिसे आप कभी भी आते हैं;) – tloach

+0

आपका क्या मतलब है? बहु-आयामी सरणी शुरू करने का यह सही तरीका है, मैं इसे हर समय उपयोग करता हूं और मेरा कंपाइलर इसके बारे में कुछ भी नहीं कहता है। –

+0

मैंने अभी इसे देखा और पुष्टि कर सकते हैं कि मेरा कोड पूरी तरह से ठीक है। मैं देख सकता हूं कि आप क्यों सोच सकते हैं कि "{1,0,0,0,1}" एक इंटरेक्टर को एक सूचक के लिए मूल्यांकन करता है, लेकिन वास्तव में शुरुआत में आंतरिक ब्रेसिज़ केवल पठनीयता के लिए हैं। ब्रेसिज़ के बिना इसे लिखना सटीक प्रभाव होगा। –

1

खेल निहित घुमावदार सरणी का वर्णन करने के लिए उचित अनुरूपता प्रदान कर सकते हैं। एक टीम लोगों की एक श्रृंखला है, एक प्रतियोगिता टीमों की एक श्रृंखला है जो एक-दूसरे के खिलाफ खेलते हैं।

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

5

एक नेस्टेड सरणी एक सेट के भीतर एक सेट है। इसलिए, पुस्तकालय में किताबों का एक सेट है, एक पुस्तक में अध्यायों का एक सेट है। एक अध्याय में पैराग्राफ का एक सेट होता है, एक अनुच्छेद में वाक्यों का एक सेट होता है। एक वाक्य में शब्दों का एक सेट है।

For each book in library 

    For each chapter in book 

     For each paragraph in chapter 

आदि ...

1

एक ठोस उदाहरण एक पुस्तक के पीछे सूचकांक है। शब्दों की एक सूची, पेज संख्याओं की सूची से जुड़े प्रत्येक शब्द।

सेब - 1, 2, 3-4
भालू - 32-35, 79, 83
बिल्लियों - 14, 15

0

मुझे अपने शिक्षक बहु आयामी सरणी व्याख्या करने के लिए कर रही है याद में लाने के लिए था एक छोटी पोर्टेबल इंडेक्स कार्ड फ़ाइल (उन पुरानी डेवी दशमलव प्रणाली अलमारियों के विपरीत नहीं जो कुछ समय पहले पुस्तकालयों में पाई जा सकती थीं)।

प्रत्येक स्लॉट एक 2 आयामी सरणी थी (यानी प्रत्येक अनुक्रमणिका में नोट कार्ड की एक सरणी होती थी)। लेकिन कंटेनर स्वयं 3 आयामी सरणी का सूचकांक था (यानी प्रत्येक इंडेक्स में एक सरणी होती है जिसमें नोटकार्ड की एक सरणी होती है)। तब वहां से सिद्धांत आसान था।

कंक्रीट उदाहरण बहुत उपयोगी हैं।

0

2 आयामों को समझाना आसान है। बस एक टेबल के बारे में सोचो। 3 आयाम बस घन या अन्य 3 डी छवि के बारे में सोचते हैं। 4 आयाम 4 वीं आयाम वाले समय वाली फिल्म जैसी छवियों की एक श्रृंखला के बारे में सोचते हैं।

4+ आयाम उस मॉडल का उपयोग करके कल्पना करना मुश्किल है। लेकिन इसके बारे में एक फाइलिंग कैबिनेट के रूप में सोचें जिसमें एक और फाइल कैबिनेट मदद करता है। आप दराज खोलते हैं और बाहर एक फाइलिंग कैबिनेट pops। आप जिस ड्रॉवर को चाहते हैं उसे ढूंढें और उस दराज को खोलें और बाहर एक और फाइलिंग कैबिनेट पॉप करें .... आखिरकार जब तक आप अपना पेपर नहीं ले लेते।

2

इसे ड्रा करें।

एक चर एक बॉक्स
1 आयामी सरणी बॉक्स की एक पंक्ति है।
2 आयामी सरणी बक्से का एक ग्रिड है।
3 आयामी सरणी बक्से का घन है।

यदि उन्हें सामान्य अवधारणा में समस्या हो रही है, तो 4 आयामों को दृष्टि से समझाने का प्रयास न करें।

0

शायद आप इसे किसी ऐसे व्यक्ति के संदर्भ से समझा रहे हैं जो सरणी की सरणी को समझता है। मैं उन्हें यह समझने की कोशिश करता हूं कि वे उन्हें सबसे छोटे (आंतरिक सरणी पढ़ें) शुरू करके पहले से ही समझते हैं ... और धीरे-धीरे विस्तार कर रहे हैं, उन्हें तब तक प्रश्न पूछने के लिए पर्याप्त समय दे रहे हैं जब तक वे पूरा नहीं कर लेते।

ड्राइंग मदद करता है, लेकिन आपको इस मामले में छात्र को कुछ जानकारी देने और धीरे-धीरे जाने की ज़रूरत है, मुझे लगता है कि ज्यादातर प्रोग्रामर मुझे तेजी से जाना चाहते हैं और चीजों को समझाना पसंद करते हैं, जब श्रोता अब क्या कह रहा है ।

मैं एक रूपक लड़का हूं, इसलिए मैं शायद प्रत्येक संख्या के साथ बॉक्स की एक श्रृंखला के बारे में कुछ पकाऊंगा, प्रत्येक बॉक्स में एक समान (लेकिन बहुत छोटी श्रृंखला) भी गिना जाता है। मैं इसे समझने के लिए केवल दो स्तरों पर ले जाऊंगा और फिर पुष्टि के लिए लगभग 3 आयामों पर बात करूंगा। लेकिन मैं इस आधार पर 4 आयामों से बचूंगा कि वे इस विचार में लटका सकते हैं कि 4 आयाम जैसी कोई चीज नहीं है, या आप समय, या ऐसी अन्य रूपांतर भूमिगत/विकृतियों को माप नहीं सकते ... क्योंकि यह दूसरी समस्या है , प्रोग्रामर एडीडी होते हैं और साइड ट्रैक प्राप्त करने का आनंद लेते हैं।

इसके अलावा आप हैंश के हैश का उपयोग क्यों नहीं कर रहे हैं, संदर्भ में बहुत आसान है। :)

नीचे की रेखा, बच्चे के कदम।

0

एक सरणी केवल एक वस्तु है - एक चीज़।एक बार उन्हें यह समझने के लिए सरल होना चाहिए कि

संबंधित मुद्दे