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

Java Discussion :

Course de grenouille


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Course de grenouille
    Bonjour,

    Je me permet de venir vers vous car je ne comprend pas le problème que peut rencontrer mon code.


    Il existe de nombreuses traditions étranges et amusantes sur Algoréa, la grande course de grenouilles annuelle en fait partie. Il faut savoir que les grenouilles algoréennes sont beaucoup plus intelligentes que les grenouilles terrestres et peuvent très bien être dressées pour participer à des courses. Chaque candidat a ainsi entraîné sa grenouille durement toute l'année pour ce grand événement.

    La course se déroule en tours et, à chaque tour, une question est posée aux dresseurs. Le premier qui trouve la réponse gagne le droit d'ordonner à sa grenouille de faire un bond. Dans les règles de la course de grenouilles algoréennes, il est stipulé que c'est la grenouille qui restera le plus longtemps en tête qui remportera la victoire. Comme cette propriété est un peu difficile à vérifier, le jury demande votre aide.
    Ce que doit faire votre programme :

    nbGrenouilles numérotées de 1 à nbGrenouilles sont placées sur une ligne de départ. À chaque tour, on vous indique le numéro de la seule grenouille qui va sauter lors de ce tour, et la distance qu'elle va parcourir en direction de la ligne d'arrivée.

    Écrivez un programme qui détermine laquelle des grenouilles a été strictement en tête de la course au début du plus grand nombre de tours. Notez que comme on s'intéresse à qui est en tête au début de chaque tour, le bond du dernier tour ne sert à rien car même si la grenouille concernée passe en tête, la course est finie (il est purement honorifique selon la tradition algoréenne).
    Limites de temps et de mémoire (Python)

    Temps : 1 s sur une machine à 1 GHz.
    Mémoire : 16 000 ko.

    Contraintes

    1 <= nbGrenouilles <= 100
    1 <= nbTours <= 1000
    1 <= distanceSauti <= 100

    Entrée

    La première ligne de l'entrée contient un entier, le nombre de grenouilles nbGrenouilles qui participent à la course. Les grenouilles sont numérotées de 1 à nbGrenouilles.

    La deuxième ligne de l'entrée contient le nombre de tours nbTours de la course.

    Chacune des nbTours lignes suivantes décrit un tour par deux entiers séparés par un espace. Le premier entier est le numéro de la grenouille qui saute à ce tour, et le deuxième, est la distance parcourue par la grenouille lors de ce saut.
    Sortie

    Vous devez afficher un entier sur la sortie : le numéro de la grenouille qui a été strictement en tête au début du plus grand nombre de tours. En cas d'égalité entre plusieurs grenouilles, choisissez celle dont le numéro est le plus petit.
    Exemple

    entrée :

    4
    6
    2 2
    1 2
    3 3
    4 1
    2 2
    3 1

    sortie :

    2

    Commentaires

    Pour l'exemple proposé, indiquons la distance totale parcourue par chaque grenouille au début de chaque tour :

    Grenouille : 1 2 3 4
    Tour 1 : 0 0 0 0
    Tour 2 : 0 2 0 0
    Tour 3 : 2 2 0 0
    Tour 4 : 2 2 3 0
    Tour 5 : 2 2 3 1
    Tour 6 : 2 4 3 1

    La grenouille 1 est restée 0 tour strictement en tête, la seconde 2 (les tours 2 et 6), la troisième 2 (les tours 4 et 5) et la quatrième 0. C'est donc la grenouille 2 qui remporte la victoire.
    Vous devez être connecté pour résoudre cet exercice.

    Je réussi le test à 85% mais je ne comprend pas pourquoi il y a 3 tests qui ne passent pas.

    J'aimerai juste avoir de l'aide pour comprendre le défaut de mon code et je le supprimerai par la suite pour éviter de spoiler le problème.

    Merci,

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Quelques remarques concernant la clareté.
    ValeurMax et Indice sont toujours à 0 lors de l'appel de la méthode (tu ne les changes jamais dans le main), pourquoi garder ces paramètres, le tableau est suffisant pour savoir qui est en tête.
    Remarque de logique: tu cherche la grenouille en tête mais tu oublie le cas où il y a deux grenouille à la même distance => a gérer pour indiquer que personne n'est strictement en tête (cf l'exemple en bas de ton lien)

    Pareil au niveau du gagnant, que faire en cas d'égalité?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    D'accord, je comprend pour les variables "ValeurMax" et "indice".
    En effet, je n'ai pas besoin de les déclarer comme des variables générales.

    Par contre, quand tu dis que je ne gère pas les égalités, c'est "faux" (du moins pour moi car je débute).
    Si jamais dans mon tableau, deux ou plusieurs grenouilles parcours la même distance, alors je ne renvoi rien.
    De ce fait, mon tableau tabPoints ne prend pas en compte cette configuration et ne donne donc aucun point a aucune des grenouilles.

    Lors de la lecture de mon tableau, je parcours mon tableau et une fois que je suis arrivé a bout (ou au début dans mon cas), je garde la valeur la plus haute pour la position la plus petite.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Je comprend mon erreur.
    J'essaye de corriger...

    Merci.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    J'ai trouvé la solution.
    Il me suffisait juste, en effet, de gérer l'égalité.

    Merci pour le coups de pouce et comme promis, j'ai supprimé mon code

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    C'est con, c'est assez mal vu sur le forum de saboter les thread en modifiant à postériori les messages. Ca empêche ceux qui ont des problèmes similaires de comprendre de quoi on parle.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Désolé, je ne savais pas. C'était pour éviter de donner des solutions bêtement car je pense que ça n'aide pas la personne à réfléchir que de lui donner le résultat tout cuit. Pour moi, on apprend pas comme ça. Mais je retiens la leçon, je ne le ferais plus. Merci en tout cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Course de grenouilles
    Par AnnaConda dans le forum C
    Réponses: 6
    Dernier message: 25/08/2013, 16h35
  2. Réponses: 1
    Dernier message: 21/11/2005, 18h22
  3. [FLASH MX2004] Course de bateaux
    Par Kalyptus dans le forum Flash
    Réponses: 9
    Dernier message: 31/05/2005, 19h26
  4. Réponses: 2
    Dernier message: 15/02/2005, 20h32

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