Problème de cours SVP

lfranck33 Messages postés 1 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 9 février 2006 - 9 févr. 2006 à 16:57
cs_muad-dib Messages postés 103 Date d'inscription lundi 9 avril 2001 Statut Membre Dernière intervention 16 juillet 2008 - 11 févr. 2006 à 15:18
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

super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 7
9 févr. 2006 à 17:20
t as pas un peu plus long stp ??

sinon j te conseille plutot d utiliser des BigInteger, BigDecimal... pour faire tes traitement !!
++ Toinou
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
10 févr. 2006 à 19:28
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"
0
cs_muad-dib Messages postés 103 Date d'inscription lundi 9 avril 2001 Statut Membre Dernière intervention 16 juillet 2008
11 févr. 2006 à 15:18
ç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
0