یک آرایه گروهی متوالی از بخش های از حافظه است که نوع داده یکسانی دارند. برای اشاره به ناحیه یا ایندکس مشخصی از آن، از نام آرایه و شماره موقعیت آن استفاده می کنیم.
تصویر زیر نشان دهنده یک آرایه عدد صحیح به نام C است که حاوی ۱۱ عنصر است. برای اشاره به هر یک از این عناصر به نام اصلی و شماره موقعیت آن نیاز است. نام دیگر شماره موقعیت شاخص یا index است. شمارش عناصر از صفر شروغ می شود.
بنابراین، عناصر این مجموعه عبارتند از
1 2 3 4 5 | c[0] c[1] c[2] ... c[10] |
آخرین عنصر با ایندکس ۱۱ مشخص شده است که در واقع یک عدد کمتر از تعداد کل عناصر است.
برای چاپ یک عنصر می توان به این روش عمل کرد :
1 | Serial.print ( C[ 0 ] ); |
عناصر در صورت امکان می توانند در یک رابطه ریاضی استفاده و چاپ شوند. مانند:
1 | Serial.print (C[ 0 ] + C[ 1 ] + C[ 2 ] ); |
نمونه دیگری از استفاده از یک عنصر :
1 | x = C[ 6 ] / 2; |
تعریف آرایه در آردوینو
آرایه ها حافظه اشغال می کنند. برای تعیین نوع داده و تعداد عناصر از ساختار زیر استفاده می کنیم:
1 | type arrayName [ arraySize ] ; |
پس از تعریف، کامپایلر مقدار مناسب حافظه را محاسبه و رزرو می کند. طول آرایه می بایست یک عدد صحیح بزرگتر از صفر باشد.
به عنوان نمونه برای تعریف یک آرایه با ۱۲ عنصر از نوع integer کد ما به این صورت می شود:
1 | int C[ 12 ]; // C is an array of 12 integers |
مثال های بیشتر
مثال شماره ۱ : تعریف یک آرایه و استفاده از یک حلقه برای مقداردهی و تعریف عناصر
برنامه زیر آرایه ای با نام n با طول ۱۰ عنصر ایجاد می کند.
با استفاده از حلقه for اول مقدار عناصر صفر مقداردهی می شود.
حلقه for دوم مثالی از نحوه پیمایش و استفاده از عناصر در یک حلقه است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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’) ; } } |
خروجی برنامه بالا به این صورت است :
Element | Value |
---|---|
۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ | ۰ ۰ ۰ ۰ ۰ ۰ ۰ ۰ ۰ ۰ |
مثال شماره ۲ : تعریف آرایه با مقادیر اولیه
مقداردهی عناصر می تواند همزمان با تعریف باشد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // 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 ) // initialize elements of array n 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’) ; } } |
خروجی برنامه آردوینو بالا به صورت زیر است :
Element | Value |
---|---|
۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ | ۳۲ ۲۷ ۶۴ ۱۸ ۹۵ ۱۴ ۹۰ ۷۰ ۶۰ ۳۷ |
مثال شماره سه : جمع عناصر آرایه
در بسیاری از موارد عناصر برای استفاده در محاسبات به کار برده می شوند. برای نمونه فرض کنید عناصر نمرات امتحانات باشد و استاد تمایل به میانگیری نمرات کلاس باشد.
برنامه زیر مثالی از جمع ۱۰ نمره است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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) ; } |
خروجی این کد به صورت زیر است:
1 | Total of array elements: 849 |
آرایه ها در آردوینو اهمیت ویژه ای دارند و در آموزش های آینده با جزییات بیشتری و بررسی کاربرد آنها صحبت خواهیم کرد.