الدرس الثالث
الجمل الشرطية: معظم عمل الحاسوب يقوم على المقارنة بين قيمتين لإتخاذ أي قرار
بعبارة أدق أي عمل يقوم به الحاسوب هو عبارة عن عدد من المقارنات
بين قيم مخزنة في مسجلات المعالج
مسجلات المعالج هي عبارة عن أجزاء من المعالج يمكن أن تخزن قيم صغيرة وكل مسجل يستطيع أن يخزن 16 بت , وهذه القيم المخزنة يقوم المعالج بمقارنتها
مع قيم اخرى في مسجلات أخرى من نفس المعالج لإنتاج تيار كهربائي يمثل نتيجة المقارنة
إذاً مبدأ عمل الحاسوب هو المقارنه , عرفنا المقارنه على مستوى المعالج
ولكن هذا لا يهمنا , وما يهمنا هو المقارنه على مستوى لغة البرمجة
والمقارنه تعتبر أحد أهم اعمدة اي لغة من اللغات , وهناك عدة صيغ للمقارنة
1- إذا كان (الشرط) فـ
{التعليمات التي تنفذ في حالة توفر الشرط}
- الكود:
-
if (x>y)
{
MessageBox.Show("إكس أكبر من واي");
}
في الكود السابق سيقوم المعالج بإظهار الرسالة إذا كان x أكبر من y وإلا فلن تظهر أي رسالة
لاحظ أننا لم نضع الفاصة المنقوطة بعد الشرط لأن المعالج لم يكمل جملة الشرط ويجب أن ندعه يكمل
الجملة إلى نهاية الحاصرة الثانية
2-إذا كان (الشرط) فـ
{التعليمات التي تنفذ في حالة توفر الشرط}
وإلا
{التعليمات التي تنفذ في حالة عدم توفر الشرط}
if (x>
- الكود:
-
y)
{
MessageBox.Show("إكس أكبر من واي");
}
else
{
MessageBox.Show("إكس ليس أكبر من واي");
}
في الكود السابق سيقوم المعالج بإظهار رسالة "إكس أكبر من واي" إذا كان x أكبر من y
أما إذا لم يكن x اكبر من y فستظهر رسالة "إكس ليس أكبر من واي"
لاحظ أننا لم نضع فاصلة منقوطة بعد كلمة else لأن التعليمة لم تكتمل بعد
3-إذا كان(الشرط1) فـ
{التعليمات التي تنفذ عن توفر الشرط1}
وإلا إذا كان (الشرط 2) فـ
{التعليمات التي تنفذ في حالة عدم توفر الشرط1 و توفر الشرط 2}
وإلا إذا كان ...
- الكود:
-
if (x>5)
{
MessageBox.Show("اكس أكبر من خمسة");
}
else if(x<4)
{
MessageBox.Show("اكس ليس أكبر من خمسة , وأكس أصغر من أربعة");
}
..
في الكود السابق يبدأ المعالج بفحص الشرط الأول فإذا تحقق يظهر رسالة "اكس أكبر من خمسة"
وإن لم يتحقق فإنه ينتقل إلى الشرط الثاني فإذا تحقق سيظهر رسالة "اكس ليس أكبر من خمسة , وأكس أصغر من أربعة"
وهكذا حتي ينتهي من جميع الشروط .. لاحظ أنه من الممكن أن يكون في الجملة أكثر من شرطين
هناك عدد من معاملات المقارنه بالإضافة إلى < و >: < أكبر من مثل ما رأينا سابقاً
> أصغر من مثل ما رأينا سابقاً
== يساوي - الكود:
-
if (x == y)
{
MessageBox.Show("اكس يساوي واي");
}
=! لا يساوي - الكود:
-
if (x != y)
{
MessageBox.Show("اكس [COLOR="Blue"]ل[/COLOR]ا يساوي واي");
}
أحياناً نحتاج إلى شرط مزدوج , أي أننا نحتاج إلى شرط مكون من جزئين
مثلاً إذا كان x أكبر من y
و x أصغر من z
- الكود:
-
if (x>y & x{
MessageBox.Show("اكس أكبر من واي و أصغر من زد");
}
لاحظ انا وضعنا الشرطين بينها علامة &
أما إذا أردنا شرط مزدوج من نوع آخر :
مثلاً إذا كان x أكبر من y
أو x يساوي 10
- الكود:
-
if (x>y | x==10)
{
MessageBox.Show("اكس أكبر من واي أو يساوي 10");
}
لاحظ انا وضعنا الشرطين بينها علامة |
إذا & تعني و
و | تعني أو ملاحظة : علامة | يمكن طباعتها بالضغط على Shift مع زر \ والذي عادة ما يأتي بجانب زر المسح BackSpace وفوق زر Enter
الدوارات: هناك أنواع كثيرة من الدوارات لكننا سنتعرف حالياً على أهم نوع منها
والدوارات هي تعليمات فائدتها تكرار تعليمات محدد لعدد محدد من المرات
مثلاً إذا أردنا أن نظهر رسالة ما عشر مرات أو عشرين مرة , لن نكتب التعليمة عشر أو عشرين مرة
حيث يستخدم المعالج متغير من نوع رقم كعداد وفي كل مرة تنفذ العملية يزداد العداد رقم واحد
وهكذا حتى يتوفر شرط وقوف الدواره , وأحياناً قد يكون عداد عكسي يعني أنه في كل مرة ينقص رقم
إذاً هناك أربعة أشياء مهمة لجملة الدوارة for
1- متغير من نوع عدد يستخدم كعداد مع تزويدة برقم إبتدائي يبدأ منه
2- شرط إستمرار الدوارة في العمل
3- تعريف نوع العداد هل هو تصاعدي أم تنازلي
4- التعليمات التي تنفذ
- الكود:
-
for (int i = 0;i < 10;i++)
{
MessageBox.Show("من الدوارة");
}
في الكود السابق كلمة for تستخدم لتعريف الدوارة
بعد فتح القوس وضعنا تعريف للعداد int i=0 ووضعنا له قيمة 0 أي أن العداد سيبدأ من 0
وضعنا فاصلة منقوطة وو ضعنا بعدها شرط الإستمرار في العمل وهو أن يكون i أصغر من عشرة
وضعنا فاصلة منقوطة ووضعنا بعدها نوع العداد وهو تصاعدي ++i أما إذا كان تنازلي نضع --i
ثم أغلقنا القوس وفتحنا حاصرتين بينهما التعليمات التي سينفذها المعالج
معنى الدوارة السابقة أن المعالج سيظهر الرسالة للمرة الأولى ثم يزيد i ويفحص شرط الإستمرار
أذا تحقق شرك الإستمرار يظهر الرسالة مرة أخرى ويزيد العداد برقم ويفحص شرط الإستمرار .....
في الكود السابق سيقوم المعالج بإظهار الرسالة عشر مرات
ملاحظة : يمكن إستخدام متغير العداد داخل التعليمات - الكود:
-
for (int i = 0;i < 10;i++)
{
MessageBox.Show(Convert.ToString(i));
}
في الكود السابق سيظهر المعالج الرسالة للمرة الأولى وفيها قيمة العداد الأولية وهي 0
وفي المرة الثانية سيظهر الرسالة وفيها قيمة العداد بعد أن زاد برقم أي 1
وهكذا حتى العدد 9 , وعندما يزد العداد بعدها برقم أي يصبح 10 سيفحص المعالج شرط الإستمرار
وهو أن يكوت المتغير أصغر من 10 ولكن المتغير هذه المرة ليس أصغر من عشرة لذلك سيتوقف
المعالج عن تنفيذ التعليمات ويخرج من جملة for