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

Java Discussion :

Algorithme de calcul à moitié fonctionnel


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut Algorithme de calcul à moitié fonctionnel
    Bonjour, j'essaye de faire un calcul de moyenne selon ce qu'ajoute l'utilisateur.
    L'algorithme fonctionne bien si la variable "calculmoy" n'est pas vide et je n'arrive pas à comprendre pourquoi si elle est vide ça ne fonctionne pas
    Les deux variable qui sont utilisées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     private int nbNote =0;
     private double calculmoy=0;
    Et le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      private void addNoteDB(String name, String note){
     
            //Algorithme de calcul de la moyenne
            calculmoy = calculmoy*nbNote;
            //Incrémentation du nombre de notes
            nbNote++;
            double note2 = Double.parseDouble(note);
            calculmoy = calculmoy + note2;
            calculmoy = calculmoy / nbNote;
    }
    Après quelques essais en débug, la variable calculmoy reste à NaN tous le long de l'opération
    à la ligne "calculmoy = calculmoy + note2;" je ne vois pas pourquoi additionner calculmoy à un chiffre comme 4.5 donne NaN
    Des idées du pourquoi du comment ?

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Qu'est-ce que tu appelles une variable vide ? Une variable a une valeur, ou pas (pour variable locale non initialisée, mais dans ce cas là, en cas d'utilisation dans un calcul, le code ne compilerait pas, donc aucune chance que ça s'exécute). Si c'est un attribut, elle a toujours une valeur (initialisée, à 0d par exemple pour un type double).

    Quelle est la valeur de l'argument note ? Parce que 0+Double.NaN donne effectivement Double.NaN.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut
    Rebonjour,
    La valeur de mon attribut note est une valeur de 1 à 6 et peut avoir un chiffre après la virgule par exemple 4 ou 4.5 mais dans les des cas je me retrouve avec NaN à la fin de mon addition

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    On peut voir le code de la classe entière ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut
    Le voici
    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    package com.example.gomesan.p_gestionnote_ags_gpt;
     
    import android.annotation.SuppressLint;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.graphics.Color;
    import android.os.Build;
    import android.os.Bundle;
    import android.support.annotation.RequiresApi;
    import android.support.v7.app.AlertDialog;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.LinearLayout;
    import android.widget.TextView;
     
    import java.util.List;
     
    public class NoteActivity extends ParameterActivity {
     
        private ViewGroup layout;
        private TextView moyenne;
        private TextView txtOne;
        private TextView txtTwo;
        private DatabaseHelper db = new DatabaseHelper(this);
        private int nbNote =0;
        private double calculmoy=0;
        private int totalPond;
        private boolean isPond;
     
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            applyTheme();
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_note);
            //Initialisation du layout et d'un TextView
            layout = (ViewGroup) findViewById(R.id.content);
            moyenne = (TextView) findViewById(R.id.moyenne);
            //Récuperation des extras fournis dans l'activité précédente
            Bundle extras = getIntent().getExtras();
            String years = extras.getString("year");
            String branchName = extras.getString("branchName");
     
            //Pour chaque note
            List<MarkClass> markClassList = db.getAllMark(years,branchName);
            for (MarkClass c : markClassList) {
     
                //appel de la méthode displayNote
                displayNote(c.getMarName(), c.getMarNote(), c.getMarPourcent());
                //Si la pondération est pas null
                if(c.getMarPourcent() != null)
                {
                    //Algorithme de calcul de la moyenne
                    totalPond = totalPond + Integer.parseInt(c.getMarPourcent());
                    calculmoy = calculmoy + Double.parseDouble(c.getMarPourcent()) * Double.parseDouble(c.getMarNote());
                    //Variable pour dire que la branche est pondérée
                    isPond = true;
                }
                //Si il n'y a pas de pondération
                else {
                    //Algorithme de calcul de la moyenne
                    nbNote++;
                    calculmoy = calculmoy + Double.parseDouble(c.getMarNote());
                }
            }
            //Si la branche est pondérée
            if(isPond == true)
            {
                //Algorithme de calcul de la moyenne
                calculmoy = calculmoy / totalPond;
            }
            //Sinon
            else {
                //Algorithme de calcul de la moyenne
                calculmoy = calculmoy / nbNote;
            }
            //String contenant la moyenne
            String stringMoy = String.valueOf(calculmoy);
            //Si la moyenne est supérieur ou égale à 4
            if(calculmoy >= 4)
            {
                //Texte en vert
                moyenne.setTextColor(Color.parseColor("#4caf50"));
            }
            //Si la moyenne est plus petite que 4
            if(calculmoy < 4)
            {
                //Texte en rouge
                moyenne.setTextColor(Color.parseColor("#f44336"));
            }
            //Set le texte d'un textview avec la moyenne
            moyenne.setText(stringMoy);
     
     
        }
     
        @Override
        //Quand on clique sur les 3 ronds dans le coin supérieur droit
        public boolean onCreateOptionsMenu(Menu menu) {
            //Affiche le menu des notes
            getMenuInflater().inflate(R.menu.note_menu, menu);
            return true;
        }
     
        @Override
        //Quand on choisit une des options dans le menu
        public boolean onOptionsItemSelected(MenuItem item) {
            //Récuperation des extras fournis dans l'activité précédente
            Bundle extras = getIntent().getExtras();
            final String branchName = extras.getString("branchName");
            final String years = extras.getString("year");
            switch (item.getItemId()) {
                //Si c'est le bouton d'option
                case R.id.menu_option:
                    //Crée une activité option et la démarre
                    Intent intent = new Intent(this, ParameterActivity.class);
                    this.startActivity(intent);
                    return true;
                //Si c'est le bouton d'ajout de note
                case R.id.menu_note:
                    //Crée le dialogue pour ajouter une note
                    onCreateDialog();
                    return true;
                //Si c'est le bouton d'ajout de note pondérée
                case R.id.menu_notePond:
                    //Crée le dialogue pour ajouter une note pondérée
                    onCreateDialogPond();
                    return true;
                //Si c'est le bouton de suppression de la branche
                case R.id.menu_erase:
                    alertDialogBranch(years, branchName);
                    return true;
                case R.id.menu_eraseMark:
                    alertDialogMark(years, branchName);
                    return true;
                default:
                    return super.onOptionsItemSelected(item);
            }
        }
     
        @SuppressLint("InlinedApi")
        //Méthode affichant les notes à l'ouverture de l'activité
        private void displayNote(String name, String mark, String pond) {
            //Initialisation de layout et des textView
            LayoutInflater inflater = LayoutInflater.from(this);
            int id = R.layout.layout_shownote;
            LinearLayout relativeLayout = (LinearLayout) inflater.inflate(id, null, false);
            txtOne = (TextView) relativeLayout.findViewById(R.id.txtViewOne);
            txtTwo = (TextView) relativeLayout.findViewById(R.id.txtViewTwo);
     
            //Si la pondération n'est pas null
            if(pond != null) {
                //Affiche un texte dans le premier textView
                //Exemple du texte : "Site PHP (Pondération 70%)"
                txtOne.setText(name + " (Pondération : " + pond + "%)");
            }
            //sinon
            else
            {
                //Affiche seulement le nom de la note
                txtOne.setText(name);
            }
            //affiche la note dans le 2ème TextView
            txtTwo.setText(mark);
            //Ajoute le textView au layout
            layout.addView(relativeLayout);
        }
     
        private void alertDialogBranch(final String years, final String branchName)
        {
            //Crée un dialogue
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            //Titre du dialogue et texte
            builder.setTitle("Effacer la branche");
            builder.setMessage("Voulez-vous vraiment effacer cette branche ?");
            //Bouton oui
            builder.setPositiveButton("OUI", new DialogInterface.OnClickListener() {
                @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
                public void onClick(DialogInterface dialog, int which) {
                    //Pour chaque note
                    List<MarkClass> markClassList = db.getAllMark(years,branchName);
                    for (MarkClass c : markClassList) {
                        //La retire de la base de donnée
                        db.deleteMark(c);
                    }
                    //Appel de la méthode pour effacer la branche
                    db.deleteBranch(db.getBranch(Integer.parseInt(branchName)));
                    //Ferme le dialogue
                    dialog.dismiss();
                    //Créé une nouvelle activité Main Activity et ferme les toutes les autres
                    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                    startActivity(intent);
                    finishAffinity();
                }
     
            });
            //Bouton non
            builder.setNegativeButton("NON", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // Ferme le dialogue
                    dialog.dismiss();
                }
            });
            //Affiche le dialogue
            AlertDialog alert = builder.create();
            alert.show();
        }
     
        private void alertDialogMark(final String years, final String branchName)
        {
            //Crée un dialogue
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            //Titre du dialogue et texte
            builder.setTitle("Effacer toutes les notes");
            builder.setMessage("Voulez-vous vraiment effacer toutes les notes de cette branche ?");
            //Bouton oui
            builder.setPositiveButton("OUI", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    //Pour chaque note
                    List<MarkClass> markClassList = db.getAllMark(years,branchName);
                    for (MarkClass c : markClassList) {
                        //La retire de la base de donnée
                        db.deleteMark(c);
                    }
                    //Ferme le dialogue
                    dialog.dismiss();
                    finish();
                }
     
            });
            //Bouton non
            builder.setNegativeButton("NON", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // Ferme le dialogue
                    dialog.dismiss();
                }
            });
            //Affiche le dialogue
            AlertDialog alert = builder.create();
            alert.show();
        }
     
        //Méthode créant un dialogue pour ajouter une note
        public void onCreateDialog()
        {
            //Nouveau dialogue selon le layout de "layout_addnote"
            AlertDialog.Builder mBuilder = new AlertDialog.Builder(NoteActivity.this);
            final View mView = getLayoutInflater().inflate(R.layout.layout_addnote, null);
     
            //Initialisation du boutton d'envoi
            Button bSend = (Button) mView.findViewById(R.id.bSend);
            //Quand le bouton Envoyer est cliqué
            bSend.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //Initialisation de deux EditText
                    final EditText txtName = (EditText) mView.findViewById(R.id.txtName);
                    final EditText txtNote = (EditText) mView.findViewById(R.id.txtNote);
                    // //Appel de la méthode addNoteDB avec le contenu des editText en paramètre
                    addNoteDB(txtName.getText().toString(), txtNote.getText().toString());
                }
            });
            //Affichage du dialogue
            mBuilder.setView(mView);
            AlertDialog dialog = mBuilder.create();
            dialog.show();
        }
     
        //Méthode créant un dialogue pour ajouter une note pondérée
        public void onCreateDialogPond()
        {
            //Nouveau dialogue selon le layout de "layout_addnotepond"
            AlertDialog.Builder mBuilder = new AlertDialog.Builder(NoteActivity.this);
            final View mView = getLayoutInflater().inflate(R.layout.layout_addnotepond, null);
            Button bSend = (Button) mView.findViewById(R.id.bSend);
            bSend.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    final EditText txtName = (EditText) mView.findViewById(R.id.txtName);
                    final EditText txtNote = (EditText) mView.findViewById(R.id.txtNote);
                    //Différence avec l'autre dialogue il y a un editText en plus
                    final EditText txtPond = (EditText) mView.findViewById(R.id.txtPond);
                    addNotePondDB(txtName.getText().toString(), txtNote.getText().toString(),txtPond.getText().toString());
                }
            });
            mBuilder.setView(mView);
            AlertDialog dialog = mBuilder.create();
            dialog.show();
        }
     
        //Méthode ajoutant une note à la base de donnée
        private void addNoteDB(String name, String note){
            //Récuperation des extras fournis dans l'activité précédente
            Bundle extras = getIntent().getExtras();
            String years = extras.getString("year");
            String branchName = extras.getString("branchName");
     
            //appel de la méthode addMark qui ajoute à la base de donnée une note
            db.addMark(new MarkClass(name, note,years,branchName));
            //appel de la méthode display note
            displayNote(name, note, null);
     
            //Algorithme de calcul de la moyenne
            calculmoy = calculmoy*nbNote;
            //Incrémentation du nombre de notes
            nbNote++;
            double note2 = Double.parseDouble(note);
            calculmoy = calculmoy + note2;
            calculmoy = calculmoy / nbNote;
     
        //String contenant la moyenne
        String stringMoy = String.valueOf(calculmoy);
        //Si la moyenne est supérieur ou égale à 4
            if(calculmoy >= 4)
        {
            //Texte en vert
            moyenne.setTextColor(Color.parseColor("#4caf50"));
        }
        //Si la moyenne est plus petite que 4
            if(calculmoy < 4)
        {
            //Texte en rouge
            moyenne.setTextColor(Color.parseColor("#f44336"));
        }
        //Set le texte d'un textview avec la moyenne
            moyenne.setText(stringMoy);
     
        }
     
        //Méthode ajoutant une note pondérée à la base de donnée
        private void addNotePondDB(String name, String note, String pond){
     
            Bundle extras = getIntent().getExtras();
            String years = extras.getString("year");
            String branchName = extras.getString("branchName");
            //appel de la méthode addMarkPond qui ajoute à la base de donnée une note pondérée
            db.addMarkPond(new MarkClass(name, note, years,branchName, pond));
            displayNote(name, note, pond);
     
            //Algorithme de calcul de la moyenne
            calculmoy = calculmoy * totalPond;
            totalPond = totalPond + Integer.parseInt(pond);
            calculmoy = calculmoy + Double.parseDouble(pond) * Double.parseDouble(note);
            //Algorithme de calcul de la moyenne
            calculmoy = calculmoy / totalPond;
     
        //String contenant la moyenne
        String stringMoy = String.valueOf(calculmoy);
        //Si la moyenne est supérieur ou égale à 4
            if(calculmoy >= 4)
        {
            //Texte en vert
            moyenne.setTextColor(Color.parseColor("#4caf50"));
        }
     
        //Si la moyenne est plus petite que 4
            if(calculmoy < 4)
        {
            //Texte en rouge
            moyenne.setTextColor(Color.parseColor("#f44336"));
        }
        //Set le texte d'un textview avec la moyenne
            moyenne.setText(stringMoy);
     
        }
    }
    Sachant que le calcul de la moyenne dans le onCreate fonctionne correctement

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Déjà calculmoy est possiblement modifié dans une autre méthode. En debug, que vaut calculmoy quand tu entres dans addNoteDB ? Et en debug, que vaut note (ne pas faire confiance à ce que tu penses que ça devrait être) ?

    Pour le reste, c'est de l'Android, et je n'y connais rien, donc ma contribution va être limitée sur les raisons possibles d'obtenir finalement NaN en résultat.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Algorithme de calcul probas poker
    Par Madfrix dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 11/05/2008, 18h27
  2. Y-a t-il plusieurs algorithmes de calcul de l'amortissement d'un prêt?
    Par kouka dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 12/09/2007, 13h33
  3. Recherche d'un algorithme pour calculer un Checksum
    Par noune40 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2006, 10h46
  4. algorithme pour calcul de probabilité
    Par filsdugrand dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 14/12/2005, 14h11

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