 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:333
|
|
01-04-2020, 06:13 PM
المشاركة 1
|
|
دورة برمجة الاردوينو : الدرس السابع عشر
المصفوفات والاردوينو Arduino Arrays
المصفوفات Arrays هي مجموعات من نفس النوع من البيانات data التي يتم وضعها على التوالي في الذاكرة. على سبيل المثال ، يمكن أن يكون لدينا مصفوفة من الأعداد الصحيحة (النوع int) وهى رقمان صحيحان أو أكثر يحدثان الواحد تلو الآخر.
المفتاح هنا هو أن كل عنصر element في المصفوفة يتم وضعه مباشرة بعد العنصر السابق مما يسمح لنا بالوصول إلى كل عنصر بدوره باستخدام حلقة loop.
يشير عنصر في مصفوفة إلى قيمة في المصفوفة . إذا كان لدينا مصفوفة من الأعداد الصحيحة ، فسيتم الإشارة إلى كل عدد صحيح فردي كعنصر من المصفوفة . في مصفوفة من البايتات bytes ، يكون كل عنصر بايت (من نوع byte).
استخدام المصفوفات Using Arrays
يوضح البرنامج أدناه الاستخدام الأساسي للمصفوفة .
كود:
void setup() {
int my_array[5]; // an array with 5 integer elements
int i; // used as an index into the array
Serial.begin(9600);
my_array[0] = 23; // assign a value of 23 to the 1st element
my_array[1] = 1001; // assign a value of 1001 to the 2nd element, etc.
my_array[2] = 9;
my_array[3] = 1234;
my_array[4] = 987;
// display each number from the array in the serial monitor window
for (i = 0; i < 5; i++) {
Serial.println(my_array[i]);
}
}
void loop() {
}
تعريف المصفوفة Defining the Array
في هذا البرنامج ، يتم تعريف مصفوفة من 5 عناصر. هذا يصنع مساحة في الذاكرة لخمسة أعداد صحيحة يتم وضعها في الذاكرة واحدة تلو الأخرى. يمكن أن تحتوي القيم التي يحتوي عليها كل عنصر بعد تعريف المصفوفة على أي بيانات عشوائية. من الممكن أيضًا أن يتم التعيين بمعرفة المترجم compiler لجعل القيم صفرًا ، ولكن لا يمكننا الاعتماد على ذلك.
تعريف مصفوفة من 5 أعداد صحيحة:
كود:
int my_array[5]; // an array with 5 integer elements
في هذا المثال ، المصفوفة من النوع int ، ولكن يمكن أن يكون float أو byte ، إلخ.
المصفوفة لها اسم وهو my_array في المثال.
المصفوفة لها طول [5] مما يعني أن مساحة 5 أعداد صحيحة متتالية يتم صنعها في الذاكرة.
تعيين (تخصيص) القيم للعناصر في المصفوفة Assigning Values to Elements in the Array
يتم تعيين قيمة عدد صحيح لكل عنصر من خلال الرجوع (الإشارة) إليه باستخدام الأقواس المربعة [] مع رقم العنصر بين الأقواس للوصول إليه.
كود:
my_array[0] = 23;
my_array[1] = 1001;
my_array[2] = 9;
my_array[3] = 1234;
my_array[4] = 987;
لاحظ أن ترقيم numbering العناصر يبدأ من صفر [0] وليس واحد [1] ، لذا فإن العنصر الأول في المصفوفة هو العنصر 0.
بالطريقة نفسها ، يتم ترقيم العنصر الأخير في المصفوفة بحجم المصفوفة ناقص عنصر واحد أقل . في المثال ، حجم المصفوفة هو 5 ، وبالتالي فإن رقم العنصر الأخير هو 4 - مرة أخرى هذا لأننا نرقم العناصر بدءًا من 0.
الوصول إلى المصفوفة في حلقة Accessing an Array in a Loop
يتم استخدام حلقة for للحصول على محتويات كل عنصر في المصفوفة كل بدوره وطباعة القيم إلى النافذة التسلسلية .
كود:
for (i = 0; i < 5; i++) {
Serial.println(my_array[i]);
}
يستخدم المتغير i في حلقة for كمؤشر (فهرس) index في المصفوفة للوصول إلى كل عنصر من عناصر المصفوفة.
في الحلقة ، تتم تهيئة i إلى 0 ثم تتم زيادته بمقدار واحد في كل مرة من خلال الحلقة بحيث يتم حسابه من 0 إلى 4. ويتم الخروج من الحلقة عندما يصبح 5.
يستخدم المتغير i في المصفوفة للحصول على القيمة التي يحتفظ بها عنصر المصفوفة بدءًا من العنصر 0 وينتهي بالعنصر 4.
في الكود أعلاه ، عندما تكون i بصفر 0 ، يتم الوصول إلى العنصر الأول من المصفوفة ويمكننا بعد ذلك الحصول على القيمة التي يحتوي عليها والتي هي 23 في برنامج المثال .
المزيد عن تهيئة المصفوفات More on Initializing Arrays
بدلاً من تهيئة كل عنصر في المصفوفة بشكل فردي ، يمكن تعريف المصفوفة وتهيئتها في سطر واحد كما هو موضح في هذا الكود .
يعمل هذا البرنامج تمامًا مثل البرنامج السابق.
كود:
void setup() {
int my_array[5] = {23, 1001, 9, 1234, 987};
int i;
Serial.begin(9600);
// display each number from the array in the serial monitor window
for (i = 0; i < 5; i++) {
Serial.println(my_array[i]);
}
}
void loop() {
}
يتم وضع القيم لتهيئة كل عنصر بها بين الأقواس {} بعد عامل التعيين (علامة يساوي =). سيتم تعيين القيمة الأولى بين الأقواس للعنصر الأول في المصفوفة (رقم العنصر 0) ، وسيتم تعيين الرقم الثاني بين الأقواس للعنصر الثاني في المصفوفة (العنصر رقم 1) ، إلخ.
يمكن أيضًا كتابة التعليمات البرمجية التي تقوم بالتعريف defining والتهيئة initializing دون عدد العناصر في المصفوفة بين القوسين المربعين:
كود:
int my_array[] = {23, 1001, 9, 1234, 987};
في هذه الحالة ، سيحدد المترجم عدد العناصر التي يجب أن تحتوي عليها المصفوفة بناءً على عدد القيم المستخدمة لتهيئتها.
استخدامات المصفوفات Uses of Arrays
يوضح هذا الدرس أن المصفوفات يمكنها تخزين متغيرات البيانات من نفس النوع على التوالي في الذاكرة مما يسمح بالوصول السهل باستخدام حلقة.
هناك العديد من الاستخدامات للمصفوفات في البرمجة ، على سبيل المثال ، يمكن للمصفوفات تخزين البيانات التي يتم تسجيلها ، مثل درجات الحرارة. السلاسل النصية Strings ، وهي أسطر نصية ، هي في الواقع مصفوفات كما سنرى في الدرس التالي .
|