Multiplication des matrices carées

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 613 fois - Téléchargée 20 fois

Contenu du snippet

Hello ;
Le code simple qui suit procède à la multiplication de 2 matrices carées d'entiers naturels.
Par magie vous pouvez vous même saisir les éléments de vos deux matrices (ainsi que la dimension carée , évidemment).
All comment are welcome.
Thanks.

Source / Exemple :

// This program is done by 
// Billal BEGUERADJ
// Bejaia (ALGERIA)

import java.lang.*;
import java.io.*;
class MatriceOpx extends Thread
{
        static int matrice1[][];
        static int matrice2[][];
        static int resultat[][];
        static int n=2;
        int rang;
        MatriceOpx(int i)
        {
                rang=i;
                this.start();
        }
        public void run()
        {
                int i,j;
                for(i=0;i<n;i++)
                {
                        resultat[rang][i]=0;
                        for(j=0;j<n;j++)
                                resultat[rang][i]=resultat[rang][i]+matrice1[rang][j]*matrice2[j][i];
                }
        }
        public static void main(String args[])
        {
                int i,j;
                BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                System.out.println("<-- Multiplication de 2 matrices carees de entiers naturels --> ");
                System.out.print("Veuillez introduire la dimension caree de vos matrices : ");
                try
                {
                        n=Integer.parseInt(br.readLine());
                }catch(Exception e){}
                matrice1=new int[n][n];
                matrice2=new int[n][n];
                resultat=new int[n][n];
                System.out.println("Veuillez remplir les cases de la matrice une : ");
                for(i=0;i<n;i++)
                {
                        for(j=0;j<n;j++)
                        {
                                try
                                {
                                        matrice1[i][j]=Integer.parseInt(br.readLine());
                                }catch(Exception e){}
                        }
                }
                System.out.println("Veuillez remplir les cases de la matrice deux : ");
                for(i=0;i<n;i++)
                {
                        for(j=0;j<n;j++)
                        {
                                try
                                {
                                        matrice2[i][j]=Integer.parseInt(br.readLine());
                                }catch(Exception e){}
                        }
                }
                MatriceOpx mat[]=new MatriceOpx[n];
                for(i=0;i<n;i++)
                        mat[i]=new MatriceOpx(i);
                try
                {
                        for(i=0;i<n;i++)
                                mat[i].join();
                }catch(Exception e){}
                System.out.println("Ci dessous le resultat :");
                for(i=0;i<n;i++)
                        for(j=0;j<n;j++)
                                System.out.println(resultat[i][j]);
        }
}

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
vendredi 27 novembre 2009
Statut
Membre
Dernière intervention
24 janvier 2013

Bonjour, fantastique! j'ai besoin d'aide pour un code: la multiplication de plusieurs paires de matrices carrées mais avec des valeurs generees automatiquement: 2*2, 3*3, 4*4, 100*100. Pour calculer la duree de l'execution. Merci
Messages postés
68
Date d'inscription
jeudi 27 janvier 2011
Statut
Membre
Dernière intervention
7 février 2014
4
c'est supeeeeeeeeer merci merci beaucoup !! ce code m'a ouvris les yeux pour voire ce qui cloché dans un exercice en threads :D

Merciiiiiiiiiii
Messages postés
545
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
28 septembre 2011
2
J'emets des doutes sur la pertinence de faire ça dans un Thread. Certes, ce n'est pas handicapant, mais ça peut poser problème si tu veux rajouter des possiblités(addition,inverse, transposée...)

Par ailleurs, une méthode pour saisir une matrice (et donc réutilisable pour d'autres calculs sans taillader le code serait une bonne chose.

Surtout que foncièrement, le code de saisie de la première matrice est plutot proche de celui de la deuxième.

Pour finir, j'pense que se limiter aux matrices carrées est un peut bête, puisque que c'est pas bcp plus compliqué de multiplier desmatrices quelconques pour peu que les dimensions permettent cette multiplication.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.