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++Builder Discussion :

Probleme avec random!


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 21
    Points
    21
    Par défaut Probleme avec random!
    salut à vous ,

    j'utilise la fonction random en C++ , le probleme c'est qu'elle prend tjr la partie entière du chiffre je en sais pas pourquoi !! voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double x=random(3.805);
    quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ShowMessage("Résultat : "+FloatToStr(x));
    ça affiche que 0 ou 1 ou 2 sans les chiffres aprés la virgule

    si il ya une fonction qui permet de regler mon pb F1 svp!! Merci

  2. #2
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Salut,
    si tu regarde l'aide tu verra que ce comportement est normal

    Citation Envoyé par Aide de BCB
    Prototype

    int random(int num);

    Description

    Random number generator.

    random returns a random number between 0 and (num-1). random(num) is a macro defined in stdlib.h. Both num and the random number returned are integers.

    Return Value

    random returns a number between 0 and (num-1).
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    Dsl mais j'ai pas l'aide sous vista , sinon ya-t-il une fonction pour avoir des chiffres réels aléatoires (avec la virgule)??

  4. #4
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Je ne pense pas, mais si tu veut un nombre précis de chiffre après la virgule, tu peut faire en demandant l'équivalent dans les millier puis diviser, ex:
    pour 3 chiffre après la virgule tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double x=random(1000);
    x = x / 1000;
    3 chiffre après la virgule en allant de 0 à 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double x=random(3000);
    x = x / 1000;
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    thank you so much Mr pottiez

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    il ya une solution pour les valeurs négatives?? genre random qui renvois des valeurs positives ou négatives , random qui prend en considération les signes ?

  7. #7
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Bonsoir,
    non pas directement, mais avec l'astuce que je t'ai montré c'est possible
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par pottiez Voir le message
    Bonsoir,
    non pas directement, mais avec l'astuce que je t'ai montré c'est possible
    Comment?? dsl mais je suis nouvelle , je m'y connais pas du tout en Builder , j'apprends!!

  9. #9
    Membre confirmé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Points : 523
    Points
    523
    Par défaut
    Si vous prenez un nombre au hasard entre 0 et 1000, il suffit de diviser par mille pour obtenir un chiffre entre 0 et 1 avec 4 chiffres après la virgule. Si vous retranchez 500 avant de diviser le nombre, vous obtenez un chiffre entre -0,5 et 0,5.

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    oui je sais ou bien multiplier le résultat par (-1) , mais moi je veux des chiffres aléatoires car c dans une boucle random (x) , je veux le résultat parfois positif parfois négatif...

  11. #11
    Membre confirmé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Points : 523
    Points
    523
    Par défaut
    C'est exactement ce que fais cet algo. Vous pouvez même choisir le pourcentage de change qu'il soit négatif en jouant sur le chiffre à retrancher.

  12. #12
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par gandf Voir le message
    C'est exactement ce que fais cet algo. Vous pouvez même choisir le pourcentage de change qu'il soit négatif en jouant sur le chiffre à retrancher.
    pas compris dsl , un exemple ne serait pas de refus SVP!!

  13. #13
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello,

    Histoire d'avancer, ce que tu cherches, c'est pas un truc de ce genre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    double precision = 0.001;
    int borneMin = -5;
    int borneMax = 5;
    double x = random((borneMax - borneMin) / precision);   // Une valeur entre 0 et 10000
    x = x * precision;      // Valeur entre 0 et 10
    x = x + borneMin;       // Valeur replacée entre -5 et +5
    Je n'ai fait que retranscrire et adapter très légèrement ce qu'expliquait très bien gandf:
    Si vous prenez un nombre au hasard entre 0 et 1000, il suffit de diviser par mille pour obtenir un chiffre entre 0 et 1 avec 4 chiffres après la virgule. Si vous retranchez 500 avant de diviser le nombre, vous obtenez un chiffre entre -0,5 et 0,5.

  14. #14
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Points : 21
    Points
    21
    Par défaut
    merciiiiiiiiiiiiiiiiiii

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

Discussions similaires

  1. Probleme avec 2 random à la suite !
    Par djskynet dans le forum C
    Réponses: 3
    Dernier message: 03/01/2008, 21h42
  2. probleme avec random boolean
    Par petitenovice dans le forum Langage
    Réponses: 2
    Dernier message: 11/12/2006, 09h39
  3. probleme avec la fonction random
    Par kaiko dans le forum C
    Réponses: 16
    Dernier message: 08/12/2006, 15h07
  4. probleme avec le random
    Par Pouyou le caribou dans le forum C++
    Réponses: 10
    Dernier message: 09/06/2005, 20h03
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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