الدرس 5: هياكل التحكم الشرطية - الاختيار البسيط والمتعدد

الدرس 5 : هياكل التحكم الشرطية - الاختيار البسيط والمتعدد

الدرس 5 (موسع): هياكل التحكم الشرطية - الاختيار البسيط والمتعدد

حتى الآن، كانت خوارزمياتنا تسير في مسار واحد مستقيم، تنفذ التعليمات واحدة تلو الأخرى بنفس الترتيب دائمًا. لكن العالم الحقيقي مليء بالقرارات والخيارات. ماذا لو أردنا تنفيذ جزء من الكود فقط إذا تحقق شرط معين؟ هنا يأتي دور هياكل التحكم الشرطية (Conditional Control Structures)، التي تمنح خوارزمياتنا "ذكاء" اتخاذ القرار.

غوص أعمق: ما هو "تدفق التحكم"؟

تدفق التحكم (Control Flow) هو مصطلح يصف الترتيب الذي ينفذ به الحاسوب التعليمات. في الخوارزميات البسيطة السابقة، كان التدفق "تتابعيًا" (Sequential). هياكل التحكم (الاختيار والتكرار) هي أدواتنا لتغيير هذا التدفق وجعله "غير خطي"، مما يسمح بتنفيذ مسارات مختلفة بناءً على ظروف متغيرة.

1. الشرط: قلب عملية اتخاذ القرار

قبل أن نتعلم هياكل الاختيار، يجب أن نفهم أساسها: الشرط (Condition). الشرط هو عبارة يتم تقييمها ودائمًا ما تكون نتيجتها إحدى قيمتين: Vrai (صحيح) أو Faux (خطأ). تتكون الشروط عادة باستخدام عوامل المقارنة.

عوامل المقارنة (Comparison Operators)

العاملالمعنىمثالالنتيجة (بافتراض age = 20)
=يساويage = 18Faux
<> أو !=لا يساويage <> 18Vrai
>أكبر تمامًا منage > 18Vrai
<أصغر تمامًا منage < 18Faux
>=أكبر من أو يساويage >= 20Vrai
<=أصغر من أو يساويage <= 20Vrai

2. الاختيار البسيط: بنية Si...Alors...FinSi

بنية الاختيار البسيط (Simple Choice): تُستخدم لتنفيذ مجموعة من التعليمات فقط وفقط إذا كان الشرط صحيحًا (Vrai). إذا كان الشرط خاطئًا (Faux)، يتم تجاهل هذه التعليمات بالكامل وتكمل الخوارزمية طريقها من بعد FinSi.

الصيغة العامة:

Si (condition) Alors     // ... مجموعة التعليمات التي ستُنفذ إذا كانت النتيجة Vrai ... FinSi

مثال تطبيقي: التحقق من علامة النجاح

المشكلة: كتابة خوارزمية تقرأ علامة طالب، وإذا كانت العلامة 10 أو أكثر، تطبع له رسالة تهنئة.

Algorithme VerifierSucces Variables     note: Réel Début     Écrire("أدخل علامة الطالب: ")     Lire(note)          Si (note >= 10) Alors         Écrire("تهانينا! أنت ناجح.")     FinSi          Écrire("نهاية البرنامج.") Fin

تحليل: إذا أدخل المستخدم 15، الشرط 15 >= 10 يكون Vrai، فتُطبع رسالة التهنئة ثم "نهاية البرنامج". أما إذا أدخل 9، فالشرط يكون Faux، ويتم القفز مباشرة إلى ما بعد FinSi، فتُطبع "نهاية البرنامج" فقط.

3. الاختيار البديل: بنية Si...Alors...Sinon...FinSi

بنية الاختيار البديل (Alternative Choice): تُستخدم للاختيار بين مسارين مختلفين. إذا كان الشرط صحيحًا، يتم تنفيذ المجموعة الأولى من التعليمات. أما إذا كان الشرط خاطئًا، فيتم تنفيذ المجموعة الثانية (التي تلي Sinon).

هنا، لا مفر من تنفيذ أحد المسارين. لا يمكن تنفيذهما معًا ولا تجاهلهما معًا.

الصيغة العامة:

Si (condition) Alors     // ... Bloc 1: يُنفذ إذا كانت النتيجة Vrai ... Sinon     // ... Bloc 2: يُنفذ إذا كانت النتيجة Faux ... FinSi

مثال تطبيقي: التحقق من رقم زوجي أو فردي

المشكلة: كتابة خوارزمية تقرأ عددًا صحيحًا وتحدد ما إذا كان زوجيًا أم فرديًا.

مفتاح الحل: نستخدم عامل باقي القسمة MOD. الرقم يكون زوجيًا إذا كان باقي قسمته على 2 يساوي 0.

Algorithme PairOuImpair Variables     nombre: Entier Début     Écrire("أدخل عددًا صحيحًا: ")     Lire(nombre)          Si (nombre MOD 2 = 0) Alors         Écrire("العدد ", nombre, " هو زوجي.")     Sinon         Écrire("العدد ", nombre, " هو فردي.")     FinSi Fin

4. الاختيارات المتداخلة والمتسلسلة: Si...SinonSi...

ماذا لو كان لدينا أكثر من خيارين؟ مثلاً، هل الرقم موجب أم سالب أم صفر؟ هنا نلجأ إلى "تداخل" أو "تسلسل" الشروط.

الصيغة العامة (الشكل الأفضل والأنظف):

Si (condition1) Alors     // ... Bloc 1 ... SinonSi (condition2) Alors     // ... Bloc 2 ... SinonSi (condition3) Alors     // ... Bloc 3 ... Sinon     // ... Bloc par défaut (اختياري) ... FinSi

ملاحظة: يتم تقييم الشروط بالترتيب. بمجرد أن يتحقق أول شرط (Vrai)، يتم تنفيذ الكتلة البرمجية الخاصة به ويتم تخطي باقي الشروط (SinonSi و Sinon) بالكامل.

مثال تطبيقي: تقدير العلامات

المشكلة: كتابة خوارزمية تقرأ معدل طالب وتعطي تقديرًا نصيًا.

Algorithme MentionEtudiant Variables     moyenne: Réel Début     Écrire("أدخل معدل الطالب: ")     Lire(moyenne)          Si (moyenne < 10) Alors         Écrire("تقدير: راسب")     SinonSi (moyenne < 12) Alors // هنا نعلم أن المعدل بالتأكيد >= 10         Écrire("تقدير: مقبول")     SinonSi (moyenne < 14) Alors // هنا نعلم أن المعدل بالتأكيد >= 12         Écrire("تقدير: حسن")     SinonSi (moyenne < 16) Alors         Écrire("تقدير: جيد")     Sinon // أي معدل >= 16         Écrire("تقدير: ممتاز")     FinSi Fin

5. الاختيار المتعدد: بنية Selon...Cas...FinSelon

بنية الاختيار المتعدد (Multiple Choice): تُستخدم عندما نريد مقارنة قيمة متغير واحد مع قائمة من القيم الثابتة المحددة. هي بديل أنظف وأكثر قراءة من سلسلة طويلة من Si...SinonSi في هذه الحالة الخاصة.

الصيغة العامة:

Selon (variable_a_tester) Faire     Cas valeur1:         // ... Bloc 1 ...     Cas valeur2, valeur3: // يمكن دمج أكثر من حالة         // ... Bloc 2 ...     Cas valeur4 .. valeur6: // يمكن استخدام مجال من القيم         // ... Bloc 3 ...     Sinon // (أو Autre) الحالة الافتراضية إذا لم تتطابق أي حالة         // ... Bloc par défaut ... FinSelon

مثال تطبيقي: قائمة طعام بسيطة

المشكلة: كتابة خوارزمية تطلب من المستخدم إدخال رقم (1, 2, 3) وتعرض اسم الطبق الموافق.

Algorithme MenuRestaurant Variables     choix: Entier Début     Écrire("اختر طبقك: (1: بيتزا, 2: شوربة, 3: سلطة)")     Lire(choix)          Selon (choix) Faire         Cas 1:             Écrire("لقد طلبت البيتزا. السعر: 1200 دج")         Cas 2:             Écrire("لقد طلبت الشوربة. السعر: 400 دج")         Cas 3:             Écrire("لقد طلبت السلطة. السعر: 350 دج")         Sinon:             Écrire("خيار غير صالح. من فضلك اختر بين 1 و 3.")     FinSelon Fin

خلاصة الدرس الخامس

  • هياكل التحكم الشرطية تسمح للخوارزمية بتنفيذ مسارات مختلفة بناءً على تقييم الشروط.
  • Si...Alors...FinSi: للتنفيذ "المشروط". افعل شيئًا فقط إذا كان الشرط صحيحًا.
  • Si...Alors...Sinon...FinSi: للاختيار بين "بديلين". افعل هذا أو ذاك.
  • Si...SinonSi...FinSi: للاختيارات المتسلسلة والمعقدة (مثل التحقق من مجالات).
  • Selon...Cas...FinSelon: هو الخيار الأفضل والأنظف للاختيار من متعدد عندما يكون الشرط هو مقارنة متغير واحد بقيم ثابتة.
  • إتقان هذه الهياكل هو مفتاح كتابة خوارزميات قوية وقادرة على حل مشكلات العالم الحقيقي.
google-playkhamsatmostaqltradent