مرحبا بكم فى موقعكم التعليمى مفيدا ومستفيدا

الدرس الثالث - الجمل الشرطية:

اذهب الى الأسفل

الدرس الثالث - الجمل الشرطية:

مُساهمة من طرف sayed في السبت أكتوبر 29, 2011 12:23 am

الدرس الثالث

الجمل الشرطية:
معظم عمل الحاسوب يقوم على المقارنة بين قيمتين لإتخاذ أي قرار
بعبارة أدق أي عمل يقوم به الحاسوب هو عبارة عن عدد من المقارنات
بين قيم مخزنة في مسجلات المعالج
مسجلات المعالج هي عبارة عن أجزاء من المعالج يمكن أن تخزن قيم صغيرة
وكل مسجل يستطيع أن يخزن 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("اكس لا يساوي واي");
}

أحياناً نحتاج إلى شرط مزدوج , أي أننا نحتاج إلى شرط مكون من جزئين
مثلاً إذا كان 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
يتبع التطبيق


التطبيق:
أفتح تطبيق الدرس السابق :
وقم بحذف صندوقي النص بواسطة زر Delete
غير النص المكتوب في الزر إلى "تشغيل الدوارة"
من صندوق الأدوات قم بسحب أداة القائمة :

من خلال الخاصية (Name) قم بتغيير إسم القائمة من ListBox1 إلى l1
ليسهل التعامل معها من الشفرة
ملاحظة: عند عمل تطبيق باللغة العربية يجب تحويل الأدوات في النافذه للترتيب العربي
أي من اليمين إلى اليسار ويتم ذلك عن طريق تحديد النافذة وتغيير صفتين من صفاتها
وهي صفات RightToLeft و صفة RightToLeftLayout من جدول الصفات
حيث تكون الخاصية الأولى Yes والخاصية الثانية True :

عندها ستلاحظ ان إتجاه الأدوات تغير ويصبح شكل النافذة هكذا :

الآن اضغط مزدوجاً على الزر للذهاب للشفرة قم بحذف الكود الموجود مسبقاً بين الحاصرتين
وأكتب بدلاً عنه هذا الكود:

كود:
for (int i=0;i<10;i++)
{
l1.Items.Add(" من الدوارة ");
}


قمنا بعمل دوارة من الصفر إلى 10 لإضافة كلمة "من الدوارة" إلى القائمة
الكائن l1.Items.Add يقوم بإضافة ما داخل القوس للقائمة l1
وبالتالي فالكود السابق سيقوم بكتابه كلمة "من الدوارة" عشر مرات على القائمة
جرب تشغيل البرنامج وإضغط على الزر , يجب أن ترى شيئاً كهذا:

ملاحظة : إذا أردنا أن نجمع كلمتين أو نصين في نص واحد فيمكننا إستخدام إشارة +
مثلاً إذا أردنا أن نظر رسالة تقول مرحباً بكم فيمكن عمل ذلك هكذا

كود:
MessageBox.Show("مرحباً" + "بكم");

هناك كلمتين ربطنا بينهما بعلامة +
والآن لنعدل التطبيق قليلاً لكي نجرب إستخدام العداد :
قم يتعديل كود الدوارة وأضف إلى كلمة "من الدوارة" أضف العداد هكذا:

كود:
for (int i=0;i<10;i++)
{
l1.Items.Add(" من الدوارة " + Convert.ToString(i));
}


بما أن العداد من نوع رقم إستخدمنا كائن التحويل لنحوله إلى نص ثم ربطناه بكلمة "من الدوارة"
عند تشغيل البرنامج سترى شيئاً كهذا :

أعتقد أن الصورة لا تحتاج للشرح ...
الآن لماذا لا نطبق جملة شرطية داخل الدوارة ..
سنكتب شفرة لطباعة كلمة "من الدوارة"
و إذا كان العداد أكبر من خمسة سنضيف كلمة "أكبر من خمسة" :
قم بتغيير كود الدوارة إلى هذا الكود:

كود:
for (int i=0;i<10;i++)
{
if (i>5)
{
l1.Items.Add(" من الدوارة " + Convert.ToString(i) + " أكبر من خمسة ");
}
else
{
l1.Items.Add(" من الدوارة " + Convert.ToString(i) );
}
}


الكود باللون الأحمر سينفذ عشر مرات .
والكود بالخط المائل سينفذ إذا كان العداد i أكبر من خمسة.
والكود الذي تحته خط سينفذ إذا كان العداد i أصغر من أو يساوي خمسة .
عند تنفيذ البرنمج ستكون النافذه هكذا :

الواجب:
الواجب صعب قليلاً هذه المرة ...
إستخدم الدوارة والجمل الشرطية لتنفيذ عملية إضافة نصوص للقائمة 12 مرة
بحيث يكتب في آخر كل نص ما إذا كان العداد أكبر من 6 أو يساوي 6 أو أصغر من 6
لتكون النتيجة هكذا:

تلميح : ستستخدم الجمل الشرطية من النوع الثالث بثلاث شروط
أي أن جملة الشرط ستكون شبيهة بهذه:

كود:
if (...)
{
...
}
else if(...)
{
...
}
else if(...)
{
...
}


أكمل الفراغات , طبعاً كل هذا داخل الدوارة
.نهاية الدرس الثالث.


هذا برنامج بسيط ،،، تطبيق للدرس.


كود PHP:
for(int i=0;i<=100;i++)
{
cout<<"بارك الله فيك... استاذنا حماة النهضة.."<<endl
;
}



avatar
sayed
Admin

عدد المساهمات : 190
تاريخ التسجيل : 10/10/2011
العمر : 63
الموقع : computer.hooxs.com

http://computer.hooxs.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى