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

 C++ Discussion :

Résultat d'un programme aléatoire


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Février 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Février 2018
    Messages : 119
    Points : 63
    Points
    63
    Par défaut Résultat d'un programme aléatoire
    Bonsoir à tous,
    Je me retrouve confronté au problème suivant ; au lancement du programme j'obtiens ce que je veux une fois sur 3 (une position). Dans les autres cas, j'obtiens un nombre quelconque (plutôt élevé)...

    Je ne comprends pas ce comportement. Avez vous une piste ? Merci par avance.

    Ci-dessous un bout du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            T1.SetPosition(T1.GetPosition()+DeltaT*320*1000/3600);
            std::cout << T1.GetPosition() << std::endl;

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Généralement, si tu as des résultats "aléatoires" non voulus, c'est que ton code contient une erreur (assez souvent, utilisation de mémoire non initialisée, ou de mémoire déjà libérée). Mais le micro-extrait que tu donnes ne permet pas du tout de savoir où. Sachant que l'endroit où l'erreur a eu lieu peut être assez éloignée de l'endroit où elle se manifeste.


    Il faudrait si tu veux plus d'aide fournir un exemple réduit mais complet permettant de reproduire la situation...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Février 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Février 2018
    Messages : 119
    Points : 63
    Points
    63
    Par défaut
    Salut,

    Ok voici le code en entier

    main.cpp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    #include <iostream>
    #include "t.h"
     
    int main()
    {
     
        // blocks
     
        int T_block[20][3];
     
        for (int i=0; i<20; i++)
        {
             for (int j=0; j<3; j++)
             {
                   if (j==1)
                   {T_block[i][j] = i+1;
                   }
                   else if (j==2)
                   {T_block[i][j] = i*1500;
                   }
                   else if (j==3)
                   {T_block[i][j] = 0;
                   }
             }
         }
     
     
        // T
        int DeltaT=1;
     
     
        T T1;
     
        for (int i=0; i<1000; i++)
        {
            T1.SetPosition(T1.GetPosition()+DeltaT*320*1000/3600);
     
            std::cout << T1.GetPosition() << std::endl;
     
        }
     
     
     
    }


    T.cpp


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <iostream>
    #include "t.h"
     
     
    T::T(){}
     
    int const T::GetPosition(){return m_Position_T;}
    void T::SetPosition(int pos){m_Position_T=pos;}

    t.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #ifndef Tt
    #define Tt
     
     
    class T
    {
        public:
        T();
     
        //Accesseur
        int const GetPosition();
        //Mutateur
        void SetPosition(int pos);
     
        private:
        int m_Position_T;
        int m_Longueur_T;
        int m_Ordre_T;
     
     
    };
     
     
    #endif // Tt

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    C'est bien ce que je pensais. Ton GetPosition retourne un truc non initialisé.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Février 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Février 2018
    Messages : 119
    Points : 63
    Points
    63
    Par défaut
    Salut,

    Je te remercie. Cela marche parfaitement dorénavant !

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

Discussions similaires

  1. Demande résultat d'un programme
    Par cupidcb dans le forum Débuter
    Réponses: 5
    Dernier message: 06/01/2012, 18h46
  2. Problème de résultat sur un programme en Pascal
    Par Poseidon62 dans le forum Langage
    Réponses: 1
    Dernier message: 28/03/2009, 20h13
  3. rediriger les résultats d'un programme dans un fichier avec format spécifié
    Par condor_01 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 27/11/2007, 20h55
  4. Récupérer le résultat d'un programme Java
    Par phpiste dans le forum Langage
    Réponses: 5
    Dernier message: 23/07/2007, 13h17
  5. Réponses: 14
    Dernier message: 27/10/2006, 13h08

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