Foros del Web » Programación para mayores de 30 ;) » Java »

multiplicación de matrices

Estas en el tema de multiplicación de matrices en el foro de Java en Foros del Web. Hola!! Verán q soy novata en esto y se me ha asignado que realice un programa que multiplique dos matrices 3x2 y 2x3, con llenado ...
  #1 (permalink)  
Antiguo 14/07/2011, 22:08
 
Fecha de Ingreso: julio-2011
Ubicación: Costa Rica
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
multiplicación de matrices

Hola!!

Verán q soy novata en esto y se me ha asignado que realice un programa que multiplique dos matrices 3x2 y 2x3, con llenado aleatorio y automático.

He hecho lo siguiente:


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

public class productoMatrices
{

public static void main(String[] args)
{

int M1 [][];
M1 = new int[2][3];
for (int i =0; i<2;i++)
{
for (int j=0;i<3;j++)
{
M1[2][3] = new Random ();
}
}

int M2 [][];
M2 = new int[3][2];
for (int i =0; i<3;i++)
{
for (int j=0;i<2;j++)
{
M2 [3][2] = new Random( );
}
}

int Mproducto[][];

// Multiplicación de las matrices

int i=0;
int j=0;
int k=0;

Mproducto = new int [4][4];

for(i=0; i<2; i++)
{
for(j=0; j<3; j++)
{
for(k=0; k<4; k++)
{
Mproducto[i][j]=Mproducto[i][j]+(M1[i][k]*M2[k][j]);
}
}
}

//Muestra de los resultados

JOptionPane.showMessageDialog(null, "Matriz 1" + M1);
JOptionPane.showMessageDialog(null, "Matriz 2" + M2);
JOptionPane.showMessageDialog(null, "El producto de las matrices es: " + Mproducto,
"PRODUCTO DE MATRICES", JOptionPane.PLAIN_MESSAGE);
}

} // Fin.


Trabajo con netbeans y al compilar me da error en las dos líneas siguientes:

M1[2][3] = new Random ();

M2 [3][2] = new Random( );

Pueden decirme la causa del error o dar alguna sugerencia para mejorar??

Gracias!!
  #2 (permalink)  
Antiguo 15/07/2011, 02:00
Avatar de edjuradob  
Fecha de Ingreso: junio-2011
Ubicación: España
Mensajes: 24
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: multiplicación de matrices

Varias cosas:
no puedes hacer esto:

int M1 [][];
M1 = new int[2][3];
for (int i =0; i<2;i++)
{
for (int j=0;i<3;j++)
{
M1[2][3] = new Random ();
}
}

Has declarado M1 como int y despues intentas instanciarlo como Random en la posición [2][3].

Supongo que los bucles for son para rellenar la matriz completa, no para rellenar varias veces la misma posición de la matriz. Debes usar las variables i y j de tu bucle, si no, no tienen ningún sentido.

Genera un objeto Random y leete la documentación de la clase para que sepas como utilizarla. La API aqui: [URL="http://download.oracle.com/javase/1.4.2/docs/api/java/util/Random.html"]http://download.oracle.com/javase/1.4.2/docs/api/java/util/Random.html[/URL]
  #3 (permalink)  
Antiguo 15/07/2011, 08:09
Avatar de Payin  
Fecha de Ingreso: mayo-2007
Mensajes: 92
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: multiplicación de matrices

Tal como dice edjuradob no podés poner Doubles en un Int. Para tener un int a través de un random tenés que castearlo

Double ran = (int) (Math.Random() * MAXIMO_NUM_QUE_DESEES);

otra cosa, el i,j,k lo puedas declarar e instanciar directamente en el for, asi no te queda esa variable en medio del código

for (int i = 0; i < algo; i++) {

Etiquetas: matrices, netbeans
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:19.