Mission Carthage

الرئيسية › الدروس › الاختيار المتعدّد: Selon

Selon و match…case: الاختيار المتعدّد بـ Algo وPython

الفصل 13 · 3 رياضيات وعلوم وتقنية, 3 علوم الإعلامية, باك رياضيات وعلوم وتقنية, باك علوم الإعلامية

اختار معالجة حسب قيمة متغيّر، بـ Selon في الـ algorithme و match…case في Python.

دروس هذا الفصل

  1. حالة لكل قيمة
  2. مجالات من القيم
  3. Selon مع الحروف

الدرس 13.1 : حالة لكل قيمة

8 دقيقة

الـ structure à choix multiple تقارن متغيّر واحد (الـ sélecteur) مع قائمة قيم. كل قيمة عندها معالجة متاعها. أوضح من سلسلة طويلة من Sinon Si كي نختبرو ديما نفس المتغيّر.

نصيحة : حالة وحدة برك تتخدم: الأولى اللي تتوافق. ما يلزمش break كيما في لغات أخرى.

انتبه : الـ sélecteur لازم يكون entier ولا caractère ولا chaîne. ما نعملوش Selon على condition كيما x > y.

بـ Python

منيو متاع ريستو صغير: الحريف يكتب نومرو، والبرنامج يطلّع الماكلة وسومها.

print("1 : Lablabi, 2 : Fricassé, 3 : Brik")
choix = int(input())
match choix:
    case 1:
        print("Lablabi : 3 DT")
    case 2:
        print("Fricassé : 1 DT")
    case 3:
        print("Brik : 2 DT")
    case _:
        print("Choix invalide")

بـ algorithme

نفس المنيو بـ Selon. شوف Sinon لكل النوامر الأخرى.

Algorithme Menu
Début
  Ecrire("1 : Lablabi, 2 : Fricassé, 3 : Brik")
  Lire(choix)
  Selon choix
    1 : Ecrire("Lablabi : 3 DT")
    2 : Ecrire("Fricassé : 1 DT")
    3 : Ecrire("Brik : 2 DT")
    Sinon Ecrire("Choix invalide")
  FinSelon
Fin

TDO
Objet | Type/Nature
choix | Entier

الدرس 13.2 : مجالات من القيم

9 دقيقة

حالة من Selon تنجم تغطّي مجال: 10..13 : … معناها « من 10 لـ 13، الحدود محسوبة ». مفيدة للنقاط والأعمار وشرائح الأسوام.

في Python، الـ case تنجم يكون عندها garde: case _ if 10 <= note <= 13:. الحالة تتختار برك كان الـ condition اللي بعد if صحيحة. ونجموا زادة نكتبو نفس الحاجة بـ if … elif … else.

انتبه : المجالات ما لازمهمش يتداخلو: بـ 0..10 وبعد 10..13، القيمة 10 تطيح في الحالة الأولى برك. ثبّت في كل حدّ.

بـ Python

نقطة صحيحة على 20 تولّي تقدير. الـ gardes if يعوّضو المجالات.

note = int(input())
match note:
    case _ if 0 <= note <= 9:
        print("Insuffisant")
    case _ if 10 <= note <= 13:
        print("Moyen")
    case _ if 14 <= note <= 20:
        print("Bien")
    case _:
        print("Note invalide")

بـ algorithme

في الـ algorithme، المجال يتكتب مباشرة بزوز نقاط.

Algorithme Appreciation
Début
  Lire(note)
  Selon note
    0..9 : Ecrire("Insuffisant")
    10..13 : Ecrire("Moyen")
    14..20 : Ecrire("Bien")
    Sinon Ecrire("Note invalide")
  FinSelon
Fin

TDO
Objet | Type/Nature
note | Entier

الدرس 13.3 : Selon مع الحروف

9 دقيقة

الـ sélecteur ينجم يكون caractère ولا chaîne: opérateur +، حرف، أمر كيما "haut". القيم تتكتب بين ظفرين.

Selon ولا Si généralisé؟

نصيحة : داخل حالة، نجمو نحطّو برشا instructions، وحتى Si. مثلا باش نرفضو القسمة على صفر.

بـ Python

آلة حاسبة: نقراو زوز أعداد و opérateur. الحالة "/" فيها test باش نتجنّبو القسمة على صفر.

a = int(input())
op = input()
b = int(input())
match op:
    case "+":
        print(a + b)
    case "-":
        print(a - b)
    case "*":
        print(a * b)
    case "/":
        if b != 0:
            print(a / b)
        else:
            print("Division impossible")
    case _:
        print("Opérateur inconnu")

بـ algorithme

قيم الـ sélecteur حروف، إذن بين ظفرين.

Algorithme Calculatrice
Début
  Lire(a)
  Lire(op)
  Lire(b)
  Selon op
    "+" : Ecrire(a + b)
    "-" : Ecrire(a - b)
    "*" : Ecrire(a * b)
    "/" : Si b ≠ 0 Alors
            Ecrire(a / b)
          Sinon
            Ecrire("Division impossible")
          FinSi
    Sinon Ecrire("Opérateur inconnu")
  FinSelon
Fin

TDO
Objet | Type/Nature
a, b | Entier
op | Caractère

تدرّب مجانًا

كل درس فيه 3 تمارين مجانية مع تلميحات باش تطبّق الفصل هذا مع هنّيبوت.

افتح الفصل في Mission Carthage جرّب في الكومبيلاتور أونلاين

← الفصل اللي قبل : التنسيق: CSS · الفصل اللي بعد : الفرز (Les tris) →

كل الفصول · شوف فروض 2 تكنولوجيا المصلّحة

الدروس كتبناها لـ Mission Carthage على أساس البرنامج الرسمي. الأستاذ متاعك يبقى المرجع.