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 :

[C++] Compilation=OK Mais PAS d'ex�cution


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    Chef de produit
    Inscrit en
    Mai 2006
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : Chef de produit

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Par d�faut [C++] Compilation=OK Mais PAS d'ex�cution
    Bonjour � tous,

    j'explique comment mon programme fonctionne:
    j'ai 2 fichiers textes; le premier fichier contient des chaines sous la forme "30;4"
    30 c'est une valeur et 4 c'est un intervalle [-4,4].
    donc je r�cup�re cette chaine je l'a convertie en r�el, jusqu'� l� �a marche

    j'utilise une fonction de la librairie boost (fonction triangulaire), donc j'essaye de mettre les valeur VN min max comme param�tre dans cette fonction.
    r�sultat �a compile et mais � l'ex�cution �a coince au niveau de cette partie TriangleRandomGenerator gen(min, VN, max);

    Merci d'avance de votre aide..

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    #include <fstream>
    #include <boost/random/triangle_distribution.hpp>
    #include <boost/random/variate_generator.hpp>
    #include <boost/random/mersenne_twister.hpp>
    #include <ctime>
    #include <sstream>
    #include <string>
    #include <iostream>
    /*
     * Une classe pour encapsuler les éléments de Boost.Random.
     * Elle-même un foncteur.
     */
    class TriangleRandomGenerator
    {
    public:
        // Le constructeur prend les trois valeurs dont tu parles: a (borne basse),
        // c (borne haute) et b (valeur la plus probable).
        TriangleRandomGenerator(double a, double b, double c);
     
        // Ici on fabrique un foncteur, mais on pourrait aussi bien avoir une méthode
        // comme "double next_number();" qui ferait le même effet
        double operator()();
     
    private:
        boost::mt19937 engine;
        boost::triangle_distribution<double> generator;
        boost::variate_generator<boost::mt19937& ,boost::triangle_distribution<double> > binded;
    };
     
    TriangleRandomGenerator::TriangleRandomGenerator(double a, double b, double c):
    engine(static_cast<long unsigned int>(time(0)))
    , generator(a, b, c)
    , binded(engine, generator)
    {
    }
     
    double TriangleRandomGenerator::operator()()
    {
        return binded();
    }
     
     
    int main()
    {
        double VN, max, min;
     
        //récupération de la valeur nominale du fichier texte "valeur.txt"
        std::ifstream fichier( "valeur.txt" );
        // variable contenant chaque ligne lue
        std::string ligne;
     
        while (std::getline( fichier, ligne ) )
        {
     
            std::string string1 = ligne;
            std::string string2;
            string2 = string1.substr(0, string1.find(';'));
            string1 = string1.substr(string1.find(';')+1);
            //conversion des chaines
            std::istringstream iss( string2 );
            iss >> VN;
            std::istringstream iss1( string1 );
            iss1 >> max;
            //intervalle [min,max]
            min=max*(-1);
            //affichage
            std :: cout << VN << std::endl;
            std :: cout << max << std::endl;
            std :: cout << min << std::endl;
     
     
     
            TriangleRandomGenerator gen(min, VN, max);
            std::ofstream file("fichier.txt", std::ios_base::app);
            for (int i = 0; i < 10; ++i)
                {
                    file << gen() << "\n";
                }
            file.flush();
     
        }
     
    }

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    92
    D�tails du profil
    Informations personnelles :
    �ge : 52
    Localisation : France, C�te d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2005
    Messages : 92
    Par d�faut
    Quel est ton probl�me? Qu'est-ce qui coince exactement?

    Les seuls points que je vois qu'il faudrait am�liorer dans le code:
    • il vaudrait mieux cr�er le flux de sortie (file) une seule fois en dehors de la boucle plut�t que de le recr�er � chaque ligne lue dans "valeur.txt";
    • comme tu cr�es plusieurs g�n�rateurs en moins d'une seconde, et que time renvoie la m�me valeur pendant cette seconde, la s�quence des valeurs al�atoire risque d'�tre la m�me. Dans ce cas, il vaut mieux baser l'initialisation sur clock que sur time, ou utiliser un m�lange de deux.

  3. #3
    Membre confirm�
    Homme Profil pro
    Chef de produit
    Inscrit en
    Mai 2006
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : Chef de produit

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Par d�faut
    Merci pour tes r�ponses,

    pour le flux de sortie c'est bon.
    pour remplacement de clock par time je vais voir apr�s.

    sinon voila le message d'erreur:

    30
    4
    -4
    Assertion failed: _a <= _b && _b <= _c, file C:/Program Files/CodeBlocks/include
    /boost/random/triangle_distribution.hpp, line 39

    This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application's support team for more information.

  4. #4
    Membre �prouv�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    92
    D�tails du profil
    Informations personnelles :
    �ge : 52
    Localisation : France, C�te d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2005
    Messages : 92
    Par d�faut
    Tu n'aurais pas tout simplement, dans ton fichier "valeur.txt", un couple de valeurs telles que VN n'est plus entre min et max? C'est ce que sugg�re ton message d'erreur (une v�rification interne faite par Boost.Random sous la forme d'une assertion).

  5. #5
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    2 155
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 155
    Par d�faut
    le message d'erreur t'indique clairement l'assertion qui a �chou�e, il suffit d'aller y jeter un coup d'oeil !

  6. #6
    Membre confirm�
    Homme Profil pro
    Chef de produit
    Inscrit en
    Mai 2006
    Messages
    164
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : Chef de produit

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Par d�faut
    Merci �a marche
    j'ai m�me pas fait attention � ce truc

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Execution apr�s l'affichage, mais pas d'ex�cution directe
    Par vieux60ans dans le forum G�n�ral Python
    R�ponses: 3
    Dernier message: 07/02/2013, 21h21
  2. R�ponses: 1
    Dernier message: 15/10/2010, 18h29
  3. [NetBSD] compiler src mais pas tout
    Par gwenhael dans le forum BSD
    R�ponses: 13
    Dernier message: 12/03/2008, 18h31
  4. R�ponses: 29
    Dernier message: 26/07/2007, 15h24
  5. R�ponses: 4
    Dernier message: 08/01/2006, 18h26

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