Correction du TP n°8

Exercice 1

Implanter en Java et tester une méthode qui réalise la copie d'une matrice d'entiers de taille n x m dans une autre matrice d'entiers de taille n x m.

/* Auteur: Nicolas JANEY          */
/* nicolas.janey@univ-fcomte.fr   */
/* Mars 2006                      */

import java.io.*;

public class CopieMatrice {
  static BufferedReader flux = new BufferedReader(new InputStreamReader(System.in));

  /* Creation d'une chaine de caracteres                  */
  /* representant un nombre entier complemente par        */
  /* des espaces pour obtenir une longueur totale fixee   */
  
  public static String format(int n,int l) {
    String s = ""+n;
    int i = s.length();
    for ( ; i < l ; i++ )
      s = " "+s;
    return(s);
  }
  
  /* Affichage d'une matrice d'entiers formatee           */
  /* en lignes et en colonnes                             */

  public static void affichageMatrice(int [][] m) {
    for ( int i = 0 ; i < m.length ; i++ ) {
      for ( int j = 0 ; j < m[i].length ; j++ )
        System.out.print(format(m[i][j],5));
      System.out.println(); }
  }
  
  /* Creation d'une matrice d'entiers tires au sort entre */
  /* 0 et une valeur limite pour un nombre arbitraire     */
  /* de lignes et de colonnes                             */
  
  public static int [][] matriceAuHasard(int lignes,int colonnes,int max) {
    int [][] m = new int[lignes][colonnes];
    for ( int i = 0 ; i < lignes ; i++ )
      for ( int j = 0 ; j < colonnes ; j++ )
        m[i][j] =(int) (Math.random()*(max+1));
    return(m);
  }
  
  /* Copie d'une matrice d'entiers dans une autre         */
  /* matrice d'entiers                                    */
  
  public static void copieMatrice(int [][] src,int [][] dst) {
    for ( int i = 0 ; i < src.length ; i++ )
      for ( int j = 0 ; j < src[i].length ; j++ )
        dst[i][j] = src[i][j];
  }
  
  /* Fonction principale                                  */

  public static void main(String [] args) throws IOException {
    int [][] mat = matriceAuHasard(5,4,1000);
    System.out.println("Matrice copiee");
    affichageMatrice(mat);
    System.out.println();
    int [][] dst = new int [5][4];
    System.out.println("Matrice destination avant la copie");
    affichageMatrice(dst);
    System.out.println();
    copieMatrice(mat,dst);
    System.out.println("Matrice destination apres la copie");
    affichageMatrice(dst);
  }
}

CopieMatrice.java

Auteur: Nicolas JANEY
UFR Sciences et Techniques
Université de Besançon
16 Route de Gray, 25030 Besançon
nicolas.janey@univ-fcomte.fr