/* Calcul des nombres de de valeurs             */
/* par intervalle de largeur 1.0                */
/* pour un tableau de double compris            */
/* entre 0.0 et 20.0                            */

public class FonctionClassificationTableauEnConsole {

/* Fonction de creation d'un tableau de double  */
/* initialise avec des nombres aleatoires       */
/* compris entre 0.0 et 20.0                    */

  static double [] initRand(int n) {
    int i;
    double [] tab = new double[n];
    for ( i = 0 ; i < tab.length ; i = i+1 ) {
      tab[i] = Math.random()*20.0; }
    return tab;
  }

/////////////////////////////////////////////////

/* Fonction de calcul des nombres de de valeurs */
/* par intervalle de largeur 1.0                */
/* pour un tableau de double compris            */
/* entre 0.0 et 20.0                            */
/* Un tableau de 20 entiers est calculé         */
/* et retourné                                  */
/* t : Le tableau de double subissant           */
/* l'opération de classification                */

  static int [] classification(double [] t) {
    int i;
    int cl;
    int [] classification = new int[20];
    for ( i = 0 ; i < 20 ; i = i+1 ) {
      classification[i] = 0; }
    for ( i = 0 ; i < t.length ; i = i+1 ) {
      cl =(int) t[i];
      classification[cl] = classification[cl]+1; }
    return classification;
  }

//////////////////////////////////////////////////

/* Programme principal                          */

  public static void main(String [] args) {
    Console.setTitle("FonctionClassificationTableau");
    int i;
    int n;
    double [] t;
    int [] classification;
    Console.afficher("SVP, taille du tableau? ");
    n = Console.saisirInt();
    t = initRand(n);
    Console.afficherln("Nombres de valeurs:");
    classification = classification(t);
    for ( i = 0 ; i < 20 ; i = i+1 ) {
      Console.afficherln(i,"  ",classification[i]); }
  }
}