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

avec Java Discussion :

Test de lancer de pièce


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Test de lancer de pièce
    Bonjour,

    J'ai écrit un petit programme qui est sensé testé l'évolution de mon "capital" en fonction du résultat d'un lancer de pièce.

    Le lancer est caractérisé par un test de capital : "si il est multiple de 3"
    --> un type de probabilité
    else --> un autre

    Je stocke les données dans un tableau pour les renvoyer par après.
    Mais lorsque je veux tester ma classe (en vérifiant ma sortie à la console avec des System.out.println)

    J'ai d'abord mon résultat face/pile (ce qui semble correcte) mais ensuite j'ai deux incrémentations ou "desincrémentations" au lieu d'une.

    Je ne trouve pas le problème dans mon code...

    Quelqu'un aurait-il la sagesse d'y jeter un oeil ?



    Voici mon code pour la classe :
    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
     
    public class Testd {
     
        public Testd(String m){
            int []stockage =new int[100];
            int a = Integer.parseInt(m);
            for(int i = 0; i < 100; i++) {
     
            if (a%3==0)
                    {double pe=0.095;
                    double x = Math.random();
                    if (x<=pe)
                    {System.out.println("face");
                    int b = ++a;
                    System.out.println(b);
                    stockage[i]=++a;
                    a=stockage[i];}
     
                    else
                    {System.out.println("pile");
                    int b = --a;
                    System.out.println(b);
                    stockage[i]=--a;
                    a=stockage[i];}
                }
            else{
                double pe=0.745;
                double x = Math.random();
                if (x <=pe)
                {System.out.println("face");
                int b = ++a;
                System.out.println(b);
                stockage[i]=++a;
                a=stockage[i];}
     
                else
                {System.out.println("pile");
                int b = --a;
                System.out.println(b);
                stockage[i]=--a;
                a=stockage[i];}
            }
            System.out.println(stockage[i]);
                }
     
            }
    }
    Et pour la classe qui me sert de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    import java.util.Scanner;
     
    public class TestpourD {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("Veuillez donner votre fond :");
            String m1 = sc.nextLine();
            Testd lancer = new Testd(m1);
     
     
        }
     
    }
    En remerciant l'âme charitable !

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Elle sert a quoi ta variable b dans ton code la si ce n'est l'affichage et surtout tu preincrementes A deux fois est-ce voulu ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int b = ++a;
    System.out.println(b);
    stockage[i]=++a;
    a=stockage[i];
    Franchement je comprends rien a ton code (ce qu'il est censé faire malgré que j'ai lu ton explication mais ...

    pourquoi preincrementes tu la variable A deux fois ? ce n'est pas ca ton probleme ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Mea culpa...

    J'ai retiré cette partie du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int b = ++a;
    System.out.println(b);
    afin de ne conserver que cette incrémentation-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    stockage[i]=++a;
    a=stockage[i];
    En fait je me sers de la variable a comme "temporaire" pour mon capital.
    A chaque lancer, j'augmente ou diminue ce dernier de 1 euro en fonction du résultat de mon lancer. (qui est caractérisé par des probabilités)

    Je stocke donc l'évolution de mon capital dans un tableau à 100 entrées.

    L'incrémentation et la récursivité de ma fonction (j'entends par là, le stockage et le rappel de fonction dans la boucle) sont-ils correctes à tes yeux ?

    Ou dois je changer mon ++a en a++ si je veux renvoyer le tableau final (en modifiant bien sur ma classe en type return)
    ?

    Merci

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Je ne saurai pas te dire si ton truc est correcte pour etre honnete.

    Par contre,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    stockage[i]=++a;
    a=stockage[i];
    est assez tarabiscoté a mon gout Je ne comprends pas tres bien.

    Mais pour ta réponse entre a++ et ++a il faut que tu regarde la difference entre post et pre incremenation de variables pour que tu puisses te répondre.

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/05/2011, 11h38
  2. Réponses: 7
    Dernier message: 09/10/2007, 15h26
  3. [maven 2 - Abbot] Lancer un test Abbot depuis mon pom. . .
    Par Lynk HIROSUE dans le forum Maven
    Réponses: 5
    Dernier message: 11/08/2006, 14h07
  4. lancer un test avec un fichier .bat
    Par marc olivier dans le forum API standards et tierces
    Réponses: 14
    Dernier message: 28/04/2006, 10h33
  5. Lancer des tests / simulation
    Par say dans le forum C++Builder
    Réponses: 29
    Dernier message: 30/06/2005, 09h41

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