अरुडिनो - अर्रे
एक सरणी स्मृति स्थानों का एक निरंतर समूह है जो एक ही प्रकार का होता है। सरणी में किसी विशेष स्थान या तत्व को संदर्भित करने के लिए, हम सरणी में नाम और विशेष तत्व की स्थिति संख्या का नाम निर्दिष्ट करते हैं।
नीचे दिया गया चित्रण C नामक एक पूर्णांक सरणी दिखाता है जिसमें 11 तत्व होते हैं। आप वर्ग ब्रैकेट ([]) में विशेष तत्व की स्थिति संख्या के बाद सरणी नाम देकर इन तत्वों में से किसी एक का उल्लेख करते हैं। स्थिति संख्या को औपचारिक रूप से सबस्क्रिप्ट या इंडेक्स कहा जाता है (यह संख्या सरणी की शुरुआत से तत्वों की संख्या को निर्दिष्ट करती है)। पहले तत्व की सबस्क्रिप्ट 0 (शून्य) है और कभी-कभी इसे शून्य तत्व कहा जाता है।
इस प्रकार, सरणी C के तत्व C [0] हैं (उच्चारण "C उप शून्य"), C [1], C [2] और इसी तरह। सरणी C में उच्चतम सबस्क्रिप्ट 10 है, जो कि सरणी (11) में तत्वों की संख्या से 1 कम है। सरणी नाम अन्य चर नामों के समान सम्मेलनों का पालन करते हैं।
एक सबस्क्रिप्ट एक पूर्णांक या पूर्णांक अभिव्यक्ति (किसी भी अभिन्न प्रकार का उपयोग करके) होना चाहिए। यदि कोई प्रोग्राम किसी अभिव्यक्ति को सबस्क्रिप्ट के रूप में उपयोग करता है, तो प्रोग्राम सबस्क्रिप्ट को निर्धारित करने के लिए अभिव्यक्ति का मूल्यांकन करता है। उदाहरण के लिए, यदि हम मानते हैं कि चर a 5 के बराबर है और चर b 6 के बराबर है, तो कथन 2 से सरणी तत्व C [11] को जोड़ता है।
एक उप-सुव्यवस्थित सरणी नाम एक लवल्यू है, इसका उपयोग असाइनमेंट के बाईं ओर किया जा सकता है, ठीक उसी तरह जैसे कि गैर-ऐरे वेरिएबल कर सकता है।
आइए दिए गए चित्र में सरणी C की अधिक बारीकी से जांच करें। संपूर्ण सरणी का नाम C. है। इसके 11 तत्वों को C [0] से C [10] के रूप में संदर्भित किया जाता है। C [0] का मान -45 है, C [1] का मान 6 है, C [2] का मान 0 है, C [7] का मान 62 है, और C [10] का मान है 78।
सरणी C के पहले तीन तत्वों में निहित मूल्यों का योग प्रिंट करने के लिए, हम लिखेंगे -
Serial.print (C[ 0 ] + C[ 1 ] + C[ 2 ] );
C [6] के मान को 2 से भाग देने और परिणाम को चर x में निर्दिष्ट करने के लिए, हम लिखेंगे -
x = C[ 6 ] / 2;
घोषणाएँ
स्मृति में जगह घेरती है। किसी सरणी द्वारा आवश्यक तत्वों के प्रकार और तत्वों की संख्या निर्दिष्ट करने के लिए, फॉर्म की घोषणा का उपयोग करें -
type arrayName [ arraySize ] ;
संकलक स्मृति की उचित मात्रा को सुरक्षित रखता है। (याद रखें कि एक घोषणा, जो स्मृति को अधिक अच्छी तरह से एक परिभाषा के रूप में जाना जाता है)। ArraySize शून्य से अधिक पूर्णांक स्थिर होना चाहिए। उदाहरण के लिए, पूर्णांक सरणी C के लिए 11 तत्वों को आरक्षित करने के लिए संकलक को बताना, घोषणा का उपयोग करना -
int C[ 12 ]; // C is an array of 12 integers
एरे को किसी भी गैर-संदर्भ डेटा प्रकार के मूल्यों को शामिल करने के लिए घोषित किया जा सकता है। उदाहरण के लिए, वर्ण स्ट्रिंग को संग्रहीत करने के लिए टाइप स्ट्रिंग की एक सरणी का उपयोग किया जा सकता है।
Arrays का उपयोग करते हुए उदाहरण
यह खंड कई उदाहरण देता है जो एरे को घोषित करने, आरंभ करने और हेरफेर करने का तरीका प्रदर्शित करता है।
उदाहरण 1: एक ऐरे की घोषणा करना और ऐरे के तत्वों को शुरू करने के लिए एक लूप का उपयोग करना
कार्यक्रम 10-तत्व पूर्णांक सरणी घोषित करता है n। लाइन्स a-b उपयोग aForसरणी तत्वों को शून्य करने के लिए प्रारंभिक विवरण। अन्य स्वचालित चर की तरह, स्वचालित सरणियों को शून्य से प्रारंभिक रूप से आरंभ नहीं किया जाता है। पहला आउटपुट स्टेटमेंट (लाइन c) स्टेटमेंट (लाइनें d – e) के लिए बाद में छपे कॉलम के कॉलम कॉलम को प्रदर्शित करता है, जो सारणीबद्ध सारणी में सरणी को प्रिंट करता है।
Example
int n[ 10 ] ; // n is an array of 10 integers
void setup () {
}
void loop () {
for ( int i = 0; i < 10; ++i ) // initialize elements of array n to 0 {
n[ i ] = 0; // set element at location i to 0
Serial.print (i) ;
Serial.print (‘\r’) ;
}
for ( int j = 0; j < 10; ++j ) // output each array element's value {
Serial.print (n[j]) ;
Serial.print (‘\r’) ;
}
}
Result - यह निम्नलिखित परिणाम का उत्पादन करेगा -
Element
Value
0
1
2
3
4
5
6
7
8
9
0
0
0
0
0
0
0
0
0
0
उदाहरण 2: एक प्रारंभिक सूची के साथ घोषणा में एक ऐरे को प्रारंभ करना
किसी ऐरे के तत्वों को ऐरे-नेम में एक समान-चिह्न के साथ और ब्रेस-सीमांकित अल्पविराम से अलग की गई इनिशियल्स की सूची का अनुसरण करके ऐरे घोषणा में आरंभीकृत किया जा सकता है। कार्यक्रम एक मानदंड सूची का उपयोग करता है एक पूर्णांक सरणी को 10 मानों (पंक्ति) के साथ आरंभ करने के लिए और सारणी को सारणीबद्ध प्रारूप (पंक्तियों b-c) में मुद्रित करता है।
Example
// n is an array of 10 integers
int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 } ;
void setup () {
}
void loop () {
for ( int i = 0; i < 10; ++i ) {
Serial.print (i) ;
Serial.print (‘\r’) ;
}
for ( int j = 0; j < 10; ++j ) // output each array element's value {
Serial.print (n[j]) ;
Serial.print (‘\r’) ;
}
}
Result - यह निम्नलिखित परिणाम का उत्पादन करेगा -
Element
Value
0
1
2
3
4
5
6
7
8
9
32
27
64
18
95
14
90
70
60
37
उदाहरण 3: एक तत्व का सारांश
अक्सर, सरणी के तत्व गणना में उपयोग किए जाने वाले मूल्यों की एक श्रृंखला का प्रतिनिधित्व करते हैं। उदाहरण के लिए, यदि एरे के तत्व परीक्षा के ग्रेड का प्रतिनिधित्व करते हैं, तो एक प्रोफेसर एरे के तत्वों को टोटल कर सकता है और परीक्षा के लिए क्लास एवरेज की गणना करने के लिए उस राशि का उपयोग कर सकता है। कार्यक्रम में 10-तत्व पूर्णांक सरणी में निहित मान हैंa।
Example
const int arraySize = 10; // constant variable indicating size of array
int a[ arraySize ] = { 87, 68, 94, 100, 83, 78, 85, 91, 76, 87 };
int total = 0;
void setup () {
}
void loop () {
// sum contents of array a
for ( int i = 0; i < arraySize; ++i )
total += a[ i ];
Serial.print (“Total of array elements : ”) ;
Serial.print(total) ;
}
Result - यह निम्नलिखित परिणाम का उत्पादन करेगा -
Total of array elements: 849
Arduino के लिए Arrays महत्वपूर्ण हैं और इस पर बहुत अधिक ध्यान देने की आवश्यकता है। सरणी से संबंधित निम्नलिखित महत्वपूर्ण अवधारणाएं Arduino के लिए स्पष्ट होनी चाहिए -
क्र.सं. | अवधारणा और विवरण |
---|---|
1 | कार्य करने के लिए Arrays पास करना किसी फ़ंक्शन के लिए एक सरणी तर्क पास करने के लिए, किसी भी कोष्ठक के बिना सरणी का नाम निर्दिष्ट करें। |
2 | मल्टी-डायमेंशनल एरे दो आयामों (यानी, सदस्यता) के साथ पहुंच अक्सर मूल्यों की तालिकाओं का प्रतिनिधित्व करती है जिसमें पंक्तियों और स्तंभों में व्यवस्थित जानकारी होती है। |