قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 25-03-2020, 06:25 PM المشاركة 1   
افتراضي الدرس الرابع العوامل الحسابية Arithmetic Operators Twitter FaceBook Google+



دورة برمجة الاردوينو : الدرس الرابع :
العوامل الحسابية 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.

كود:
sum = 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 :
على الرغم من عدم ظهورها في الأمثلة أعلاه ، يمكن أيضًا إجراء الجمع والطرح والضرب على قيم الفاصلة العائمة.

اعلانات
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 03:12 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025