Crea una función que en primer lugar genere esta matriz: 0 1 2 3 4 5 6 7 8 9 10 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0Como ves la primera fila y la primera columna tienes valores del 1 al 10. A continuación rellena los valores centrales con el resultado de multiplicar el número que aparezca en la primera fila por el número que aparezca en la primera columna, de tal forma que quede esto:
0 1 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7 8 9 10 2 2 4 6 8 10 12 14 16 18 20 3 3 6 9 12 15 18 21 24 27 30 4 4 8 12 16 20 24 28 32 36 40 5 5 10 15 20 25 30 35 40 45 50 6 6 12 18 24 30 36 42 48 54 60 7 7 14 21 28 35 42 49 56 63 70 8 8 16 24 32 40 48 56 64 72 80 9 9 18 27 36 45 54 63 72 81 90 10 10 20 30 40 50 60 70 80 90 100
SOLUCIÓN EN JAVA:
package matricestablasmultiplicar; public class MatricesTablasMultiplicar { static int[][] generaMatriz(int filas, int columnas){ int i,j; int[][] matriz = new int[filas][columnas]; //Relleno la primera fila y la primera columna de la matriz for (i=0 ; i < matriz.length ; i++){ matriz[i][0]=i; matriz[0][i]=i; } //Ahora relleno el resto de la matriz for (i=1 ; i < matriz.length ; i++){ for (j=1 ; j < matriz[i].length ; j++){ matriz[i][j]=i*j; } } return matriz; } //Con esta función hacemos un recorrido por la matriz para mostrar todas sus //casillas, utilizo la salida con formato "%4d" para que todos los valores salgan //tabulados con un ancho de 4 carácteres. static void muestraMatriz(int[][] matriz){ int i,j; for (i=0; i < matriz.length ; i++){ for (j=0 ; j < matriz[i].length ; j++){ System.out.printf("%4d", matriz[i][j]); } System.out.println(); } } public static void main(String[] args) { int[][] matriz=new int[11][11]; matriz=generaMatriz(11,11); muestraMatriz(matriz); } }
podrias explicarme para que sirve esto
ResponderEliminarpublic static void main(String[] args) {
int[][] matriz=new int[11][11];
matriz=generaMatriz(11,11);
muestraMatriz(matriz);
llama al metodo generar matriz de 11 fila y 11 columnas y el resultado lo vuelca en la matriz del main
EliminarDe esta manera creo que es mas optimo, o ese es mi planteamiento, si me equivoco que me corrijan, asi es como se aprende, ensayo y error
public static void main(String[] args) {
int[][] tablas = new int[11][11];
generaMatriz(tablas);
muestraMatriz(tablas);
}
public static void generaMatriz(int[][] tablas) {
int i, j;
// relleno el resto de la matriz
for (i = 0; i < tablas.length; i++) {
for (j = 0; j < tablas[i].length; j++) {
tablas[i][j] = i * j;
}
}
}
La verada es que no entiendo para que declaras una variable en el main y despues otra mas en el metodo generarMatriz, con pasar la matriz del main como parametro en el metodo y dicho metodo hacerlo tipo void puesto que no tendrias que retornar nada, te ahorras una matriz, por consiguiente menos recursos de memoria, no es que esté mal el ejercicio pero no es precisamente optimo ya que declaras contenido por duplicado pero no esta mal
ResponderEliminar