Foro sobre Java SE > submatriz dentro de un amatriz
Buenas,
Esto realmente de Java tiene poco. Seria igual en cualquier lenguaje.
No te han especificado en el ejercicio que tipo de submatrices tienes que generar? cuadradas? de que tamano?
Que llevas hecho?. En que parte es en la que te pierdes?: crear y rellenar la matriz? crear las submatrices? escoger el valor del centro?
Un saludo,
¿Es ésta tu principal dificultad: cómo crear y llenar una matriz con números aleatorios?
public class Array2DTest {
public static void main(String[] args) {
final int[][] matriz = new int[9][9];
final Random random = new Random();
for (int idx = 0; idx < 9; idx++) {
for (int idy = 0; idy < 9; idy++) {
matriz[idx][idy] = random.nextInt();
System.out.println("idx: " + idx + " idy: " + idy + " valor= " + matriz[idx][idy]);
}
}
}
}
Te sugiero que contestes con detalle a las preguntas que te ha hecho @UnoPorAhi, o cierro este hilo.
hola
listo lo que llevo hecho es esto y en si lo que me piden es que genere una matriz aleatorea de 9x9 y la divida en submatrices y dentro de cada submatriz diga cual es el numero del centro, en esa parte es que me pierdo y he buscado como hacer la pero no he encontrado mucha información.
/**
* @(#)Submatriz.java
*
* @author
* @version 1.00 2013/8/22
*/
import java.io.*;
public class Submatriz {
static int leerInt()
{
String s=" ";int dato=0;
try
{
BufferedReader bf=new
BufferedReader(new InputStreamReader(System.in));
s=bf.readLine();
dato=Integer.parseInt(s);
}
catch (IOException e){}
return dato;
}
public static int A[][];
public Submatriz(int m, int n)
{
A=new int[m][n];
}
public void cargar(int x[][], int s, int t)
{
for(int i=0,j;i<s;i++)
for(j=0;j<t;j++)
x[i][j]=(int)(Math.random()*10);
}
public void imprimir (int x[][],int s, int t){
for(int i=0,j;i<s;i++){
for(j=0;j<t;j++)
System.out.print("\t"+x[i][j]);
System.out.println();
}
System.out.println();
}
public static void main(String args[])
{
int m,n;
System.out.print("Nº filas de la matriz a: ");
m=leerInt();
System.out.print("Nº columnas de la matriz a: ");
n=leerInt();
Submatriz obmm = new Submatriz(m,n);
obmm.cargar(A,m,n);
System.out.println("Matriz A: ");
obmm.imprimir(A,m,n);
}
}
Sobre cómo rellenar una matriz con números aleatorios, ya tienes un ejemplo más arriba.
Supongo que, tratándose de una matriz cuadrada, te piden que la dividas de forma simple en 9 matrices cuadradas de tres elementos cada una.
En valor central de cada matriz te lo dan los índices x.y que sean iguales.
Creo que lo mejor sería que dibujases en papel una matriz de 9x9 con los índices x,y en los lados (recuerda que en Java los índices de los arrays empiezan en cero), para "ver" mejor lo que debes conseguir.
Divides esa matriz en cuadrados de 3 elementos, y ya tienes que ver el patrón sobre el que construir el método para extraer cada matriz de 3x3 y para obtener el central.
Resuelve el problema en el papel, y verás como lo pasas a código con facilidad.
Yo sigo sin entender. Vuelves a decir:
Y vuelvo a preguntar: en que parte te pierdes exactamente?
En el código que posteas no veo que estés creando una matriz de 9x9 sino que preguntas al usuario el tamaño de la matriz en filas y columnas y rellenas aleatoriamente.
Además, aunque la clase se llama Submatriz, no veo que en ningún momento intentes dividir en submatrices. Es eso lo que no sabes hacer y ni siquiera has intentado empezar? Por favor, si quieres respuestas concretas, se detallado. No podemos adivinar tu problema...
Un saludo,
hola
tengo un inconveniente me piden crear una matriz 9*9 que cargue números aleatoria mente,despues dividirla en submatricez, y en cada submatricez escoger el numero del centro, y es q no entiendo mucho de java agradeceria si alguien me podria asesorar