مسار التنفيذ

من البنات أساسية في معظم لغات البرمجة تحديد ما إذا كان يجب تشغيل بعض تعليمات أم لا بناءً على ما إذا كان الشرط صحيحًا . وكذلك قرار تشغيل بعض تعليمات بشكل متكرر بينما يكون الشرط صحيحًا . الإنشاءات الأكثر شيوعًا التي تتيح لك التحكم في تدفق تنفيذ تعليمات الخوارزم هي التعبيرات الشرطية باذا والحلقات.

التعبيرات الشرطية باذا

تقوم أداة الشرط اذا بتقسيم الصفرة وفقًا لشروط محددة. نوفر شرطًا ثم ننص على ما يلي "إذا تم استيفاء هذا الشرط ، فقم بتشغيل مجموعة التعليمات البرمجية هذه. إذا لم يتم استيفاء الشرط ، فلا تقم بتشغيل مجموعة التعليمات البرمجية هذه. "

في برنامج الخوارزم يتم تنفيذ التعليمات بالتتابع. يحدث هذا عندما لا يكون هناك شرط حول البيانات. إذا وضعت بعض الشروط لمجموعة من البيانات ، فقد يتغير تدفق التنفيذ بناءً على النتيجة التي يتم تقييمها حسب الشرط . يشار إلى هذه العملية باسم صنع القرار وتسمى تعليمات اتخاذ القرارات أيضا تعليمات السيطرة.

                                            


الدالة  الاصل() {
    المتغير  عدد صحيح := 19؛
    
    اذا عدد < 20 {
         شاشة::اكتب("الشرط كان صحيحا ! ")؛
     } والا {
         شاشة::اكتب("الشرط كان خاطئا ! ")؛
     }
}	
                                                                                

كل تعبيرات اذا تبدأ بالكلمة المفتاحية اذا ، والتي يتبعها شرط. في هذه الحالة ، الشرط عدد < 20 يتحقق من أن المتغير عدد له قيمة أقل من 20. أم لا. يتم وضع فقرة الصفرة التي نريد تنفيذها إذا كان الشرط صحيحًا فورًا بعد الشرط داخل الأقواس المعقوفة.

اختياريًا ، يمكننا أيضًا تضمين تعبير آخر ، اخترناه القيام به هنا ، لإعطاء البرنامج مجموعة بديلة من التعليمات البرمجية للتنفيذ في حالة تقييم الشرط إلى خطا. إذا لم تقدم تعبيرًا آخر وكان الشرط خاطئًا ، فسوف يتخطى البرنامج فقط التعليمات المرتبطة ب اذا وينتقل إلى الجزء التالي من الصفرة.

حاول تشغيل هذه الخوارزمية ؛ ستحصل على الناتج التالي:

الشرط كان صحيحا !

لنحاول تغيير قيمة عدد إلى قيمة تجعل الشرط خاطئًا لمعرفة ما يحدث:

                                            
    المتغير  عدد صحيح := 21؛	
                                                                                

سنحصل على النتيجة:

الشرط كان خاطئا !

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

                                            

الدالة  الاصل() {
    المتغير  عدد صحيح := 19؛
    
    اذا عدد  {
         شاشة::اكتب("الشرط كان صحيحا ! ")؛
    
     }
}	
                                                                                

الخوارزم يخبرك بوجود خطأ:

المطلوب جملة منطقية

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

االتعامل مع شروط متعددة مع اذا و الا

                                            


الدالة  الاصل() {
    المتغير  عدد صحيح := 8؛
    
    اذا عدد نمط 5 = 0 {
         شاشة::اكتب("العدد قابل للقسمة على 5 ")؛
     } والا اذا عدد نمط 4 = 0 {
         شاشة::اكتب("العدد قابل للقسمة على 4 ")؛
     }  والا اذا عدد نمط 2 = 0 {
         شاشة::اكتب("العدد قابل للقسمة على 2 ")؛
     }  والا {
         شاشة::اكتب("العدد غير قابل للقسمة على 5 ولا على 4 ولا على 2 ")؛
     }
}	
                                                                                

يحتوي هذا البرنامج على أربعة مسارات ممكنة . بعد تشغيله ، سترى الإخراج التالي:

العدد قابل للقسمة على 4

عندما يتم تنفيذ هذا البرنامج ، فإنه يتحقق من كل تعبير ل اذا وينفذ أول تعليمات تسري عليه الحالة الشرطية. لاحظ أنه على الرغم من أن 8 قابلة للقسمة على 2 ، إلا أننا لا نرى النتيجة العدد قابل للقسمة على 2 ، ولا نرى النتيجة الاخيرةالعدد غير قابل للقسمة على 5 ولا على 4 ولا على 2. هذا لأن الخوارزم لا ينفذ إلا التعليمات المحصورة للحالة الحقيقية الأولى ، وبمجرد أن يجدها ، فإنه لا يفتحص الباقي.

التكرار ب الحلقات

من المفيد غالبًا تنفيذ مجموعة من التعليمات البرمجية أكثر من مرة. ولهذا ، يوفر الخوارزم عدة صيغ للتكرار. الحلقة تعمل من خلال الخوارزمية وتكر التعليمات داخل "جسم الحلقة" حتى النهاية ، ثم تعاود الكرة فورًا من البداية.

الخوارزم لديه ثلاثة أنواع من الحلقات: كرر ، مادام ، لاجل . دعونا نجرب كل واحدة.

تكرار التعليمات ب مادام

لألا تتكرر التعليمات الى مالا نهاية يجب تقييم حالة الخروج من داخل الحلقة. فبينما يكون الشرط صوابا ، يتم تشغيل الحلقة. و عندما يتوقف الشرط عن أن يكون صوابا ، تنقطع الحلقة فتتوقف. دائما مايكون التكرار مشروطا بشرط او مجموعة من الشروط. لننظر الى المثال الآتي:

                                            


الدالة  الاصل() {
    المتغير  عدد صحيح := 10؛
                    
    مادام عدد ليس= 0 {
        شاشة::اكتب(عدد)؛				
        عدد := عدد - 1؛
    }	
}	
                                                                                

هذا المثال يكتب الاعداد من 10 الى 1. الخوارزمية تقول : " مادام العدد ليس = 0 فكرر { كتابة هذا العدد على الشاشة ثم قم بنقص 1 من نفس العدد }" .

لاحظ انه اذا كان المتغيرعدد منعدما قبل بدء الحلقة فلن يتم تنفيذ اي تعليمة لان شرط دخول الحلقة هو الا يكون المتغير منعدما.

تكرار التعليمات ب كرر

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

                                            


الدالة  الاصل() {
    
    المتغير  عدد صحيح := 10؛
                    
    كرر {
        
        شاشة::اكتب(عدد)؛				
        عدد := عدد - 1؛
        
    }	مادام عدد ليس= 0؛
}	
                                                                                

لاحظ انه اذا كان المتغير عدد منعدما قبل بدء الحلقة فسيتم تنفيذ التعليمات مرة واحدة لان شرط الخروج من الحلقة يوجد في آخر التركيب.

تكرار التعليمات ب لاجل

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

                                            


الدالة  الاصل() {
    
    المتغير  عدد صحيح؛
        لاجل عدد := 10  ؛ عدد ليس= 0 ؛ عدد := عدد - 1  {
            شاشة::اكتب(عدد)؛				
        }
}	
                                                                                

تتكون صيغة التكرار هذه من ثلاثة وظائف:

  • التهئة: عدد := 10 يمثل التهيىئة وهي تعليمات تنجز مرة واحد قبل دخول الحلقة.
  • الشروط: عدد ليس= 0 هو شرط التكرار وهو أيضا شرط لدخول حلقة التكرار.
  • تعليمات تغيير: عدد := عدد - 1 تستعمل غالبا لتغيير المتغيرات المكونة للشرط.

وتتبع هذه الوظائف بالتعليمات المراد تكرارها.

تصبح هذا الشكل من الخوارزميات مفيذا عندما لا نحبذ تواجد تداخل بين التعليمات المراد تكرارها وادوات التكرار. او عندما نحتاج الى متغير واحد في الشرط عندما نريد الانتقال مثلا بين مكونات مصفوفة.