السلام عليكم ورحمة الله تعالى وبركاته
والصلاة والسلام على اشرف الأنبياء والمرسلين محمد صلى الله عليه وسلم
اليوم اعزائي اعضاء وزوار منتدى البرمجة
بعد أن تطرقنا سابقا الى ركيزتين مهمتين في الألجوريثم ،
سنحاول و في هذا الموضوع ان شاء الله التطرق الى احد العناصر المهمة ايضا ، و هي الشرووطـ ،
في الكثير من الحالات البرمجية نجد انفسنا في موقف يجب علينا اختيار القرار ، هذا القرار يعتمد على شروط خاصة ،
لنأخـد مثال حي حول ما نريد القيام به ، لنفترض اننا نريد القيام ببرنامج يقوم بقسمة العدد a على b
يعني سنقومـ ، a/b ، طبعا هنا لدينا حالة واحدة فقط و هي أنه على العدد b أن يخالف الصفر ،
طبعا ادا لم نضع شرط بهذا الخصوص فإنه سيتم اعتماد العملية .
من هنا تم ابتكار ما يسمى بالشروط ، و التي لها التركيبة التاليـة :
siconditionalors
instruction
finsi
يعني إدا تحقق الشرط قم بالتالـي ، و هذا ما يكفائه باللغة الإنجليزية بـ
ifconditionthen
instruction
endif
و هناك تكريبة أخـرى و هـي :
siconditionalors
instruction
sinon
instruction 2
finsi
مع العلم أن كل si تنتظر finsi في الأخيـر ،
طبعا التركيبة الأولى بسيطة للغاية ، يعني هي تنفد فقط ما ادا تحقق الشرط و خير مثال هو في القسم ،
طبعا في القسم هناك بعض التلاميذ الذين يشاركون دائما و لهذا يتم اضافة لهم بعض النقاط من طرف الأستاذ ،
طبعا ادا لم تشارك أصلا فلن يتغير شيء ، يعني لن نضيف لك و لن ننقص من نقطتك أي شيء ،
اما التانية فهي تركيبة ، معقدة
و هذا يعني إدا لم يتحقق الشرط الأول ، نفد الشطر التاني لشرطـ ، طبعا لنأخد مثالين لفهم التركيبة التانية ،
دعنا نقوم بعمل برنامج يقوم بالتالـي ، و هو معرفة هل العدد زوجي أم لا ،
طبعا العدد الزوجي هو كل عدد نستطيع كتابته على الطريقة التالية m=2*n مع العلم أن n ينتمي الى مجموعة الأعداد الطبيعية ـ، أو كل عدد m بحيث m %2==0
إدن دعنا نقوم بعمل مثل البرنامج :
Entrez un Nombre : 3
le nombre 3 est impair
مثال آخـر لتطبيق :
Entrez un Nombre :6
le nombre 6 est pair
هذا هو الحل :
Variable m En Entier
debut
Ecrire "Entrez un Nombre :"
Lire(m)
sim%2==0alors
Ecrire "Le nombre " m "est pair"
sinon
Ecrire "Le nombre " m "est impair"
finsi
fin
طبعا كما لاحظتمـ ، في هذا المثال كانت لنا حالتين و هما اما زوجي او فردي ، هناك بعض الحالاتـ ، يكون فيها علينا عمل 3 أو 4 أو عدد غير محددود من الشروط
لهذا يتم الإعتماد على imbriquation يعني شرط في داخله شرط آخـر
حسنا لنفترض أننا نريد القيام بالتالـي ـ، نطلب من الطالب نقطته لسنة الدراسية وبعدها نرد عليها حسب الحالات التالية
note < 10 : raté
note > 10 et note < 12 assable
note > 10 et note < 14 :A.bien
note >= 14 :bien
حسنـا ، هنا لدينا في الواقع حالتين ، الأولى هي أصغر من 10 و الثانية هي أكبر لكن في الحالة التانية يوجد 3 حالاتـ ، حسنا دعونا نبدأ خطوة بخطوة
سنفترض أننا نتعامل مع أعداد طبيعية لتبسيط .
Variable m En Entier
debut
Ecrire "Entrer ta NOTE :"
Lire(m)
sim<10alors
Ecrire "Tu as raté L'année "
sinon
Ecrire "Bravooo !!"
finsi
fin
الأن كما قلت سوف نتعمق قليلا ، لنتكلم فقط عن الجزء الثاني من الشرط ، يعني ما في داخل sinon
سنحدف ما في داخله و نضيف التالـي ،
sinote < 12alors
ecrire "passable"
sinon
ecrire " plus que 12 c'est bien comme note "
finsi
الأن و بنفس الطريقة يعني داخل sinon سنقوم بشرط آخـر ، يعني سيصبح لنا البرنامج كالتالـي :
Variable m En Entier
debut
Ecrire "Entrer ta NOTE :"
Lire(m)
sim<10alors
Ecrire "Tu as raté L'année "
sinon
sinote < 12 alors
ecrire "passable"
sinon
sinote < 14 alors
ecrire " Assez bien "
sinon
ecrire " plus que 14 c'est bien comme note "
finsi
finsi
finsi
fin
و لأن الطريقة صعبة تم إيجاد حل للأمر و هو بالعبارة sinonsi ، و هذا ما يكفائه بالإنجليزي ب else if
يعني هذا حرفيا ، إدا لم يتحقق الشرط السابق و تحقق الشرط التالي نفذ ما يلي :
ليصبح لنا ما قمنا به كالتالـي :
Variable m En Entier
debut
Ecrire "Entrer ta NOTE :"
Lire(m)
sim<10 alors
Ecrire "Tu as raté L'année "
sinonsi note < 12 alors
Ecrire "passable"
sinonsi note < 14 alors
Ecrire " Assez bien "
sinon
Ecrire " plus que 14 c'est bien comme note "
finsi
fin
البرنامج الأن أصبح وضوحـا ، مع العلم أنه في حالة تحقق احد الشروط يخرج نهائيا الى ما بعد finsi ،
طبعا هدا الأمر صعب جدا للوهلة الأولـى ، و لا يمكن التعامل معه في اول مرة ـ لهذا أتمنى حقا
ان ارى استفسارتكم ، كيفما كانت ، و إن شاء الله سأضع التمارين ( لم اضع التمارين لدرس السابق لأنه كان بسيط و لا يتطلب اي فكر برمجي )