sábado, 12 de julio de 2014

Multiplicar dos matrices pidiendo el tamaño de las dos, y llenarlas con números aleatorios e imprimir la matriz resultante




//MULTILICAR 2 MATRICES

import java.util.Random;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class  MultiplicaMatrizAleatoria{

public static void main (String args[]){

 Random r=new Random();
     Scanner in=new Scanner(System.in);
   
//        System.out.println("ingrese numero de filas de la primera matriz");
//       int x1=in.nextInt();
   
      String x = JOptionPane.showInputDialog(null,"ingrese numero de filas de la primera matriz");
           int x1 = Integer.parseInt(x);
//        System.out.println("ingrese numero de columnas de la primera matriz");
//       int z1=in.nextInt();
      String xa = JOptionPane.showInputDialog(null,"ingrese numero de columnas de la primera matriz");
           int z1 = Integer.parseInt(xa);
//        System.out.println("ingrese numero de filas de la segunda matriz");
//       int x2=in.nextInt();
      String xb = JOptionPane.showInputDialog(null,"ingrese numero de filas de la segunda matriz");
           int x2 = Integer.parseInt(xb);
//        System.out.println("ingrese numero de columnas de la segunda matriz");
//       int z2=in.nextInt();
String ax = JOptionPane.showInputDialog(null,"ingrese numero de olumnas de la segunda matriz");
           int z2 = Integer.parseInt(ax);
     
      int[][] m1=new int[x1][z1];
      int[][] m2=new int[x2][z2];
      int[][] mR=new int[x1][z2];
       System.out.println("La matriz 1");
     
   
       for(int i=0;i<x1;i++){
           System.out.print("[ ");
           for(int j=0;j<z1;j++){
               m1[i][j]=r.nextInt(9);
               System.out.print(m1[i][j]+" ");
           }
           System.out.print("]");
           System.out.println("");
       }
       System.out.println("La matriz 2");
       for(int i=0;i<x2;i++){
           System.out.print("[ ");
           for(int j=0;j<z2;j++){
               m2[i][j]=r.nextInt(9);
               System.out.print(m2[i][j]+" ");
           }
           System.out.print("]");
           System.out.println("");
       }

       if(z1==x2){
           System.out.println("La matriz resultante es: ");
         
           for(int i=0;i<x1;i++){
           
            System.out.print("[ ");
           
           for(int j=0;j<z2;j++){
           
           
           for(int h=0;h<z1;h++){

            mR[i][j]+=m1[i][h]*m2[h][j];
//aqui se multiplica cada columnas i de matriz1 *por* cada fila de matriz2
//el resultado de cada multiplicacion se ira sumando asta dar el resultado total de
//cada columna *fila completa por eso el +=
                }
                System.out.print(mR[i][j]+" ");      
            }
            System.out.print("]");
            System.out.println("");
        }
    }
    else{
        System.out.println("Los rangos de las matrices son incorrectos");
    }
}

}

--------------------Configuration: <Default>--------------------
La matriz 1
[ 7 0 ]
[ 2 7 ]
La matriz 2
[ 5 5 7 7 3 7 ]
[ 3 7 3 7 2 2 ]
La matriz resultante es:
[ 35 35 49 49 21 49 ]
[ 31 59 35 63 20 28 ]

Process completed.


No hay comentarios:

Publicar un comentario