IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[exercice] algo sur les tableaux


Sujet :

Algorithmes et structures de données

  1. #1
    omzoway
    Invité(e)
    Par défaut [exercice] algo sur les tableaux
    bonjour,

    Je voudrais de l'aide concernant un éxo à résoudre sur les algo partie tableau et je galère pour ça , voici l'exercice:

    un vecteur ville contient le nom de plusieurs villes et une matrice distance contient les distances entre les villes.
    Voici le principe: les indices de ligne et de colonne de la matrice distance représente les indices des villes dans le vecteur ville.
    Attention, la matrice distance est "triangulaire" c'est à dire qu'elle n'est remplie qu'à moitié (ce qui est logique car la distance antibes-nice est la même que nice-antibes).

    voici à quoi ressemble distance:
        1    2    3    4    5
       ----------------------
    1 | 0   23   12    5   46
    2 | -    0    2   40   10
    3 | -    -    0   51   20
    4 | -    -    -    0   11
    5 | -    -    -    -    0
    
    si antibes est la ville n°3 et nice la ville n°5 dans le vecteur ville, alors la distance entre antibes est nice est de 20km,

    Ecrire la séquence algorithmique qui permet de saisir 2 noms de villes et d'afficher la distance entre ces 2 villes. si l'un des noms de villes n'est pas présent dans le tableau des villes, il faudra alors juste afficher un message d'erreur


    voici donc ce que jai realisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Programme Ville
      ville[1..100]: chaine
      nbvilles: entier // contient le nombre de cases effectivement remplies dans 
       ville 
       distance [1..100,1..100]: entier // contient les distances entre les villes
    Debut
         Afficher "entrer ville1:"
         saisir ville1
           afficher "entrer ville2:"
           saisir ville2
    Voila je vous remercie d'avance
    Dernière modification par pseudocode ; 16/05/2011 à 18h20. Motif: mise en page

  2. #2
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Sauf mauvaise lecture de me part, il n'y a vraiment aucune difficulté, sauf à la rigueur le fait que la matrice distance est triangulaire...

    Qu'as-tu essayé de faire mis à part recueillir les entrées de l'utilisateur ?

  3. #3
    omzoway
    Invité(e)
    Par défaut
    bonsoir, justement c'est la matrice qui me fait bugger un peu avec les autres exos classique sur les structures des tableaux je m'en sortais mieux, mais je me disais si par la suite de sil faut faire une boucle si ville 1 et ville 2 existe alors afficher distance entre les 2 villes sinon afficher error, oubien je me trompe car le truc de la matrice triangulaire là, je ne vois pas trop ^^', merci

  4. #4
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Pourquoi une boucle ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Programme Ville
      ville[1..100]: chaine
      nbvilles: entier // contient le nombre de cases effectivement remplies dans 
       ville 
       distance [1..100,1..100]: entier // contient les distances entre les villes
    Debut
         Afficher "entrer ville1:"
         saisir ville1
           afficher "entrer ville2:"
           saisir ville2
          Si ville1 ou ville2 n'est pas dans tableau_des_distances, alors erreur
          return tableau_des_distances[min(index_ville1, index_ville2)][max(index_ville1, index_ville2)]

  5. #5
    omzoway
    Invité(e)
    Par défaut
    ooh mince je voulais dire condition si plutot, jai tendance à dire toujours boucle , voilà cest ce que je voulais dire en gros sauf que moi je pensais plutot comme ça:
    si distance.ville1 et distance.ville2 existent alors on les affiche
    sinon on affiche un message d'erreur et on retourne piocher au tableau, par contre je ne comprends pas le pourquoi des min et max, oui je sais je suis un neuneu en math, pourriez vou s'il vous plait être plus explicite, merci encore d'avantage

  6. #6
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    min et max car la matrice est triangulaire, donc on doit faire attention d'appeler des cellules de la matrice qui existe.

  7. #7
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Citation Envoyé par Franck Dernoncourt Voir le message
    Pourquoi une boucle ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Programme Ville
      ville[1..100]: chaine
      nbvilles: entier // contient le nombre de cases effectivement remplies dans 
       ville 
       distance [1..100,1..100]: entier // contient les distances entre les villes
    Debut
         Afficher "entrer ville1:"
         saisir ville1
           afficher "entrer ville2:"
           saisir ville2
          Si ville1 ou ville2 n'est pas dans tableau_des_distances, alors erreur
          return tableau_des_distances[min(ville1, ville2)][max(ville1, ville2)]
    Ne faudrait-il pas rechercher l'index de ville1 et ville2 (qui sont des chaines de caractère) dans le tableau villes ?
    -- Yankel Scialom

  8. #8
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Oui désolé, je pensais aux index, je viens de le corriger.

  9. #9
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    C'est plus au PO qu'à toi que je faisais la remarque. On va pas tout faire non plus
    Alors omzoway, que proposes-tu ?
    -- Yankel Scialom

  10. #10
    omzoway
    Invité(e)
    Par défaut
    lool honneur aux dames, alors je vais essayer , comme notre objectif est d'afficher la distance entre antibes et nice si je mettais:
    si la ville 1 et ville 2 existe dans nbvilles
    pour ville1 de 1 à 100 afficher ville 1 puis saisie de ville 1 ,
    ensuite pour ville2 de 1 à 100 aussi affichage et saisie de ville 2
    puis saisie " de la distance entre" ville1 "et" ville2 "= 20 km"
    sinon
    affichez "erreur ville non existante"
    ???
    Ps: l'algorithme cest vraiment chiant, il ne devrait y avoir que des trucs cool genre VB, Vbnet, my sql, mcd merise...^^

  11. #11
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Plutot que d'essayer de pondre l'algo directement, je te propose de m'expliquer comment tu ferais pour faire le travail que tu va demander à ton programme. Imaginons le cas suivant :

    Matrice de distance :
        1    2    3    4  
       -------------------
    1 | 0   23   12    5  
    2 | -    0    2   40  
    3 | -    -    0   51  
    4 | -    -    -    0  
    
    Liste de villes :
    1       2        3         4
    Paris   Nantes   Bordeaux  Marseille
    

    Disons qu'aux deux premières questions que tu va me poser, je te réponde «Marseille » puis « Nantes ». Alors, raconte nous tout !
    -- Yankel Scialom

  12. #12
    omzoway
    Invité(e)
    Par défaut
    Citation Envoyé par prgasp77 Voir le message
    Plutot que d'essayer de pondre l'algo directement, je te propose de m'expliquer comment tu ferais pour faire le travail que tu va demander à ton programme. Imaginons le cas suivant :

    Matrice de distance :
        1    2    3    4  
       -------------------
    1 | 0   23   12    5  
    2 | -    0    2   40  
    3 | -    -    0   51  
    4 | -    -    -    0  
    
    Liste de villes :
    1       2        3         4
    Paris   Nantes   Bordeaux  Marseille
    

    Disons qu'aux deux premières questions que tu va me poser, je te réponde «Marseille » puis « Nantes ». Alors, raconte nous tout !
    intéréssant alors en principe on devrait chercher si marseille et nantes existe vraiment dans la matrice triangulaire et si tel est le cas alors ça nous affiche la distance entre les 2 par ex ici si marseille est en colonne on devrait avoir 40 pour la distance entre ces 2 villses sinon à linverse si marseille est en ligne cest le message derreur qui safficherait puisque la distance ne serait pas saisie?

  13. #13
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Non, je ne te demande pas ce qu'il se passerait, mais comment tu ferais pour répondre *toi* au problème. Comment sais-tu que c'est la colonne 4 qu'il faut consulter ? Et présente moi ça comme une liste d'action.

    Exemple pour expliquer comment mettre le JT d'arte :
    1/ je prends la télécommande
    2/ je cherche le bouton "on" sur la télécommande
    3/ si je le trouve, j'appuie dessus
    4/ je cherche le bouton "5" sur la télécommande
    5/ si je le trouve, j'appuie dessus
    6/ fini \o/

    On traitera les cas critiques (ex: erreurs) plus tard.
    -- Yankel Scialom

  14. #14
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 386
    Points : 3 531
    Points
    3 531
    Billets dans le blog
    1
    Par défaut
    Désoler de venir foutre le bordel

    Pourquoi la matrice est "triangulaire", je dirais pluôt "symétrique", les cases marqué "-" ont bien une réalité.. la distance "Brest - Paris" est la même que "Paris - Brest", pourquoi occulter une des distances ?

    --- 1 2 3 4
    1 | 0 23 12 5
    2 | 23 0 2 40
    3 | 12 2 0 51
    4 | 5 40 51 0

    Ce tableau me semble tout à fait valide..
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  15. #15
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    C'est un simple exercice Ça corse la difficulté, je pense.
    -- Yankel Scialom

  16. #16
    omzoway
    Invité(e)
    Par défaut
    [HS] lool on croirait entendre mon prof elle dit que jai lesprit trop synthetique parfosi avec les algo et qu'on est pas en mathématiques [Fin HS]
    alors alors hummm ok
    disons que je decide de rajouter k en declaration en tant que variable:
    (pour k de 1 à 100
    afficher "entrer la ville1 n°", K, "="
    saisir ville1[k]
    afficher "entrer la ville2 n°", k, "="
    saisir ville2[k]
    si ville1[k]=nbvilles[k] et ville2[k]=nbvilles[k] alors
    afficher "la distance entre ces 2 villes est:"
    saisir distance
    sinon
    return distance)

  17. #17
    omzoway
    Invité(e)
    Par défaut
    Citation Envoyé par Golgotha Voir le message
    Désoler de venir foutre le bordel

    Pourquoi la matrice est "triangulaire", je dirais pluôt "symétrique", les cases marqué "-" ont bien une réalité.. la distance "Brest - Paris" est la même que "Paris - Brest", pourquoi occulter une des distances ?

    --- 1 2 3 4
    1 | 0 23 12 5
    2 | 23 0 2 40
    3 | 12 2 0 51
    4 | 5 40 51 0

    Ce tableau me semble tout à fait valide..
    oulààà je comprends pas mais ce que tu dis m'interesse explique plus en detail sil te plait ^^

  18. #18
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 386
    Points : 3 531
    Points
    3 531
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par omzoway Voir le message
    oulààà je comprends pas mais ce que tu dis m'interesse explique plus en detail sil te plait ^^
    heuuu, oublie ce que j'ai dit ça va encore plus t’embrouiller..

    je peux donner la réponse moi
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  19. #19
    omzoway
    Invité(e)
    Par défaut
    je suis fatigué cest le seul exo qui me reste jai fait tout ce qui est sql trace et mcd , mais dabord le tableau que tu as crée tu veux dire quil vaut pareil que la matrice initiale et pourquoi? oubien tu las sorti juste comme ça, sinon sil vous plait veuillez abreger mes souffrances, pikachu na meme pas encore mangé XD par contre jaimerais bien des explications détaillées aussi

  20. #20
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Trop compliqué encore. Ais l'obligeance d'oublier tout ce que tu as appris en cours d'algorithmie pour quelques instants. Réponds moi comme si j'étais un imbécile fini (vas-y franchement, je ne t'en voudrait pas).

    Étant donné les deux éléments (Matrice de distance et liste de ville) donnés dans mon message #11, comment en déduits-tu que la distance entre Marseille et Nantes est de 40 km ?
    -- Yankel Scialom

Discussions similaires

  1. Exercice sur les tableaux
    Par haha1 dans le forum Pascal
    Réponses: 5
    Dernier message: 27/12/2008, 20h13
  2. Exercice sur les tableaux
    Par sayari7 dans le forum Pascal
    Réponses: 2
    Dernier message: 06/12/2008, 15h23
  3. aide pour un exercice sur les tableaux
    Par mimiif dans le forum Caml
    Réponses: 9
    Dernier message: 30/05/2008, 15h49
  4. Réponses: 11
    Dernier message: 04/02/2008, 20h37
  5. Exercice sur les tableaux
    Par IDE dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 06/11/2006, 19h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo