# ############################################ # La programmation orienté objet # Implémentation d'unarbre généalogique # Novembre 2025 # nsi.gecif.net # ############################################ # -------------------------------------------- # Définition d'une classe Perso : # -------------------------------------------- class Perso: """ La classe Perso attend ici un seul paramètre : le prénom Exemple d'instanciation : p1=Perso("Caroline")""" def __init__(self,p): self.prenom=p self.parent1=None # les attributs "parent1" et "parent2" permettront plus tard self.parent2=None # de lier les objets entre eux afin de renseigner les liens de parentés # -------------------------------------------- # Programme principal # -------------------------------------------- # On commence par créer les instances de la classe Perso qui sont pour l'instant intépendantes : p1=Perso("Caroline") p2=Perso("Sylviane") p3=Perso("Gabriel") p4=Perso("Marguerite") p5=Perso("Enzo") p6=Perso("Brigitte") p7=Perso("Alain") # Une fois les objets créés on va les lier entre eux en renseignant leurs attributs "parent1" et "parent2" : # les parents de Caroline sont Sylviane et Gabriel : p1.parent1=p2 p1.parent2=p3 # les parents de Sylviane sont Marguerite et Enzo : p2.parent1=p4 p2.parent2=p5 # les parents de Gabriel sont Brigitte et Alain : p3.parent1=p6 p3.parent2=p7 # Exemples de parcourts de l'arbre généalogique pour afficher différents informations : print("Les parents de Caroline :") print("p1.prenom :", p1.prenom) print("p1.parent1.prenom :", p1.parent1.prenom) print("p1.parent2.prenom :", p1.parent2.prenom) print("\nLes parents de Sylviane :") print("p2.prenom :", p2.prenom) print("p2.parent1.prenom :", p2.parent1.prenom) print("p2.parent2.prenom :", p2.parent2.prenom) print("\nLes grands-parents de Caroline :") print("p1.parent1.parent2.prenom :", p1.parent1.parent2.prenom) print("p1.parent2.parent1.prenom :", p1.parent2.parent1.prenom) print("p1.parent1.parent1.prenom :", p1.parent1.parent1.prenom) print("p1.parent2.parent2.prenom :", p1.parent2.parent2.prenom) # -------------------------------------------- # Fin du programme principal # --------------------------------------------