DM

missouh -  
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -
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. missouh
     
    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
  2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    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. missouh
       
          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
  3. missouh
     
    je vous envoie ca

    et oui cela ressemble a cela .
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    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. missouh
       
      je vous ai envoyé le dm juste ne dessous si besoin
      0
  6. missouh
     
    je vois je vais essayé de bien faire désolé
    0
  7. missouh
     
    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
  8. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    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