/* Somme de deux matrices de int */ public class SommeMatrices { /* Methode de creation d'une matrice de int */ /* initialise avec des nombres aleatoires */ /* compris dans l'intervalle [0,max] */ static int [][] initRandMatrice(int lignes,int colonnes,int max) { int i; int j; int [][] tab = new int[lignes][colonnes]; for ( i = 0 ; i < lignes ; i = i+1 ) { for ( j = 0 ; j < colonnes ; j = j+1 ) { tab[i][j] =(int) (Math.random()*(max+1)); } } return tab; } /* Methode d'affichage d'un entier */ /* sur l caracteres de large */ static void afficher(int v,int l) { int i; int val; val = v; int nbc = 0; if ( v != 0 ) { while ( val != 0 ) { nbc = nbc+1; val = val/10; } } else { nbc = 1; } for ( i = 0 ; i < l-nbc ; i = i+1 ) { Ecran.afficher(" "); } Ecran.afficher(v); } /* Methode d'affichage des valeurs contenues */ /* dans une matrice de int */ static void affichageMatrice(int [][] t) { int i; int j; for ( i = 0 ; i < t.length ; i = i+1 ) { for ( j = 0 ; j < t[0].length ; j = j+1 ) { afficher(t[i][j],5); } Ecran.sautDeLigne(); } } ///////////////////////////////////////////////// /* Methode de calcul de la somme de 2 matrices */ /* de int de tailles compatibles */ /* Resultat stocke dans la 3eme matrice */ /* en entete */ static void somme(int [][] m1,int [][] m2,int [][] ms) { int i; int j; for ( i = 0 ; i < m1.length ; i = i+1 ) { for ( j = 0 ; j < m1[0].length ; j = j+1 ) { ms[i][j] = m1[i][j]+m2[i][j]; } } } /* Methode de calcul de la somme de 2 matrices */ /* de int de tailles compatibles */ /* Resultat stocke dans la matrice allouee */ /* et retournee */ static int [][] somme(int [][] m1,int [][] m2) { int [][] ms = new int[m1.length][m1[0].length]; somme(m1,m2,ms); return ms; } ///////////////////////////////////////////////// /* Programme principal */ public static void main(String [] args) { int l; int c; Ecran.afficher("Nombre de lignes ? "); l = Clavier.saisirInt(); Ecran.afficher("Nombre de colonnes ? "); c = Clavier.saisirInt(); int [][] m1 = initRandMatrice(l,c,999); int [][] m2 = initRandMatrice(l,c,999); Ecran.sautDeLigne(); affichageMatrice(m1); Ecran.sautDeLigne(); affichageMatrice(m2); int [][] ms1 = somme(m1,m2); int [][] ms2 = new int[l][c]; somme(m1,m2,ms2); Ecran.sautDeLigne(); Ecran.afficherln("Somme"); affichageMatrice(ms1); Ecran.sautDeLigne(); Ecran.afficherln("Somme"); affichageMatrice(ms2); } }