 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:333
|
|
25-03-2020, 06:25 PM
المشاركة 1
|
|
دورة برمجة الاردوينو : الدرس الرابع :
العوامل الحسابية Arithmetic Operators :
يمكن للأردوينو القيام بالرياضيات نيابة عنا. في هذا الدرس ، نلقي نظرة على كيفية القيام بالجمع والطرح والضرب والقسمة وإيجاد باقي القسمة .
سوف يتم وصف خمسة عوامل حسابية ثم وضعهم جميعًا في برنامج (سكيتش) لتوضيح كيفية عملهم على Arduino.
1- الجمع Addition :
لجمع (إضافة) أرقام على Arduino ، نستخدم عامل الجمع addition operator (+) .
يوضح المثال أدناه كيفية جمع رقمين معًا.
كود:
nt a = 2;
int b = 7;
int sum;
sum = a + b;
في الكود أعلاه ، تم تعريف ثلاثة متغيرات. يتم تعيين قيمة لكل من المتغيرين a و b عند تعريفهما .
تم تعريف المتغير sum ، ولكن لم يتم تهيئته ، لذلك يحتوي على أي رقم عشوائي. سنستخدم هذا المتغير لتخزين نتيجة حساب الجمع ، بحيث يتم استبدال overwritten القيمة العشوائية التي يحتوي عليها sum عندما نضع نتيجة الجمع (أو المجموع sum) فيها.
بعد تنفيذ العبارة الموضحة أدناه ، سيحتوي المجموع sum على القيمة 9 أي نتيجة جمع المتغير a والمتغير b.
يمكننا أيضًا إضافة قيمتين ثابتتين وتخزين النتيجة في متغير كما هو موضح أدناه.
كود:
int sum;
sum = 2 + 10;
النتيجة المخزنة في المجموع sum بعد تنفيذ عبارة الجمع (الإضافة) ستكون 12 في هذا المثال .
يمكن أيضًا إضافة القيم الثابتة والمتغيرات معًا وتخزين النتيجة في متغير كما هو موضح هنا.
كود:
int a = 3;
int sum;
sum = a + 24;
بعد تنفيذ الإضافة ، سيحتوي sum على 27.
يمكن أيضًا للمعاملات الحسابية الباقية العمل على قيم ثابتة ومتغيرات ومزيج من كليهما.
2- الطرح Subtraction :
يقوم عامل الطرح subtraction operator بطرح رقم من آخر باستخدام علامة الطرح (-) كما يوضح المثال التالي.
كود:
int result;
result = 10 - 2;
ستكون نتيجة هذا الحساب 8 وسيتم تخزينها في المتغير result .
3- الضرب Multiplication :
يتم الضرب باستخدام عامل الضرب multiplication operator (*) .
كود:
nt result;
result = 4 * 3;
ستكون نتيجة الحساب أعلاه 12 وسيتم تخزينها في المتغير result .
4- القسمة Division :
يتم استخدام عامل القسمة (/) لأداء القسمة في Arduino.
كود:
int result;
result = 12 / 3;
نتيجة الحساب أعلاه 4.
الأعداد الصحيحة Integers مقابل أعداد النقطة العائمة Floating Point :
حتى الآن كنا نستخدم القيم الصحيحة integer values فقط لإجراء الحساب. إذا كانت نتيجة القسمة ليست عددًا صحيحًا integer (أو عددًا صحيحًا whole number ) ، ولكنها تحتوي على جزء كسر ، فسيتم تجاهل جزء الكسر إذا تم تخزين النتيجة في متغير نوع عدد صحيح integer .
ستوضح الأمثلة التالية ما يحدث عندما يتم تخزين نتيجة بجزء كسري في عدد صحيح ثم متغير الفاصلة العائمة.
كود:
int result;
result = 5 / 4;
ستكون النتيجة 1 لأنه يتم تجاهل الكسر عندما يتم تخزين النتيجة في result متغير عدد صحيح.
نفس الحساب ، ولكن هذه المرة تعريف result كمتغير نقطة عائمة (float) .
كود:
float result;
result = 5.0 / 4.0;
النتيجة الآن في المتغير result هي 1.25.
عند استخدام القيم الثابتة في الحسابات التي تخزن النتيجة في متغير الفاصلة العائمة ، نستخدم الفاصلة العشرية والصفر للأرقام الصحيحة ، أي 5.0 بدلاً من 5 بمفردها.
5- الباقى Remainder :
يتم استخدام عامل الباقي remainder operator لإيجاد الباقي بعد قسمة رقمين. يتم استخدام علامة النسبة المئوية (%) كعامل للباقى .
كود:
int result;
result = 11 % 4;
ستكون نتيجة هذا الحساب الباقي من 11 مقسومًا على 4 وهو 3 (4 تخصم من 11 مرتين ويترك الباقي 3 أى نتيجة القسمة تكون 2 وباقى القسمة يكون 3).
برنامج (سكيتش) العمليات الحسابية Arithmetic Sketch :
يوضح البرنامج (الاسكيتش) التالي المسمى arithmetic جميع العمليات الحسابية المذكورة أعلاه.
قم بتحميل الاسكيتش إلى Arduino وجربه. أضف أيضًا الأمثلة أعلاه ، مثل خلط القيم الثابتة والمتغيرات.
كود:
void setup() {
int a = 2;
int b = 7;
int result;
float result_fl;
Serial.begin(9600);
Serial.print("Addition (a + b): ");
result = a + b;
Serial.println(result);
Serial.print("Subtraction (10 - 2): ");
result = 10 - 2;
Serial.println(result);
Serial.print("Multiplication (4 * 3): ");
result = 4 * 3;
Serial.println(result);
Serial.print("Int Division (5 / 4): ");
result = 5 / 4;
Serial.println(result);
Serial.print("Float Division (5.0 / 4.0): ");
result_fl = 5.0 / 4.0;
Serial.println(result_fl);
Serial.print("Remainder (11 % 4): ");
result = 11 % 4;
Serial.println(result);
}
void loop() {
}
تعليقات على البرنامج (الاسكيتش) :
• الدالة print() :
يحتوي البرنامج على مزيج من الدوال print() و println() . يتم استدعاء print() عندما يجب أن يظل المؤشر غير المرئي على نفس السطر بحيث تتم طباعة النص المطبوع في عبارة println() التالية على نفس السطر أيضًا.
• الدالة println() :
يتم استخدام println() عندما يجب طباعة النص ثم ينتقل المؤشر غير المرئي إلى السطر التالي بحيث تطبع عبارة print() التالية النص على سطر جديد.
• متغير النقطة العائمة Floating Point Variable :
تم تعريف متغير result_fl منفصل للاحتفاظ بنتيجة حساب النقطة العائمة.
• متغير العدد الصحيح Integer Variable :
يتم إعادة استخدام result المتغير الصحيح عدة مرات أثناء البرنامج . الشيء المهم هو عرض نتائجه قبل وضع نتيجة الحساب التالي فيه.
• الثوابت والمتغيرات Constants and Variables :
تعرفنا على المتغيرات variables في الدرس الأخير . الثوابت Constants هي أرقام تظل ثابتة طوال البرنامج - أي أنها لا تتغير أبدًا.
أمثلة الثوابت هي الأرقام التي يتم استخدامها مباشرة في الحساب ولا يتم تعيينها إلى متغير ، على سبيل المثال sum = 2 + 3 يحتوي على الثوابت 2 و 3.
الثوابت ليس لها اسم ولا يمكن تغيير قيمها عند تشغيل البرنامج .
• العمليات الحسابية على أرقام النقطة العائمة Floating Point Arithmetic :
على الرغم من عدم ظهورها في الأمثلة أعلاه ، يمكن أيضًا إجراء الجمع والطرح والضرب على قيم الفاصلة العائمة.
|