II.
SYNTAXE ET ÉLÉMENTS DE BASE DU LANGAGE JAVA
Exercice: tableaux et fonctions
Operations sur les matrices:
1. Ecrire une fonction qui teste si une matrice est carrée.
public static boolean matriceCarree(int[][] matrice) {
boolean resultat;
if ([Link]==matrice[0].length)
resultat=true;
else
resultat=false;
return resultat;
}
73
II. SYNTAXE ET ÉLÉMENTS DE BASE DU LANGAGE JAVA
Exercice: tableaux et fonctions
Operations sur les matrices:
2. Ecrire une fonction qui test si 2 matrices en la même taille.
public static boolean memeTaille(int[][] matrice1,int[][] matrice2 ) {
boolean resultat;
if ([Link]==[Link] &&
matrice1[0].length==matrice2[0].length)
resultat=true;
else
resultat=false;
return resultat;
}
74
II. SYNTAXE ET ÉLÉMENTS DE BASE DU LANGAGE JAVA
Exercice: tableaux et fonctions
Operations sur les matrices:
3. Ecrire une fonction qui affiche une matrice. Utiliser la boucle for améliorée.
public static void afficherMatrice(int[][] matrice) {
for(int[] row:matrice) {
for(int element:row)
[Link](element+" ");
[Link]();
}
}
75
II. SYNTAXE ET ÉLÉMENTS DE BASE DU LANGAGE JAVA
Exercice: tableaux et fonctions
Operations sur les matrices:
4. Ecrire une fonction qui calcule la transposée d’une matrice.
public static int[][] transpose(int[][] matrice) {
int rows=[Link];
int columns=matrice[0].length;
int[][] resultat=new int[columns][rows];
for(int i=0; i<columns;i++)
for(int j=0; j<rows;j++)
resultat[i][j]=matrice[j][i];
return resultat;
}
76
II. SYNTAXE ET ÉLÉMENTS DE BASE DU LANGAGE JAVA
Exercice: tableaux et fonctions
Operations sur les matrices:
5. Ecrire une fonction qui calcule l’addition de 2 matrices.
public static int[][] addition(int[][] matrice1,int[][] matrice2) {
int rows=[Link];
int columns=matrice1[0].length;
int[][] resultat=new int[rows][columns];
for(int i=0; i<rows;i++)
for(int j=0; j<columns;j++)
resultat[i][j]=matrice1[i][j]+matrice2[i][j];
return resultat;
} 77
II. SYNTAXE ET ÉLÉMENTS DE BASE DU LANGAGE JAVA
Exercice: tableaux et fonctions
Operations sur les matrices:
6. Ecrire une fonction qui calcule la multiplication de 2 matrices.
public static int[][] multiplication(int[][] matrice1,int[][] matrice2) {
int rowsM1=[Link];
int columnsM1=matrice1[0].length;
int columnsM2=matrice1[0].length;
int[][] resultat=new int[rowsM1][columnsM2];
for(int i=0; i<rowsM1;i++)
for(int j=0; j<columnsM2;j++)
for(int k=0; k<columnsM1;k++)
resultat[i][j]=resultat[i][j]+matrice1[i][k]*matrice2[k][j];
return resultat;
78
}
II. SYNTAXE ET ÉLÉMENTS DE BASE DU LANGAGE JAVA
Exercice: tableaux et fonctions
Operations sur les matrices:
8. Ecrire la fonction main pour tester les différentes opérations.
public static void main(String[] args) {
int[][] matrice= {{1,2},{3,4}};
int[][] matrice2= {{5,6,5},{7,8,7}};
int[][] transpose=transpose(matrice2);
[Link]("Original M1");
afficherMatrice(matrice);
[Link]("Original M2");
afficherMatrice(matrice2);
[Link]("Transposé M1");
afficherMatrice(transpose);
..
} 79
II. SYNTAXE ET ÉLÉMENTS DE BASE DU LANGAGE JAVA
Exercice: tableaux et fonctions
public static void main(String[] args) {
[Link]("Addition de M1 et M2");
if(memeTaille(matrice,matrice2)==true)
afficherMatrice(addition(matrice,matrice2));
else
[Link](""
+ "Les 2 matrices doivent avoir la même taille pour l'addition");
[Link]("Multiplication de M1 et M2");
if(compatibleMultiplication(matrice,matrice2)==true)
afficherMatrice(multiplication(matrice,matrice2));
else
[Link](""
+ "Les 2 matrices doivent être compatibles pour la multiplication");
} 80
II. SYNTAXE ET ÉLÉMENTS DE BASE DU LANGAGE JAVA
Exercice: tableaux et fonctions
Exercice
1. Ecrire une fonction qui retourne la matrice suivante pour une taille donnée (5 par
exemple):
1 1
3 9
5 25
7 49
9 81
81