/* Tests d'affectation entre tableaux           */
/* Implantation avec utilisation de fonctions   */

public class AffectationEntreTableauxAvecFonctions {

//////////////////////////////////////////////////
 
/* Fonction d'affichage d'un tableau d'entiers */
/* t : Le tableau de int a afficher            */
  
  static void affichage(int [] t) {
    int i;
    for ( i = 0 ; i < t.length ; i = i+1 ) {
      Ecran.afficher(t[i]," "); }
    Ecran.sautDeLigne();
  }
  
/* Fonction d'affichage d'un tableau d'entiers  */
/* avec affichage préalable d'un message        */
/* alphabétique                                 */
/* message : La chaine a afficher préalablement */
/* t : Le tableau de int a afficher             */
  
  static void affichage(String message,int [] t) {
    Ecran.formater("%s : ",message);
    affichage(t);
  }
  
/* Fonction de copie des valeurs contenues      */
/* dans un tableau d'entiers source             */
/* vers un tableau d'entiers cible              */
/* source : Le tableau de int source            */
/* cible : Le tableau de int cible              */
  
  static void copie(int [] source,int [] cible) {
    int i;
    for ( i = 0 ; i < source.length ; i = i+1 ) {
      cible[i] = source[i]; }
  }
  
/* Programme principal                          */

  public static void main(String [] args) {
    /* Declaration et initialisation de deux    */
    /* tableaux: t1 et t2                       */
    int [] t1 = { 0,1,2,3 };
    int [] t2 = { 0,0,0,0 };
    /* Affichage du contenu des deux tableaux   */
    Ecran.afficherln("Tableaux t1 et t2 initiaux");
    affichage("t1",t1);
    affichage("t2",t2);
    /* Copie du contenu de t1 dans t2 puis      */
    /* réaffichage du contenu des deux tableaux */
    Ecran.afficherln("t1 et t2 après copie de t1 dans t2");
    copie(t1,t2);
    affichage("t1",t1);
    affichage("t2",t2);
    /* Remplissage de t1 avec des 0 puis        */
    /* réaffichage du contenu des deux tableaux */
    Ecran.afficherln("t1 et t2 après remplissage de t1 avec des 0.0");
    t1[0] = 0;
    t1[1] = 0;
    t1[2] = 0;
    t1[3] = 0;
    affichage("t1",t1);
    affichage("t2",t2);
    /* Affichage des adresses mémoire           */
    /* de t1 et de t2                           */
    Ecran.afficherln("Adresses mémoire de t1 et t2");
    Ecran.afficherln("t1 : ",t1);
    Ecran.afficherln("t2 : ",t2);
    /* Affectation de t1 avec t2 puis           */
    /* réaffichage du contenu des deux tableaux */
    Ecran.afficherln("t1 et t2 après affectation de t1 avec t2 (=)");
    t1 = t2;
    affichage("t1",t1);
    affichage("t2",t2);
    /* Réaffichage des adresses mémoire         */
    /* de t1 et de t2                           */
    Ecran.afficherln("Adresses mémoire de t1 et t2");
    Ecran.afficherln("t1 : ",t1);
    Ecran.afficherln("t2 : ",t2);
    /* Remplissage de t1 avec des 0 puis        */
    /* réaffichage du contenu des deux tableaux */
    Ecran.afficherln("t1 et t2 après remplissage de t1 avec des 0");
    t1[0] = 0;
    t1[1] = 0;
    t1[2] = 0;
    t1[3] = 0;
    affichage("t1",t1);
    affichage("t2",t2);
    /* Remplissage de t2 avec des 1 puis        */
    /* réaffichage du contenu des deux tableaux */
    Ecran.afficherln("t1 et t2 après remplissage de t2 avec des 1");
    t2[0] = 1;
    t2[1] = 1;
    t2[2] = 1;
    t2[3] = 1;
    affichage("t1",t1);
    affichage("t2",t2);
  }

//////////////////////////////////////////////////
}