الرئيسية › الدروس › الاختيار المتعدّد: Selon
Selon و match…case: الاختيار المتعدّد بـ Algo وPython
اختار معالجة حسب قيمة متغيّر، بـ Selon في الـ algorithme و match…case في Python.
دروس هذا الفصل
- حالة لكل قيمة
- مجالات من القيم
- Selon مع الحروف
الدرس 13.1 : حالة لكل قيمة
الـ structure à choix multiple تقارن متغيّر واحد (الـ sélecteur) مع قائمة قيم. كل قيمة عندها معالجة متاعها. أوضح من سلسلة طويلة من Sinon Si كي نختبرو ديما نفس المتغيّر.
- في الـ algorithme:
Selon choix…FinSelon. كل سطر يتكتبvaleur : instruction. - برشا قيم لنفس المعالجة: نفرقوهم بفاصل،
6, 7 : …. Sinonتعالج كل القيم اللي موش في القائمة.- في Python:
match choix:وبعدcaseلكل قيمة. برشا قيم:case 6 | 7:. والـSinonتتكتبcase _:.
نصيحة : حالة وحدة برك تتخدم: الأولى اللي تتوافق. ما يلزمش 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 : مجالات من القيم
حالة من 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 مع الحروف
الـ sélecteur ينجم يكون caractère ولا chaîne: opérateur +، حرف، أمر كيما "haut". القيم تتكتب بين ظفرين.
Selon ولا Si généralisé؟
Selon: متغيّر واحد يتقارن مع قيم ولا مجالات ثابتة.Si … Sinon Si: شروط حرّة، برشا متغيّرات،et،ou، مقارنات بين زوز متغيّرات.
نصيحة : داخل حالة، نجمو نحطّو برشا 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 تمارين مجانية مع تلميحات باش تطبّق الفصل هذا مع هنّيبوت.
← الفصل اللي قبل : التنسيق: CSS · الفصل اللي بعد : الفرز (Les tris) →
كل الفصول · شوف فروض 2 تكنولوجيا المصلّحة
الدروس كتبناها لـ Mission Carthage على أساس البرنامج الرسمي. الأستاذ متاعك يبقى المرجع.