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

Discussion :

Fonctionnement aléatoire de mon projet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Fonctionnement aléatoire de mon projet
    Bonjour à toutes et tous .

    Je ne sais pas si cela est dans l'optique du "forum" .
    Mon projet compile , mais les fonctions s'exécute de façon aléatoire , et je ne comprends pas pourquoi ? .
    Il fonctionnait , mais j'ai voulu retirer un bug , il écrivait plusieurs lignes à la fois . Maintenant , une fois il fonctionne , une autre fois non .

    Je vous poste une archive .

    D'avance merci .
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Par défaut
    J'ai essayé de lancer ton programme mais je n'ai pas pu. J'ai un message d'erreur que je n'ai pas pris le temps de lire .

    Pourrais-tu essayer d'expliquer le fonctionnement aléatoire et d'isoler le code qui pose problème (avec le mode débogage de qt ou du pas à pas) et poster le bout de code responsable?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Fonctionnement aléatoire de mon projet .
    Bonsoir à toutes et tous .

    @Arch74 . Merci .
    Si tu as une version Qt différente de la mienne , pour compiler mon projet tu doit mettre à la poupelle heu poubelle le dossier : 1004.pro.user . Qt en recréera un nouveau .

    J'ai essayé les solutions que tu me préconise , hélas , pas de message d'erreur .
    Je nage complètement .

    Cordialement .

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Pas un dossier, un fichier

    J'ai compilé, exécuté, voulu "ajouter une équipe", et ça a planté. T'as un outil indispensable qui s'appelle "débugueur", et qui te permet de voir tout ce qu'il se passe. Apparemment, le programme faisait
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void Classe::changeNom(int position, QString n_nom) {
        classe[position]->setNom(n_nom);
    }
    alors qu'aucun objet n'était créé à cette position.

    J'ai essayé le reste, les menus ne fonctionnent pas (à part Fichier -> Nouveau/Quitter), Ajouter une partie rajoute bien une colonne.

    Bon courage.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Fonctionnement aléatoire de mon projet .
    Bonsoir à toutes et tous .

    J'ai re-modifié mon projet , Merci à vous .

    Troudhyl
    J'ai compilé, exécuté, voulu "ajouter une équipe", et ça a planté.
    Le bug persiste et je ne pige pas ce qu'il y a .

    Cordialement.

  6. #6
    Membre expérimenté Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Par défaut
    Dans la méthode chargerTableDansModele() de ta classe Fenetre tu as dû faire une erreur d'inattention. Dans ta deuxième boucle tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            for(int j = 0; i < info.size(); i++) {
                modele->setItem(i, j, new QStandardItem(info.at(j)));
    au lieu de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            for(int j = 0; j < info.size(); j++) {
                modele->setItem(i, j, new QStandardItem(info.at(j)));
    Tu crée deux lignes pour le même "joueur", ce qui provoque ton erreur lors de l'appel à la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    groupe.changeNom(objet->row(), nom);

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Fonctionnement aléatoire de mon projet .
    Bonjour à toutes et tous .

    benito9253
    Tu crée deux lignes pour le même "joueur", ce qui provoque ton erreur lors de l'appel à la méthode:
    Merci . Je cherche depuis plusieurs jours . J'ai tout retapé pour essayer de trouver l'erreur ..

    Oui mais d'autres erreurs apparaissent .. aie , aie .

    Merci encore .

    Cordialement.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Fonctionnement aléatoire de mon projet .
    Bonjour à toutes et tous .

    @benito9253 Merci pour ton aide .

    Je ne trouve pas pourquoi les résultats , s'inversent...? (la colonne total marque et 1, 2, 3 et n'additionne rien ...) .

    Je re-poste l'archive avec les changements .

    Cordialement.
    Fichiers attachés Fichiers attachés

  9. #9
    Membre expérimenté Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Par défaut
    Lorsque tu utilises la méthode qSort() tu dois lui fournir un moyen pour comparer deux "Joueurs". Il existe plusieurs méthodes pour cela. L'une d'entre elle consiste à passer comme troisième paramètre un pointeur vers une fonction se chargeant de la comparaison.

    Tu trouvera un exemple d'utilisation de qSort() dans la doc Qt ici:
    http://qt.developpez.com/doc/latest/...ithms/#qsort-2

    Étant donné que tu stockes tes joueurs sous forme de pointeur, la fonction serait plutôt du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bool caseInsensitiveLessThan(const Joueur* j1, const Joueur* j2)
    {
        return j1->getNom().toLower() < j2->getNom().toLower();
    }
    Par contre je ne suis pas sûr d'avoir bien compris ce que tu voulais dire par:
    Citation Envoyé par Go'Gaule Voir le message
    Je ne trouve pas pourquoi les résultats , s'inversent...? (la colonne total marque et 1, 2, 3 et n'additionne rien ...) .

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Fonctionnement aléatoire de mon projet .
    Bonsoir à toutes et tous .

    @benito encore Merci .

    benito9253
    Par contre je ne suis pas sûr d'avoir bien compris ce que tu voulais dire par:
    Si je créé plusieurs équipes et plusieurs parties , et inscrit des scores dans les cases , les scores ne s'additionnent pas et la colonne total marque le classement . Rien ne fonctionne .

    J'ai changé l'archive et rajouté "bool insensitiveLessThan(Joueur *s1, Joueur *s2)" . Avant le changement de la boucle for , si j' incluait ce code j'avais un message d'erreur . Le massage à disparu mais rien ne fonctionne ...

    Cordialement.

  11. #11
    Membre expérimenté Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Par défaut
    Il n'y avait nul besoin de modifier la fonction que je t'ai donné dans mon message précédent, elle fonctionne parfaitement. Surtout que la tienne ne risque pas de marcher. En effet tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bool insensitiveLessThan(const Joueur *s1, const Joueur *s2)  {
    	if(s1->getNom().toLower() == s2->getNom().toLower())
    		return s1->getNom().toLower() < s2->getNom().toLower();
    }
    Cela n'a pas de sens: si les deux chaîne sont identiques, les opérateurs "<" et ">" renverront toujours false. De plus lorsque les deux chaînes sont différentes (ce qui constitue la majorité des cas) ta fonction ne renvoie rien, ce qui rend le trie impossible.

    De plus dans la méthode trier() de ta classe "classe", tu n'as pas modifié l'appel à qSort(). Remplace la ligne qSort(classe.begin(), classe.end()); par qSort(classe.begin(), classe.end(), insensitiveLessThan); .

    En ce qui concerne les scores il ne vont pas s'additionner tout seul. Lorsque l'utilisateur change un item, tu récupères les scores qui t'intéressent, tu les convertit en entier (méthode toInt() de QString), tu les additionnent et tu affiche le résultat.
    A ce propos tu devras t'assurer que l'utilisateur entre bien des chiffres et rien d'autre.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Par défaut Fonctionnement aléatoire de mon projet .
    Bonjour à toutes et tous .

    @benito9253 . Merci pour ton aide .

    J'ai passé une partie de la nuit a digérer tes conseils et a tenter de les appliquer .

    benito9253
    Il n'y avait nul besoin de modifier la fonction que je t'ai donné dans mon message précédent, elle fonctionne parfaitement.
    Oui , mais elle ne fonctionnait pas et bloquait tout ... Maintenant elle 'passe' .
    Je mélange toujours arguments et paramètres , je me demande si un jour ..?

    Toujours pas de total et donc de classement ..
    Un bug gênant : Je créé plusieurs équipes , inscrit les scores . Si je rajoute une équipe tout s'efface , les scores ce remettent à zéro .???

    Cordialement.

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

Discussions similaires

  1. Du c dasn mon projet C++
    Par chronos dans le forum MFC
    Réponses: 7
    Dernier message: 07/02/2005, 14h49
  2. [FLASH MX] Incorporer un swf dans mon projet
    Par Toutouffe dans le forum Flash
    Réponses: 2
    Dernier message: 19/01/2005, 12h04
  3. [Système d'aide] Lier mon *.hlp à mon projet
    Par termerair dans le forum MFC
    Réponses: 2
    Dernier message: 18/01/2005, 13h39
  4. Choix d'un SGBDR pour mon projet: Interbase?
    Par super16 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 09/07/2004, 08h15
  5. Réponses: 5
    Dernier message: 05/06/2004, 13h12

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