Mission Carthage

الرئيسية › الدروس › التسجيلات (Enregistrements)

التسجيلات (enregistrements) بـ Algo وPython

الفصل 18 · 3 علوم الإعلامية, باك علوم الإعلامية

جمّع برشا معلومات على نفس الحاجة (تلميذ، منتوج) في متغيّر واحد، وبعد في tableau.

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

  1. تسجيل والحقول متاعو
  2. tableau متاع تسجيلات
  3. فرز التسجيلات

الدرس 18.1 : تسجيل والحقول متاعو

10 دقيقة

الـ enregistrement يجمّع معلومات من أنواع مختلفة توصف نفس الحاجة. التلميذ عندو اسم (chaîne)، قسم (chaîne) ومعدّل (réel). كل معلومة هي champ.

نعرّفو الأول الـ type في الـ TDNT (جدول تعريف الأنواع الجديدة)، وبعد المتغيّر في الـ TDO:

في Python، الـ enregistrement يتكتب بـ dictionnaire: e = {"nom": "", "moy": 0.0}، ونكتبو e["nom"] عوض e.nom.

نصيحة : باش تشوف زادة الكتيبة e = dict(nom=str(), moy=float()): هو نفس الـ dictionnaire، مكتوب بطريقة أخرى.

بـ Python

نقراو اسم تلميذ ومعدّلو، وبعد نكتبو جملة.

e = {"nom": "", "moy": 0.0}
e["nom"] = input()
e["moy"] = float(input())
if e["moy"] >= 10:
    print(e["nom"], "est admis avec", e["moy"])
else:
    print(e["nom"], "doit rattraper")

بـ algorithme

الـ type Eleve معرّف في الـ TDNT، والمتغيّر e في الـ TDO.

Algorithme UnEleve
Début
  Lire(e.nom)
  Lire(e.moy)
  Si e.moy ≥ 10 Alors
    Ecrire(e.nom, " est admis avec ", e.moy)
  Sinon
    Ecrire(e.nom, " doit rattraper")
  FinSi
Fin

TDNT
Eleve = Enregistrement
  nom : Chaîne
  moy : Réel
Fin

TDO
Objet | Type/Nature
e | Eleve

الدرس 18.2 : tableau متاع تسجيلات

11 دقيقة

لقسم كامل، نحطّو التلاميذ في tableau متاع enregistrements: كل خانة فيها تلميذ كامل. T[i].nom هو اسم التلميذ اللي في الخانة i.

انتبه : كيما الـ matrices، ما تكتبش [{…}] * n: الخانات الكل يوليو نفس الـ dictionnaire. الكتيبة for i in range(n) تصنع واحد جديد لكل خانة.

بـ Python

نقراو 3 تلاميذ ونلوّجو على اللي عندو أحسن معدّل.

n = 3
T = [{"nom": "", "moy": 0.0} for i in range(n)]
for i in range(n):
    T[i]["nom"] = input()
    T[i]["moy"] = float(input())
pm = 0
for i in range(1, n):
    if T[i]["moy"] > T[pm]["moy"]:
        pm = i
print("Major :", T[pm]["nom"], T[pm]["moy"])

بـ algorithme

pm يتفكّر بلاصة أحسن تلميذ.

Algorithme Major
Début
  n ← 3
  Pour i de 1 à n Faire
    Lire(T[i].nom)
    Lire(T[i].moy)
  FinPour
  pm ← 1
  Pour i de 2 à n Faire
    Si T[i].moy > T[pm].moy Alors
      pm ← i
    FinSi
  FinPour
  Ecrire("Major : ", T[pm].nom, " ", T[pm].moy)
Fin

TDNT
Eleve = Enregistrement
  nom : Chaîne
  moy : Réel
Fin
Tab = Tableau de 30 Eleve

TDO
Objet | Type/Nature
T | Tab
n, i, pm | Entier

الدرس 18.3 : فرز التسجيلات

11 دقيقة

باش نعملو ترتيب، نفرزو الـ tableau متاع الـ enregistrements حسب champ واحد (المعدّل، الاسم…). الـ tris متاع الفصل اللي فات يخدمو كيما هوما: نقارنو الـ champ المختار، ونبدّلو الـ enregistrements كاملين.

انتبه : كان تبدّل الـ champ moy برك، المعدّلات يبدّلو مولاهم! بدّل ديما التلميذ الكامل: aux ← T[i]، T[i] ← T[pmax]، T[pmax] ← aux.

نصيحة : في Python، تبديل زوز خانات في liste يبدّل الـ dictionnaires بيدهم: هذا بالضبط اللي نحبّوه.

بـ Python

ترتيب تنازلي حسب المعدّل، بالـ tri par sélection.

n = 3
T = [{"nom": "", "moy": 0.0} for i in range(n)]
for i in range(n):
    T[i]["nom"] = input()
    T[i]["moy"] = float(input())
for i in range(n - 1):
    pmax = i
    for j in range(i + 1, n):
        if T[j]["moy"] > T[pmax]["moy"]:
            pmax = j
    if pmax != i:
        aux = T[i]
        T[i] = T[pmax]
        T[pmax] = aux
for i in range(n):
    print(i + 1, T[i]["nom"], T[i]["moy"])

بـ algorithme

aux هو enregistrement Eleve، معرّف في الـ TDO.

Algorithme Classement
Début
  n ← 3
  Pour i de 1 à n Faire
    Lire(T[i].nom)
    Lire(T[i].moy)
  FinPour
  Pour i de 1 à n - 1 Faire
    pmax ← i
    Pour j de i + 1 à n Faire
      Si T[j].moy > T[pmax].moy Alors
        pmax ← j
      FinSi
    FinPour
    Si pmax ≠ i Alors
      aux ← T[i]
      T[i] ← T[pmax]
      T[pmax] ← aux
    FinSi
  FinPour
  Pour i de 1 à n Faire
    Ecrire(i, " ", T[i].nom, " ", T[i].moy)
  FinPour
Fin

TDNT
Eleve = Enregistrement
  nom : Chaîne
  moy : Réel
Fin
Tab = Tableau de 30 Eleve

TDO
Objet | Type/Nature
T | Tab
aux | Eleve
n, i, j, pmax | Entier

تدرّب مجانًا

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

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

← الفصل اللي قبل : المصفوفات (Matrices) · الفصل اللي بعد : الواجهات الرسومية بـ Qt →

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

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