الرئيسية › الدروس › التسجيلات (Enregistrements)
التسجيلات (enregistrements) بـ Algo وPython
جمّع برشا معلومات على نفس الحاجة (تلميذ، منتوج) في متغيّر واحد، وبعد في tableau.
دروس هذا الفصل
- تسجيل والحقول متاعو
- tableau متاع تسجيلات
- فرز التسجيلات
الدرس 18.1 : تسجيل والحقول متاعو
الـ enregistrement يجمّع معلومات من أنواع مختلفة توصف نفس الحاجة. التلميذ عندو اسم (chaîne)، قسم (chaîne) ومعدّل (réel). كل معلومة هي champ.
نعرّفو الأول الـ type في الـ TDNT (جدول تعريف الأنواع الجديدة)، وبعد المتغيّر في الـ TDO:
- TDNT:
Eleve = Enregistrement، وبعد سطر لكل champ (nom : Chaîne،moy : Réel)، وبعدFin. - في الـ TDO:
e | Eleve. - نوصلو لـ champ بنقطة:
e.nom ← "Sami"،Lire(e.moy).
في 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 متاع تسجيلات
لقسم كامل، نحطّو التلاميذ في tableau متاع enregistrements: كل خانة فيها تلميذ كامل. T[i].nom هو اسم التلميذ اللي في الخانة i.
- TDNT:
Eleve = Enregistrement … Fin، وبعدTab = Tableau de 30 Eleve. - في الـ TDO:
T | Tab. - Python:
T = [{"nom": "", "moy": 0.0} for i in range(n)]، وبعدT[i]["nom"].
انتبه : كيما الـ 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 : فرز التسجيلات
باش نعملو ترتيب، نفرزو الـ 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 تمارين مجانية مع تلميحات باش تطبّق الفصل هذا مع هنّيبوت.
← الفصل اللي قبل : المصفوفات (Matrices) · الفصل اللي بعد : الواجهات الرسومية بـ Qt →
كل الفصول · شوف فروض 2 تكنولوجيا المصلّحة
الدروس كتبناها لـ Mission Carthage على أساس البرنامج الرسمي. الأستاذ متاعك يبقى المرجع.