/* Auteur: Nicolas JANEY          */
/* nicolas.janey@univ-fcomte.fr   */
/* Fevrier 2005                   */

public class TestEgaliteTableauxEnConsole {

  /* Fonction d'affichage de tous les entiers contenus    */
  /* dans un tableau d'entiers                            */

  public static void affichageTableau(int [] t) {
    int i;
  /* Pour toutes les valeurs d'indice 0 a t.length-1 inclus    */
    for ( i = 0 ; i < t.length ; i++ )
      Console.out.println(t[i]);
  }

  /* Fonction d'initialisation de tous les entiers        */
  /* contenus dans un tableau d'entiers                   */
  /* avec une valeur tiree au sort entre 0 et max inclus  */

  public static void initialisationTableau(int [] t,int max) {
    int i;
  /* Pour toutes les valeurs d'indice 0 a t.length-1 inclus    */
    for ( i = 0 ; i < t.length ; i++ ) {
  /* Initialisation de t[i] avec un entier tire                */
  /* au hasard entre 0.0 (inclu) et max+1 (exclu)              */
      t[i] =(int) ((max+1)*Math.random()); }
  }

  /* Fonction de test de l'egalite de deux tableau             */
  /* position pour position                                    */
  /* Tableaux de dimensions identiques                         */

  public static boolean testEgalite(int [] t1,int [] t2) {
    int i;
  /* Pour toutes les valeurs d'indice 0 a t1.length inclus     */
    for ( i = 0 ; i < t1.length ; i++ )
  /* Si deux valeurs differentes sont trouvees,                */
  /* le fonctionnement de la fonction est arrete               */
  /* et on rend faux                                           */
      if ( t1[i] != t2[i] )
        return(false);
  /* Les tableaux ont ete entierement parcourus sans trouver   */
  /* de valeurs differentes -> vrai est rendu                  */
    return(true);
  }

  /* Fonction principale                                  */

  public static void main(String [] args) {
    Console.setTitle("TestEgaliteTableaux");
  /* Definition et allocation de 2 tableaux de 3 entiers        */
    int [] t1 = new int[3];
    int [] t2 = new int[3];
  /* Appel a la fonction d'initialisation                      */
    initialisationTableau(t1,3);
    initialisationTableau(t2,3);
    Console.out.println("Le tableau 1 contient les valeurs suivantes:");
  /* Appel a la fonction d'affichage sur le premier tableau    */
    affichageTableau(t1);
    Console.out.println();
    Console.out.println("Le tableau 2 contient les valeurs suivantes:");
  /* Appel a la fonction d'affichage sur le deuxieme tableau   */
    affichageTableau(t2);
    Console.out.println();
    if ( testEgalite(t1,t2) )
      Console.out.println("Tableaux identiques");
      else
      Console.out.println("Tableaux differents");
    Console.out.println();
  /* Definition et initialisation de 2 tableaux de 3 entiers   */
    int [] v1 = { 1,-1,3 };
    int [] v2 = { 1,-1,3 };
    Console.out.println("Le tableau 1 contient les valeurs suivantes:");
  /* Appel a la fonction d'affichage sur le premier tableau    */
    affichageTableau(v1);
    Console.out.println();
    Console.out.println("Le tableau 2 contient les valeurs suivantes:");
  /* Appel a la fonction d'affichage sur le deuxieme tableau   */
    affichageTableau(v2);
    Console.out.println();
    if ( testEgalite(v1,v2) )
      Console.out.println("Tableaux identiques");
      else
      Console.out.println("Tableaux differents");
  }
}