miércoles, 25 de enero de 2017

Matrices: Crea una matriz en la que cada casilla sea la suma de su fila y su columna

Haz una función "generaMatriz" que cree una matriz del tamaño que se le pase como parámetro y, a continuación rellene cada casilla para que sea la suma de su posición (fila+columna).
  • matriz[fila][columna]=fila+columna
Crea otra función "imprimeMatriz" para imprimir por pantalla dicha matriz.

Desde la función principal:
  • LLama a la función "generaMatriz" para crear una matriz de 10x10
  • Llama a la función "imprimeMatriz" para mostrarla por pantalla


Ejemplo:
   0   1   2   3   4   5   6   7   8   9
   1   2   3   4   5   6   7   8   9  10
   2   3   4   5   6   7   8   9  10  11
   3   4   5   6   7   8   9  10  11  12
   4   5   6   7   8   9  10  11  12  13
   5   6   7   8   9  10  11  12  13  14
   6   7   8   9  10  11  12  13  14  15
   7   8   9  10  11  12  13  14  15  16
   8   9  10  11  12  13  14  15  16  17
   9  10  11  12  13  14  15  16  17  18


SOLUCIÓN EN JAVA:
package sumaposicionesarray;

public class SumaPosicionesArray {

    //Con esta función creo la matriz de tantas filas y columnas como me indiquen 
    //en los parámetros. Y a continuación pongo en cada casilla de dicha matriz el
    //resultado de sumar el número de fila y el número de columna en la que está.
    static int[][] generaMatriz(int filas, int columnas){
        int[][] matriz=new int[filas][columnas];
        int f,c;
        
        for(f=0 ; f < matriz.length ; f++){
            for (c=0 ; c < matriz[f].length ; c++){
                matriz[f][c]=f+c;
            }
        }
        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 imprimeMatriz(int[][] matriz){
        int filas, columnas;
        
        for (filas=0 ; filas < matriz.length ; filas++){
            for (columnas=0 ; columnas < matriz[filas].length ; columnas++){
                System.out.printf("%4d", matriz[columnas][filas]);
            }
            System.out.println();
        }
    }
    
    //Desde la función principal sólo tengo que hacer dos llamadas a las 
    //funciones creadas arriba para mostrar por pantalla la matriz generada
    public static void main(String[] args) {
        int[][] matriz;
        
        matriz=generaMatriz(10,10);
        imprimeMatriz(matriz);   
    }
}

No hay comentarios:

Publicar un comentario