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

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

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



دورة برمجة الاردوينو : الدرس العاشر
اتخاذ القرارات باستخدام if-else Making Decisions with if-else :


متابعة للدرس التاسع الذى غطى عبارة if ، نتناول الآن بنية if-else if-else construct .
يضيف هذا البناء construct المزيد من القدرة على اتخاذ القرار لعبارة if.

استخدام if-else :
عند استخدام عبارة if ، يتم تشغيل التعليمات البرمجية (الكود) في جسم عبارة if فقط عندما يتم تقييم عبارة if إلى true. عندما يتم تقييمها false ، يتخطى تنفيذ البرنامج الكود في جسم عبارة ة if ويستمر أسفل جسم عبارة if.

عن طريق إضافة عبارة else ، سيتم تشغيل التعليمات البرمجية في جسمها فقط عندما يتم تقييم عبارة if المقابلة لها إلى false .
يعرض الكود التالي بناء بنية if-else.

كود:
if (conditional expression) {
}

else {
}

يوضح الكود أدناه كيف يقارن عمل عبارة if مع عمل بنية if-else.

كود:
// "if" statement
if (conditional expression) {
  // Code placed here only runs if conditional expression is true
}

// Whether the conditional expression evaluates to true or false,
// code placed here will run

// "if-else" construct
if (conditional expression) {
  // Body of the "if" statement between { and }
  // Works as a normal "if" statement, code placed here will only
  // run if the conditional expression evaluates to true
}

else {
  // Body of the "else" statement between { and }
  // Code placed here will always run if the conditional expression
  // from the "if" statement evaluates to false
}

// Code placed below the if-else construct will always run whether
// the conditional expression evaluated to true or false

عندما يتم تقييم التعبير الشرطي conditional expression بالقيمة true:
1. يتم تشغيل التعليمات البرمجية في جسم عبارة if.
2. لا يتم تشغيل التعليمات البرمجية في جسم عبارة else .

عندما يتم تقييم التعبير الشرطي conditional expression إلى false :
1. الكود في جسم عبارة if لا يتم تشغيله .
2. يتم تشغيل الكود في جسم عبارة else .

مثال لبرنامج if-else :
يوضح البرنامج أدناه مثالًا على استخدام بنية if-else. سيتم تشغيل الليد LED (المتصل بالطرف 13 ) إذا تم إرسال الحرف 'a' إلى Arduino باستخدام نافذة الشاشة التسلسلية. إذا تم إرسال أي حرف آخر باستثناء 'a' ، فسيتم تقييم عبارة if إلى false ويتم تشغيل الكود الموجود في كتلة else مما يؤدي إلى إيقاف تشغيل LED.

كود:
void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);  // LED on pin 13 of UNO
}

void loop() {
  char rx_byte;
  
  if (Serial.available() > 0) {    // is a character available?
    rx_byte = Serial.read();
    if (rx_byte == 'a') {
      // switch the LED on if the character 'a' is received
      digitalWrite(13, HIGH);
    }
    else {
      // switch the LED off if any character except 'a' is received
      digitalWrite(13, LOW);
    }
  }
}

ملاحظات حول مثال برنامج if-else
• بنية if-else المتداخلة Nested if-else Construct
يتم وضع بنية if-else في المثال أعلاه بالفعل داخل جسم عبارة if أخرى. هذا يسمى "تداخل" "nesting" ونقول أن
if-else متداخلة داخل عبارة if الأولى.
لجعل هذا أكثر وضوحًا ، هذا هو بناء if-else المتداخل:

كود:
if (rx_byte == 'a') {
  // switch the LED on if the character 'a' is received
  digitalWrite(13, HIGH);
}
else {
  // switch the LED off if any character except 'a' is received
  digitalWrite(13, LOW);
}

يتم تداخل الكود أعلاه داخل جسم عبارة if هذه :

كود:
 if (Serial.available() > 0) {    // is a character available?
}

• كيف يعمل البرنامج :
يعتمد مثال البرنامج على برنامج من الدرس السابق . بدلاً من إيقاف تشغيل الليد LED عند إرسال 'b' فقط ، سيتم إيقاف تشغيل الليد LED عند إرسال أي حرف باستثناء 'a'.
سيقوم الحرف 'a' بتشغيل الليد LED كما في البرنامج السابق لأن التعبير الشرطي فى عبارة if يتم تقييمه إلى true عند استقبال 'a' . أي حرف آخر يتم استلامه سيؤدي إلى تقييم التعبير الشرطي إلى false . عندما يتم تقييم التعبير على أنه false ، لا يتم تشغيل جسم عبارة (جملة) if ، ولكن يتم تشغيل جسم عبارة else بدلاً من ذلك ، مما يؤدي إلى إيقاف تشغيل الليد LED.

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

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

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

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


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

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