/** 
 * Programme de démonstration de génération
 * de commentaires javadoc.
 * @author Nicolas JANEY
 * @author nicolas.janey@univ-fcomte.fr
 * @version 1.0, 01/08/17
 * @version 1.2, 31/08/17
 */
public class Exemple {

  /**
   * Constante de définition de la précision.
   */
  public final static double EPSILON = 0.00001;  
  
  /**
   * Type agrégé de modélisation d'une position
   * en deux dimensions réelles.<br>
   * Initialisation des champs à 0.0.
   */
  public static class Position2D {
    /**
     * Abscisse
     */
    public double x = 0.0;
    /**
     * Ordonnée
     */
    public double y = 0.0; };
  
  /**
   * Génération d'un tableau de réels tirés au sort
   * et ordonnés par ordre croissant.<br>
   * Le tableau est généré en tirant au sort entre 0.0 et 1.0
   * le premier réel (indice 0) puis en générant chacun des réels
   * suivants (d'indice i) en ajoutant au réel précédent (d'indice i-1)
   * un réel tiré au sort entre 0.0 et 1.0.
   *
   * @param n La taille du tableau à générer.
   * @return Le tableau de réels généré.
   */
  public static double [] initRandCroissant(int n) {
    int i;
    double [] tab = new double[n];
    tab[0] = Math.random();
    for ( i = 1 ; i < tab.length ; i = i+1 ) {
      tab[i] = tab[i-1]+Math.random(); }
    return tab;
  }
  
  /**
   * Affichage d'un tableau de réels.
   *
   * @param t Le tableau de réels à afficher.
   */
  public static void affichageTableau(double [] t) {
    int i;
    for ( i = 0 ; i < t.length ; i = i+1 ) {
      Ecran.formater("%8.5f\n",t[i]); }
  }
  
  /**
   * Programme principal.
   *
   * @param args Le tableau des paramètres d'exécution.
   */
  public static void main(String [] args) {
    Position2D pos = new Position2D();
    Ecran.afficherln(EPSILON);
    Ecran.afficherln(pos.x," ",pos.y);
    affichageTableau(initRandCroissant(10));
  }
}