آرایه ها در برنامه نویسی آردوینو ، آرایه به مکان های پشت سر هم حافظه که دارای یک نوع (قابلیت ذخیره سازی یک نوع متغیر را دارند) هستند گفته می شود. به منظور تعیین و ارجاع یک موقعیت مشخص از یک آرایه، برای هر آرایه یک نام و برای اعضای آن نیز یک شماره به عنوان اندیس وارد می کنیم.
پیس نیاز درس : انواع داده در آردوینو
شکل زیر یک آرایه به نام C شامل اعداد صحیح را نشان می دهد که دارای 11 عضو است. به منظور تعیین هریک از اعضای آرایه (مقدار دهی یا استفاده از مقدار آن) نام آرایه را نوشته و داخل براکت ([]) شماره عضو مورد نظر را می نویسیم. به این شماره که توسط آن عضو مورد نظر یک آرایه را انتخاب می کنیم، زیر نویس یا اندیس گفته می شود. اولین عضو هر آرایه دارای اندیس 0 (صفر) است و به آن اغلب عضو صفر گفته می شود.
بنابراین، اعضای آرایه C عبارت اند از [C[0 (بخوانید C با اندیس صفر)، [C[1] ، C[2] و…
بزرگترین اندیس برای این آرایه 10 است که یک واحد از تعداد اعضای خود آرایه کمتر است (اعضای آرایه 11 تا است). نام گذاری آرایه ها از همان قوانین نام گذاری متغیرها تبعیت می کند.
شماره اندیس باید یک عدد صحیح یا یک عبارتی که نتیجه آن عددی صحیح است باشد. اگر از یک عبارت به عنوان اندیس استفاده می کنید، کامپایلر محاسبات عبارت را انجام داده تا عدد صحیح معادل اندیس آرایه را به دست آورد. به عنوان مثال، فرض کنید که متغیر a دارای مقدار 5 باشد و متغیر b مقدار 6 را داشته باشد، عبارت نوشته شده مقدار هر دو را به عضو شماره 11 آرایه C اضافه می کند.
اندیس یک آرایه مشابه متغیرها میتواند در سمت چپ عملگر انتساب قرار بگیرد. به عنوان مثال آرایه C در شکل بالا را در نظر بگیرید. نام آرایه C است. این آرایه 11 عضو دارد که به نام های [C[0] ، C[1] تا [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
همچنین آرایه ها را میتوان به شکلی تعریف کرد که مقادیری غیر از انواع مرجع ذخیره سازی کند. به عنوان مثال آرایه ای از نوع رشته میتواند رشته های کاراکتری را ذخیره سازی کند.
مثال استفاده از آرایه ها
در این بخش مثال هایی به منظور توضیح نحوه اعلان، مقدار دهی اولیه و تغییر مقدار آرایه ها ارائه می شود.
مثال 1:
اعلان یک آرایه و استفاده از یک حلقه برای مقداردهی اولیه به اعضای آرایه
این برنامه یک آرایه با 10 عضو عدد صحیح اعلان می کند. در ادمه در خطوط a و b از یک حلقه for برای مقداردهی اولیه صفر به اعضای آرایه استفاده می شود. مشابه دیگر متغیرهای خودکار، آرایه های خودکار به صورت صحیح مقداردهی صفر نمی شوند. اولین عبارت خروجی (خط c) ابتدای عنوان هر ستون را برای ستون هایی که در ادامه توسط دستورات (خطوط d و e) چاپ می شود را نمایش می دهد که به شکل یک جدول آن را در خروجی چاپ می کند.
مثال :
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 |
---|---|
0 1 2 3 4 5 6 7 8 9 |
‘0’ ‘0’ ‘0’ ‘0’ ‘0’ ‘0’ ‘0’ ‘0’ ‘0’ ‘0’ |
مثال 2 :
مقداردهی یک آرایه توسط اعلان با لیست مقداردهنده
اعضای یک آرایه را میتوان در همان بخش اعلان آرایه پس از نوشتن نام تابع و تعداد اعضا و پس از علامت مساوی در پرانتز نوشت. اعضا با , از یکدیگر جدا می شوند. در این برنامه از همین روش برای مقداردهی اولیه به یک آرایه با تعداد 10 عضو عدد صحیح (خط a) استفاده می شود و نتیجه در یک جدول چاپ می شود. (خطوط b و c)
مثال :
// 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 |
---|---|
0 1 2 3 4 5 6 7 8 9 |
32 27 64 18 95 14 90 70 60 37 |
مثال 3 :
جمع کردن اعضای یک آرایه
اغلب اعضای یک آرایه شامل مقادیری است که در محاسبات از این اعداد استفاده می کنیم. به عنوان مثال، اگر اعضای یک آرایه نمرات امتحان را شامل شوند، ممکن است استاد بخواهد تا با استفاده از جمع کردن مجموع این نمرات، میانگین نمرات دانشجویان خود را محاسبه کند. این برنامه مقادیر 10 تا از اعضای آرایه a را با یکدیگر جمع می کند.
مثال :
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) ; }
نتیجه :
خروجی این برنامه عبارت زیر است :
Total of array elements: 849
به این نکته توجه کنید:
آرایه مفهومی بسیار مهم در برنامه نویسی آردوینو است و باید به آن توجه زیادی شود. در دو جلسه بعدی به دو مفهوم بسیار مهم در برنامه نویسی برای آردوینو می پردازیم.
اولی : ارسال آرایه به تابع
دومی: آرایه های چند بعدی
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
با سلام. از مطالب خوبت ممنونم ولی این مثال
به عنوان مثال، برای این که کامپایلر یک آرایه به نام C با 11 عضو را بساز باید بنویسیم :
int C[ 12 ]; // C is an array of 12 integers
اشتباهه برای 11 عضو باید نوشت
[11]C فقط برای نوع char هست که باید یک درایه برای null اضافه کنی