Programme en C++

tfcv123 Messages postés 75 Statut Membre -  
tfcv123 Messages postés 75 Statut Membre -
Bonjour,
j'ai un exercice ou on me demande d'implémenter un générateur de graphes, pour cela je dois ecrire un pgm en c qui demande à l'utilisateur d'entrer le nre d'arrete et de sommet de mon graphe, et de préciser la listes des aretes et fournir l'instance obtenu dans un fichier.
j'ai un pbm au niveau de la précision de la liste des aretes.
aidez moi s'il vous plait.
Merci
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. tfcv123 Messages postés 75 Statut Membre
     
    MAIS COMMENT LE FAIRE ? j'arrive à demander le nbre d'arete et le nombre de sommets, mais je dois aussi demander à l'utilisateur d'entrer les aretes qu'il aimerait formés.
    et c'est là ou ça coince.
    1
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      C'est exactement la même chose, enfin ! Tu demande le nombre d'arêtes, puis tu fais une boucle :
      pour i = 1 à nombre d'aretes faire
        demander sommet 1
        demander sommet 2
      fin pour
      
      -1
  2. pyschopathe Messages postés 2053 Statut Membre 137
     
    Tu demandes le nombre d'arêtes, puis tu fais une boucle dans laquelle tu demande les deux sommets correspondant à chaque arête...
    -1
  3. saly_inf Messages postés 47 Statut Membre 4
     
    SALUT ...
    si je peux me permetre...j'ai pas bien compris ton probleme
    en effet, en a fait ce programme en delphi l'année passée...
    -1
    1. tfcv123 Messages postés 75 Statut Membre
       
      je dois ecrire un pgm ki demande à l'utilisateur d'entrer le nbre d'arrete et de sommets d'un graphe, et il doit préciser la liste des arete kilk aimerait formés:
      après avoir entrer les donnés je dois les afficher et les enregistrer dans un fichier
      0
  4. tfcv123 Messages postés 75 Statut Membre
     
    et comment faire pour afficher la liste des arretes.
    -1
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      Ben tu les stockes dans un tableau et tu les affiche avec une nouvelle boucle... T'as déjà programmé ?
      -1
      1. tfcv123 Messages postés 75 Statut Membre > pyschopathe Messages postés 2053 Statut Membre
         
        oui, je vais le faire
        -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. saly_inf Messages postés 47 Statut Membre 4
     
    il faut créer une liste chaînée en utilisant les pointeurs...
    @+
    -1
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      Inutile, bien trop complexe pour ça ! Il a juste à déclarer un tableau du genre
      int tab[nombre d'aretes][2]
      0
      1. saly_inf Messages postés 47 Statut Membre 4 > pyschopathe Messages postés 2053 Statut Membre
         
        oui je suis d'accord avec toi c une autre solution...un tableau de record...
        @+
        -1
      2. pyschopathe Messages postés 2053 Statut Membre 137 > saly_inf Messages postés 47 Statut Membre
         
        J'ai tendance aussi à trouver la solution compliquée avant la simple ^^ !
        -1
  7. tfcv123 Messages postés 75 Statut Membre
     
    et pourkoi? sinon comment le faire?
    -1
  8. pyschopathe Messages postés 2053 Statut Membre 137
     
    Tu fais quelque chose du genre :
    int nb_aretes;
    cout << "Nombre d'aretes ?" << endl;
    cin >> nb_aretes;
    
    // On récupère les arêtes
    int aretes[nb_aretes][2];
    for ( int i=0 ; i<nb_aretes ; ++i ) {
      cout << "Arete " << i << " :";
      cout << "\nSommet origine : ";
      cin >> aretes[i][0];
      cout << "\nSommet destination : ";
      cin >> aretes[i][1];
    }
    
    // On les affiche
    for ( int i=0 ; i<nb_aretes ; ++i ) {
      cout << "(" << aretes[i][0] << ", " << aretes[i][1] << ")" << endl;
    }
    
    // On les enregistre dans un fichier
    ofstream fichier( "nom_fichier.txt" );
    for ( int i=0 ; i<nb_aretes ; ++i ) {
      fichier << "(" << aretes[i][0] << ", " << aretes[i][1] << ")" << endl;
    }
    

    Tu peux regrouper les deux dernières boucles en une.
    -1
    1. tfcv123 Messages postés 75 Statut Membre
       
      merci jevais testé et je te ferai signe si je rencontre d'autres problèmes
      -1
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Salut,
      L'allocation dynamique ne marche pas comme ça. Soit tu utilises new soit tu utilises malloc (comme en C), mais en aucun cas comme tu as fait ;)
      Cdlt
      0
    3. pyschopathe Messages postés 2053 Statut Membre 137 > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Je peux bien déclarer un tableau statique, je le déclare sur la pile et pas sur le tas... Je ne vois pas en quoi ce code est faux ! Pourrais-tu expliquer stp ?
      -1
    4. pyschopathe Messages postés 2053 Statut Membre 137 > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Yep pas faux...
      int nb_aretes;
      cout << "Nombre d'aretes ?" << endl;
      cin >> nb_aretes;
      
      // On récupère les arêtes
      int * aretes[2];
      arete[0] = new int[nb_aretes];
      arete[1] = new int[nb_aretes];
      
      for ( int i=0 ; i<nb_aretes ; ++i ) {
        cout << "Arete " << i << " :";
        cout << "\nSommet origine : ";
        cin >> aretes[0][i];
        cout << "\nSommet destination : ";
        cin >> aretes[1][i];
      }
      
      // On les affiche
      for ( int i=0 ; i<nb_aretes ; ++i ) {
        cout << "(" << aretes[0][i] << ", " << aretes[1][i] << ")" << endl;
      }
      
      // On les enregistre dans un fichier
      ofstream fichier( "nom_fichier.txt" );
      for ( int i=0 ; i<nb_aretes ; ++i ) {
        fichier << "(" << aretes[0][i] << ", " << aretes[1][i] << ")" << endl;
      }
      
      delete[] arete[0];
      delete[] arete[1];
      
      0
    5. tfcv123 Messages postés 75 Statut Membre
       
      Bonjour,
      je n'ai pa stjrs résolu mon pbm et le code ke tu m'a donné est en C++ hors je programme en C, je ne comprend rien .
      je n'ai jamais toucher ai C++
      Merci
      0