Problème de cours SVP

Signaler
Messages postés
1
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
9 février 2006
-
Messages postés
103
Date d'inscription
lundi 9 avril 2001
Statut
Membre
Dernière intervention
16 juillet 2008
-
mon affichage ne correspond pas à la affichage demande ci quelqu'un peut m'aider

ceci est mon programme

public class TableauGroupe {

private static final int NBR = 100000;

private static final double[] BORNES = { -10.0, -6.0, -4.0, -2.0, -1.0,
0.0, 1.0, 3.0, 5.0, 8.0, 12.0, 20.0 };

// TO DO méthodes

public static double[] genererValeurs(double min, double max, int nbrClasses) {
double[] tabValeurs = new double[nbrClasses];
for (int i = 0; i < nbrClasses; ++i) {
tabValeurs[i] = Math.random() * (max - min) + min;
}
return tabValeurs;

}
//LE PROBLEME CE TROUVE ICI DANS LE BOUCLE FOR
public static int[] calculerEffectifs(double[] taBornes, double[] tValeurs) {
int n = taBornes.length - 1;
int[] tEffectifs = new int[n];
// for (double v : tValeurs) {
// tEffectifs[(int) Math.floor((v - taBornes[0])
// / (taBornes[n] - taBornes[0]) * n)]++;
// }
for (int i = 0; i < tValeurs.length; ++i) {
tEffectifs[(int) Math.floor((tValeurs[i] - taBornes[0])
/ (taBornes[n] - taBornes[0])*n )]++;
}
return tEffectifs;
}

public static int[] calculerEffectifsCumules(int[] TabEffectifs) {
int sommEffectifs[] = new int[TabEffectifs.length];
for (int i 0, somme 0; i < TabEffectifs.length; i++) {
sommEffectifs[i] = somme + TabEffectifs[i];
somme = sommEffectifs[i];
}
return sommEffectifs;
}

public static double[] calculerFrequences(int TabEffectifs[]) {
double[] tabFrequences = new double[TabEffectifs.length];
int efftot = 0;
for (int i = 0; i < TabEffectifs.length; i++) {
efftot += TabEffectifs[i];
}
for (int i = 0; i < TabEffectifs.length; i++) {
tabFrequences[i] = (double) TabEffectifs[i] / efftot;
}
return tabFrequences;
}

public static double[] calculerFrequencesCumulees(double tabFrequences[]) {
double[] tabFrequencesCumulees = new double[tabFrequences.length];
double somme = 0.0d;
for (int i = 0; i < tabFrequences.length; i++) {
tabFrequencesCumulees[i] = somme + tabFrequences[i];
somme = tabFrequencesCumulees[i];
}
return tabFrequencesCumulees;
}

public static void afficher(double taBornes[], int tabEffectifs[],
int tabEffectifCumules[], double tabFrequences[],
double tabFrequencesCumulees[]) {

System.out.printf("%-12s %12s %12s %12s %12s\n", "Classe",
"Effectif", "EffeCumul", "Frequences", "FreqCumul");
double binf, bsup = 0;
for (int classe = 0; classe < taBornes.length + 1
&& bsup < taBornes.length + 1; classe++) {
binf = taBornes[classe];
bsup = taBornes[classe + 1];
System.out.printf("[%5.1f %5.1f [ %12s %12s %12s %12s\n",
binf, bsup, tabEffectifs[classe],
tabEffectifCumules[classe], tabFrequences[classe],
tabFrequencesCumulees[classe]);

}
}

public static double Moyenne(double TabValeurs[]) {
double somme = 0;
/*
* for (double v : TabValeurs) { somme +v; } somme somme /
* TabValeurs.length;
*/
for (int i = 0; i < TabValeurs.length; i++) {
somme += TabValeurs[i];
}
return somme / TabValeurs.length;
}

public static double Moyenne(double TaBornes[], int TabEffectifs[]) {
int efftot = 0;
double somme = 0;
for (int i = 0; i < TabEffectifs.length; i++) {
efftot += TabEffectifs[i];
}
for (int i 0, j 1; j < TaBornes.length; i++, j++) {
double max = TaBornes[j];
double min = TaBornes[i];
double centre = (((max - min) / 2) + min);
int eff = TabEffectifs[i];
somme += centre * eff;
}
return somme / efftot;
}

public static void main(String[] args) {
double[] valeurs = genererValeurs(BORNES[0], BORNES[BORNES.length - 1],
NBR);
int[] effectifs = calculerEffectifs(BORNES, valeurs);
int[] effectifsCumules = calculerEffectifsCumules(effectifs);
double[] frequences = calculerFrequences(effectifs);
double[] frequencesCumulees = calculerFrequencesCumulees(frequences);
afficher(BORNES, effectifs, effectifsCumules, frequences,
frequencesCumulees);

System.out.println("Moyenne du tableau brut : " + Moyenne(valeurs));
System.out.println("Moyenne du tableau groupé : "
+ Moyenne(BORNES, effectifs));

}

}

CECI EST MON AFFICHAGE

Classe Effectif EffeCumul Frequences FreqCumul
[-10,0 -6,0 [ 9293 9293 0.09293 0.09293
[ -6,0 -4,0 [ 8951 18244 0.08951 0.18244
[ -4,0 -2,0 [ 9044 27288 0.09044 0.27288
[ -2,0 -1,0 [ 8974 36262 0.08974 0.36262
[ -1,0 0,0 [ 9232 45494 0.09232 0.45494
[ 0,0 1,0 [ 9107 54601 0.09107 0.54601
[ 1,0 3,0 [ 9134 63735 0.09134 0.63735
[ 3,0 5,0 [ 9022 72757 0.09022 0.7275699999999999
[ 5,0 8,0 [ 9126 81883 0.09126 0.81883
[ 8,0 12,0 [ 9093 90976 0.09093 0.9097599999999999
[ 12,0 20,0 [ 9024 100000 0.09024 0.9999999999999999
Moyenne du tableau brut : 4.98120084777585
Moyenne du tableau groupé : 1.892345


CECI EST L'affichage demande


Classe Centre Effectif Eff cumul. Frequences Freq cumul.
[-10,0 -6,0 [ -8,00 13317 13317 0,13317 0,13317
[ -6,0 -4,0 [ -5,00 6636 19953 0,06636 0,19953
[ -4,0 -2,0 [ -3,00 6531 26484 0,06531 0,26484
[ -2,0 -1,0 [ -1,50 3283 29767 0,03283 0,29767
[ -1,0 0,0 [ -0,50 3282 33049 0,03282 0,33049
[ 0,0 1,0 [ 0,50 3387 36436 0,03387 0,36436
[ 1,0 3,0 [ 2,00 6624 43060 0,06624 0,43060
[ 3,0 5,0 [ 4,00 6614 49674 0,06614 0,49674
[ 5,0 8,0 [ 6,50 9996 59670 0,09996 0,59670
[ 8,0 12,0 [ 10,00 13519 73189 0,13519 0,73189
[ 12,0 20,0 [ 16,00 26811 100000 0,26811 1,00000
Moyenne du tableau brut : 5.046328890458431
Moyenne du tableau groupé : 5.04663

3 réponses

Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
8
t as pas un peu plus long stp ??

sinon j te conseille plutot d utiliser des BigInteger, BigDecimal... pour faire tes traitement !!
++ Toinou
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
17
c'est pt du a des erreur d'arrondi mais je n'ai pas le courage de recuperer ton long prog pour l'analyser

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
Messages postés
103
Date d'inscription
lundi 9 avril 2001
Statut
Membre
Dernière intervention
16 juillet 2008

ça va pas ça de mettre du code aussi long ... personne voudra jamais se pencher sur ton problème ...
met uniquement les lignes qui te posent problème, le reste on s'en cogne