Mes ejercicios de matrices resueltos

 

2.- Crear una matriz de 5 filas y n columnas (se pide al usuario). Rellenarlo con números aleatorios entre 0 y 10.


import java.util.Scanner;

 

public class Ejercicio_2 {

 

    

    public static void main(String[] args) {

         

        Scanner sn=new Scanner(System.in);

         

        System.out.println("Escriba un numero de columnas");

        int columnas=sn.nextInt();

         

        int matriz[][]=new int[5][columnas];

         

        for(int i=0;i<matriz.length;i++){

            for(int j=0;j<matriz[0].length;j++){

                matriz[i][j]=generaNumAleatorio(0,9);

                System.out.print(matriz[i][j]+" ");

            }

            System.out.println("");

             

        }

         

    }

     

    public static int generaNumAleatorio(int minimo,int maximo){

         

        return (int)Math.floor(Math.random()*(minimo-(maximo+1))+(maximo+1));

         

    }

     













3) Crear dos matrices de nxn y sumar sus valores, los resultados se deben almacenar en otra matriz. Los valores y la longitud, seran insertados por el usuario. Mostrar las matrices originales y el resultado.


import java.util.Scanner;

 

public class Ejercicio_3 {

 

    public static void main(String[] args) {

         

        Scanner sn=new Scanner(System.in);

         

        System.out.println("Escribe un tamaño");

        int tamanio=sn.nextInt();

         

        int matriz1[][]=new int[tamanio][tamanio];

        int matriz2[][]=new int[tamanio][tamanio];

         

        int resultado[][]=new int[tamanio][tamanio];

         

        for(int i=0;i<matriz1.length;i++){

            for(int j=0;j<matriz1[0].length;j++){

                 

                System.out.println("Escriba el valor para la fila "+i+" y columna "+j+" de la matriz 1");

                matriz1[i][j]=sn.nextInt();

                System.out.println("Escriba el valor para la fila "+i+" y columna "+j+" de la matriz 2");

                matriz2[i][j]=sn.nextInt();

                 

                resultado[i][j]=matriz1[i][j]+matriz2[i][j];

            }

        }

         

        System.out.println("Matriz 1");

        muestraMatriz(matriz1);

         

        System.out.println("Matriz 2");

        muestraMatriz(matriz2);

         

        System.out.println("Matriz resultante");

        muestraMatriz(resultado);

                 

    }

     

    public static void muestraMatriz(int[][] matriz){

     

        for(int i=0;i<matriz.length;i++){

            for(int j=0;j<matriz[0].length;j++){

                System.out.print(matriz[i][j]+" ");

            }

            System.out.println("");

        }

         

    }

     

}





4) Nos piden crear una matriz de 4×4 de números enteros que inicialmente esta vacía, nos piden hacer un menú con estas opciones:

  • Rellenar TODA la matriz de números, debes pedírselo al usuario.

  • Suma de una fila que se pedirá al usuario (controlar que elija una correcta)

  • Suma de una columna que se pedirá al usuario (controlar que elija una correcta)

  • Sumar la diagonal principal (ver ejemplo)

  • Sumar la diagonal inversa (ver ejemplo)

  • La media de todos los valores de la matriz

IMPORTANTE: hasta que no se haga la primera opción, el resto de opciones no se deberán de ejecutar, simplemente mostrar un mensaje donde diga que debes rellenar la matriz.


public class Ejercicio_matrices_DDR_04 {

 

    public static void main(String[] args) {

 

        Scanner sn = new Scanner(System.in);

 

        //Matriz cuadrada de 4x4

        int matriz[][] = new int[4][4];

 

        //Variables utilizadas

        boolean salir = false;

        int opcion, fila, columna;

 

        //Utilizado para indicar si hemos entrado en la 1ª opcion

        boolean rellenado = false;

 

        //Menu

        do {

 

            //Mensajes del menu

            System.out.println("Menu");

            System.out.println("1. Rellenar Matriz");

            System.out.println("2. Sumar fila");

            System.out.println("3. Sumar columna");

            System.out.println("4. Suma diagonal principal");

            System.out.println("5. Suma diagonal inversa");

            System.out.println("6. Media elementos");

            System.out.println("7. Salir");

            System.out.println("Elije una opcion");

            opcion = sn.nextInt();

 

            switch (opcion) {

                case 1:

 

                    rellenarMatriz(sn, matriz);

 

                    //Ahora si podemos acceder al resto de opciones

                    rellenado = true;

 

                    break;

                case 2:

 

                    if (rellenado) {

 

                        //Validamos la fila

                        do {

 

                            System.out.println("Elige una fila");

                            fila = sn.nextInt();

 

                        } while (!(fila >= 0 && fila < matriz.length));

 

                        System.out.println("La suma de los valores de la fila " + fila

                                + " es: " + sumaFila(matriz, fila));

 

                    } else {

                        System.out.println("Debes rellenar la matriz primero");

                    }

 

                    break;

                case 3:

 

                    if (rellenado) {

 

                        //Validamos la colunma

                        do {

 

                            System.out.println("Elige una fila");

                            columna = sn.nextInt();

 

                        } while (!(columna >= 0 && columna < matriz.length));

 

                        System.out.println("La suma de los valores de la columna " + columna

                                + " es: " + sumaColumna(matriz, columna));

 

                    } else {

                        System.out.println("Debes rellenar la matriz primero");

                    }

 

                    break;

                case 4:

 

                    if (rellenado) {

 

                        System.out.println("La suma de la diagonal principal es: " + sumaDiagonalPrinc(matriz));

 

                    } else {

                        System.out.println("Debes rellenar la matriz primero");

                    }

 

                    break;

                case 5:

 

                    if (rellenado) {

 

                        System.out.println("La suma de la diagonal inversa es: " + sumaDiagonalInversa(matriz));

 

                    } else {

                        System.out.println("Debes rellenar la matriz primero");

                    }

 

                    break;

                case 6:

 

                    if (rellenado) {

 

                        System.out.println("La media de los valores de la "

                                + "matriz es de " + media(matriz));

 

                    } else {

                        System.out.println("Debes rellenar la matriz primero");

                    }

 

                    break;

                case 7:

                    salir = true;

                    break;

                default:

                    System.out.println("Tienes que meter un valor entre 1 y 7");

 

            }

 

        } while (!salir);

 

        System.out.println("FIN");

 

    }

 

    /**

     * Rellena la matriz con valores insertados por el usuario

     *

     * @param sn

     * @param matriz

     */

    public static void rellenarMatriz(Scanner sn, int[][] matriz) {

 

        for (int i = 0; i < matriz.length; i++) {

            for (int j = 0; j < matriz[0].length; j++) {

 

                System.out.println("Escribe un numero en la posicion " + i + " " + j);

                matriz[i][j] = sn.nextInt();

 

            }

        }

 

    }

 

    /**

     * Suma los valores de una determinada fila

     *

     * @param matriz

     * @param fila

     * @return

     */

    public static int sumaFila(int[][] matriz, int fila) {

 

        int suma = 0;

 

        for (int j = 0; j < matriz.length; j++) {

            suma += matriz[fila][j];

        }

 

        return suma;

 

    }

 

    /**

     * Suma los valores de una determinada columna

     *

     * @param matriz

     * @param columna

     * @return

     */

    public static int sumaColumna(int[][] matriz, int columna) {

 

        int suma = 0;

 

        for (int i = 0; i < matriz.length; i++) {

            suma += matriz[i][columna];

        }

 

        return suma;

 

    }

 

    /**

     * Suma los valores de la diagonal principal de la matriz

     *

     * @param matriz

     * @return

     */

    public static int sumaDiagonalPrinc(int[][] matriz) {

 

        int suma = 0;

 

        for (int i = 0, j = 0; i < matriz.length; i++, j++) {

            suma += matriz[i][j];

        }

 

        return suma;

 

    }

 

    /**

     * Suma los valores de la diagonal inversa de la matriz

     *

     * @param matriz

     * @return

     */

    public static int sumaDiagonalInversa(int[][] matriz) {

 

        int suma = 0;

 

        for (int i = 0, j = 3; i < matriz.length; i++, j--) {

            suma += matriz[i][j];

        }

 

        return suma;

 

    }

 

    /**

     * Media de todos los elementos de la matriz

     *

     * @param matriz

     * @return

     */

    public static double media(int[][] matriz) {

 

        double suma = 0, media;

 

        for (int i = 0; i < matriz.length; i++) {

            for (int j = 0; j < matriz[0].length; j++) {

                suma += matriz[i][j];

            }

        }

        media = suma / (matriz.length * matriz.length);

        return media;

 

    }

 

}


Comentarios

Publicar un comentario

Entradas populares de este blog

Proyecto número dos