DM

bonjour j'ai un DM a faire mais je n'y arrive pas !
j'aimerais avoir de l'aide pour le faire...

voila le dm :

mport networkx as nx

class Graphe():

    def __init__(self):
        self.dico_graph={}

    def ajout_noeud(self, nd:str):
        '''ajoute un noeud au graphe'''
        self.dico_graph[nd_1] = []
        
    def ajoute_arete(self, nd_1:str,nd_2:str):
        '''ajoute une arête entre les noeud nd_1 et nd_2 '''
        self.dico_grpah[nd_1].append(nd_2)
        self.dico_grpah[nd_2].append(nd_1)
        pass

    def list_noeud(self) -> list:
        '''affiche la liste des noeuds'''
        
        pass

    def est_liee_2(self, nd_1: str, nd_2: str) -> bool:
        '''renvoie vrai si les deux noeuds sont reliés de nd_1 vers nd_2'''
        pass

    def est_liee_3(self, nd_1: str, nd_2: str, nd_3: str) -> bool:
        '''renvoie vrai si les trois noeuds sont reliés de nd_1 vers nd_2 puis nd_3'''

    def est_liee_symetriquement(self, nd_1: str, nd_2: str) -> bool:
        '''renvoie vrai si les deux noeuds sont reliés dans les deux sens'''
        pass

    def est_symetrique(self) -> bool:
        '''renvoie vrai si toutes les liaisons se font dans les deux sens'''
        pass



    def successeurs_list(self, nd: str) -> list:
        '''renvoie la liste des successeurs de à nd'''
        pass


    def predecesseurs_list(self, ville: str) -> list:
        '''renvoie la liste des predecesseurs de à ville'''
        pass

    def degre_sortant(self, nd: str) -> int:
        '''renvoie le degré sortant du noeud nd'''
        pass

    def degre_entrant(self, nd: str) -> int:
        '''renvoie le degré entrant du noeud nd'''
        pass

    def est_puits(self, nd: str) -> bool:
        '''renvoie vrai si aucun chemin ne part de nd: degré sortant nul'''
        pass

    def est_source(self, nd: str) -> bool:
        '''renvoie vrai si aucun n'arrive à nd : degré entrant nul'''
        pass

    def est_isole(self, nd: str) -> bool:
        '''renvoie vrai si nd est isolé'''
        pass

    def est_relie_a_tous_les_autres_noeuds(self, nd: str) -> bool:
        '''renvoie vrai si nd est relié à toutes les autres noeuds'''
        pass
    
    def matrice_adjacence(self):
        '''renvoie la matrice d'adjacence du graphe'''
    
    @staticmethod
    def creer_from_matrice(m:list):
        '''instancie un graphe de Graphe à partir de la matrice d'adjacence au format du TP précédent'''
        
    def dessine_graph(self):
        D = nx.DiGraph()
        for i in self.dico_graph.keys():
            D.add_node(i)
            for j in self.dico_graph[i]:
                D.add_edge(i, j)
        nx.draw(D, with_labels=True)

8 réponses

  1. bonjour,

    le problème est que je ne comprends pas ca et que je ne trouve rien sur internet,

    ducoup je demande l'aide ( pas faire mon exercice) mais qu'on m'explique
    0
    1. ok

      L'indentation étant importante en Python, merci de re poster ton code avec les balises de code
      mode d'emploi:
      https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
      Visuellement, ça doit ressembler à ceci :

      def test():
          print('test')
      
      test()
      
      0
      1. import networkx as nx

        class Graphe():

        def __init__(self):
        self.dico_graph={}

        def ajout_noeud(self, nd:str):
        '''ajoute un noeud au graphe'''
        self.dico_graph[nd_1] = []

        def ajoute_arete(self, nd_1:str,nd_2:str):
        '''ajoute une arête entre les noeud nd_1 et nd_2 '''
        self.dico_grpah[nd_1].append(nd_2)
        self.dico_grpah[nd_2].append(nd_1)
        pass

        def list_noeud(self) -> list:
        '''affiche la liste des noeuds'''

        pass

        def est_liee_2(self, nd_1: str, nd_2: str) -> bool:
        '''renvoie vrai si les deux noeuds sont reliés de nd_1 vers nd_2'''
        pass

        def est_liee_3(self, nd_1: str, nd_2: str, nd_3: str) -> bool:
        '''renvoie vrai si les trois noeuds sont reliés de nd_1 vers nd_2 puis nd_3'''

        def est_liee_symetriquement(self, nd_1: str, nd_2: str) -> bool:
        '''renvoie vrai si les deux noeuds sont reliés dans les deux sens'''
        pass

        def est_symetrique(self) -> bool:
        '''renvoie vrai si toutes les liaisons se font dans les deux sens'''
        pass

        def successeurs_list(self, nd: str) -> list:
        '''renvoie la liste des successeurs de à nd'''
        pass

        def predecesseurs_list(self, ville: str) -> list:
        '''renvoie la liste des predecesseurs de à ville'''
        pass

        def degre_sortant(self, nd: str) -> int:
        '''renvoie le degré sortant du noeud nd'''
        pass

        def degre_entrant(self, nd: str) -> int:
        '''renvoie le degré entrant du noeud nd'''
        pass

        def est_puits(self, nd: str) -> bool:
        '''renvoie vrai si aucun chemin ne part de nd: degré sortant nul'''
        pass

        def est_source(self, nd: str) -> bool:
        '''renvoie vrai si aucun n'arrive à nd : degré entrant nul'''
        pass

        def est_isole(self, nd: str) -> bool:
        '''renvoie vrai si nd est isolé'''
        pass

        def est_relie_a_tous_les_autres_noeuds(self, nd: str) -> bool:
        '''renvoie vrai si nd est relié à toutes les autres noeuds'''
        pass

        def matrice_adjacence(self):
        '''renvoie la matrice d'adjacence du graphe'''

        @staticmethod
        def creer_from_matrice(m:list):
        '''instancie un graphe de Graphe à partir de la matrice d'adjacence au format du TP précédent'''

        def dessine_graph(self):
        D = nx.DiGraph()
        for i in self.dico_graph.keys():
        D.add_node(i)
        for j in self.dico_graph[i]:
        D.add_edge(i, j)
        nx.draw(D, with_labels=True)
        0
    2. je vous envoie ca

      et oui cela ressemble a cela .
      0
      1. Ben .... pas vraiment

        Compare ton dernier envoi et ma réponse d'avant

        dans ton message, il n'y a ni couleurs, ni tabulations ....
        def test():
            print('test')
        
        test()
        


        import networkx as nx

        class Graphe():

        def __init__(self):
        self.dico_graph={}

        def ajout_noeud(self, nd:str):

        il suffit pourtant de copier le code dans ton message, sélectionner tout à la souris, cliquer l'icone "flèche pointe en bas" dans la barre d'icone, et de sélectionner Python
        Quand tu valides ton message, alors le code apparait comme le mien
        0
        1. je vous ai envoyé le dm juste ne dessous si besoin
          0
      2. je vois je vais essayé de bien faire désolé
        0
        1. import networkx as nx
          
          class Graphe():
          
              def __init__(self):
                  self.dico_graph={}
          
              def ajout_noeud(self, nd:str):
                  '''ajoute un noeud au graphe'''
                  self.dico_graph[nd_1] = []
                  
              def ajoute_arete(self, nd_1:str,nd_2:str):
                  '''ajoute une arête entre les noeud nd_1 et nd_2 '''
                  self.dico_grpah[nd_1].append(nd_2)
                  self.dico_grpah[nd_2].append(nd_1)
                  pass
          
              def list_noeud(self) -> list:
                  '''affiche la liste des noeuds'''
                  
                  pass
          
              def est_liee_2(self, nd_1: str, nd_2: str) -> bool:
                  '''renvoie vrai si les deux noeuds sont reliés de nd_1 vers nd_2'''
                  pass
          
              def est_liee_3(self, nd_1: str, nd_2: str, nd_3: str) -> bool:
                  '''renvoie vrai si les trois noeuds sont reliés de nd_1 vers nd_2 puis nd_3'''
          
              def est_liee_symetriquement(self, nd_1: str, nd_2: str) -> bool:
                  '''renvoie vrai si les deux noeuds sont reliés dans les deux sens'''
                  pass
          
              def est_symetrique(self) -> bool:
                  '''renvoie vrai si toutes les liaisons se font dans les deux sens'''
                  pass
          
          
          
              def successeurs_list(self, nd: str) -> list:
                  '''renvoie la liste des successeurs de à nd'''
                  pass
          
          
              def predecesseurs_list(self, ville: str) -> list:
                  '''renvoie la liste des predecesseurs de à ville'''
                  pass
          
              def degre_sortant(self, nd: str) -> int:
                  '''renvoie le degré sortant du noeud nd'''
                  pass
          
              def degre_entrant(self, nd: str) -> int:
                  '''renvoie le degré entrant du noeud nd'''
                  pass
          
              def est_puits(self, nd: str) -> bool:
                  '''renvoie vrai si aucun chemin ne part de nd: degré sortant nul'''
                  pass
          
              def est_source(self, nd: str) -> bool:
                  '''renvoie vrai si aucun n'arrive à nd : degré entrant nul'''
                  pass
          
              def est_isole(self, nd: str) -> bool:
                  '''renvoie vrai si nd est isolé'''
                  pass
          
              def est_relie_a_tous_les_autres_noeuds(self, nd: str) -> bool:
                  '''renvoie vrai si nd est relié à toutes les autres noeuds'''
                  pass
              
              def matrice_adjacence(self):
                  '''renvoie la matrice d'adjacence du graphe'''
              
              @staticmethod
              def creer_from_matrice(m:list):
                  '''instancie un graphe de Graphe à partir de la matrice d'adjacence au format du TP précédent'''
                  
              def dessine_graph(self):
                  D = nx.DiGraph()
                  for i in self.dico_graph.keys():
                      D.add_node(i)
                      for j in self.dico_graph[i]:
                          D.add_edge(i, j)
                  nx.draw(D, with_labels=True)
          
          0
          1. Bonjour Missouh,

            OK

            Et donc tu ne comprends pas ce que fait ce code ?

            L'as-tu exécuté pour voir ?

            C'est un DM, ton prof n'a pas donné de détails ?

            Es tu allé voir sur Internet ce que fait la bibliothèque networkx ?

            "NetworkX est un module python dédié à l’analyse de réseaux. Déconseillé comme outil d’apprentissage, il pourrait s’avérer utile pour des personnes plus expertes, notamment pour l’analyse des réseaux bipartis où le choix reste limité ....."

            Pour débuter, il y a plus simple !
            0