Correction du TP n°8
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);
}
}
Auteur: Nicolas JANEY
UFR Sciences et Techniques
Université de Besançon
16 Route de Gray, 25030 Besançon
nicolas.janey@univ-fcomte.fr