El siguiente ejercicio lo manda Miguel Gómez. Diseñe un programa en java con un menú en el cual la primera opción capture dos matrices, la segunda opción realice la suma de las dos matrices, la tercera opción la resta, y la cuarta la salida del programa. Realice todas las validaciones correspondientes, entre ellas el tamaño de las dimensiones de las matrices.
CÓDIGO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | import java.util.*; public class Problema11copia2 { // Método principal que lanza la aplicación public static void main(String[] args) { // Se declara dos arreglos bidimensionales del tipo de dato entero int matriz1[][] = null; int matriz2[][] = null; int opcion; do { System.out.println("+---------------------------------------------+"); System.out.println("| 1. Generar matrices | 2. Sumar matrices |"); System.out.println("| 3. Restar matrices | 4. Salir del programa |"); System.out.println("+---------------------------------------------+"); Scanner sc = new Scanner(System.in); opcion = sc.nextInt(); // GENERAR MATRICES if (opcion == 1) { // Entrada de datos para la matriz 1 int fil1 = validarNumero("Ingrese el número de filas para la mtriz 1 : ", sc); int col1 = validarNumero("Ingrese el número de columnas para la mtriz 1: ", sc); // Entrada de datos para la matriz 2 int fil2 = validarNumero("Ingrese el número de filas para la mtriz 2 : ", sc); int col2 = validarNumero("Ingrese el número de columnas para la mtriz 2: ", sc); // LLenamos la matriz 1 de números aleatorios en el intervalo de 10 a 99 matriz1 = generarMatriz(fil1, col1, 10, 99); // LLenamos la matriz 2 de números aleatorios en el intervalo de 10 a 99 matriz2 = generarMatriz(fil2, col2, 10, 99); // Visualizamos el resultado System.out.println("\nResultado Matriz 1"); Listar(fil1, col1, matriz1, "m1"); System.out.println("\nResultado Matriz 2"); Listar(fil2, col2, matriz2, "m2"); } // SUMAR MATRICES if (opcion == 2) { if (matriz1 != null && matriz2 != null) { operarMatrices(matriz1, matriz2, '+'); } else System.err.println("Debe primero generar las matrices"); } // SUMAR MATRICES if (opcion == 3) { if (matriz1!=null && matriz2 !=null) { operarMatrices(matriz1, matriz2, '-'); } else System.err.println("Debe primero generar las matrices"); } System.out.println(""); } while (opcion != 4); System.out.println("Fin del programa"); } // Elaboramos un método que permita ingresar valores númericos positivos public static int validarNumero(String msj, Scanner sc) { int valor; while (true) { try { sc.nextLine(); System.out.print(msj); valor = sc.nextInt(); if (valor > 0) { break; // Corto el ciclo } else throw new Exception("NO se aceptan números negativos: " + valor); } catch (InputMismatchException e) { System.err.println("SOLO se aceptan valores númericos: " + sc.next()); } catch (Exception e) { System.err.println("" + e.getMessage()); } } return valor; } // Elaboramos un método que genere números de dos cifras public static int aleatorio(int min, int max) { return (int) ((max - min + 1) * Math.random() + min); } // Elaboramos un método que permita generar la matriz public static int[][] generarMatriz(int filas, int columnas, int min, int max) { //Declaramos un arreglo bidimensional de tipo entero int[][] matriz = new int[filas][columnas]; for (int i = 0; i < filas; i++) { // Recorremos las filas for (int j = 0; j < columnas; j++) { // Recorremos las columnas // El índice i lo usaremos para acceder a una fila y el índice j para acceder a una columna matriz[i][j] = aleatorio(min, max); // Asignamos un número aleatorio al elemento } } return matriz; // Retornamos la matriz al punto donde se hizo la llamada } // Elaboramos un método que permita imprimir la matriz public static void Listar(int filas, int columnas, int[][] matriz, String nombre) { for (int i = 0; i < filas; i++) { for (int j = 0; j < columnas; j++) System.out.print(nombre + " [" + i + "][" + j + "] = " + String.format("%-5s", matriz[i][j])); System.out.println(""); } } // Elaboramos un método que permita operar 2 matrices private static void operarMatrices(int[][] matriz1, int[][] matriz2, char operador) { // Creamos una matriz resultado con las mismas dimensiones de la matriz 1 y 2 int[][] resultado = new int[matriz1.length][matriz1[0].length]; // Si las dimensiones de las matrices son iguales (misma cantidad de filas y columnas) if ((matriz1.length == matriz2.length) && (matriz1[0].length == matriz2[0].length)) { // Recorremos los elementos for (int i = 0; i < matriz1.length; i++) { for (int j = 0; j < matriz1[i].length; j++) { if (operador == '+') resultado[i][j] = matriz1[i][j] + matriz2[i][j]; // Sumamos if (operador == '-') resultado[i][j] = matriz1[i][j] - matriz2[i][j]; // Restamos } } // Visualizamos el resultado System.out.println("El resultado de la " + operador + " es:"); // Al método listar le pasamos como parámetros: fil, col, matriz, nombre Listar(resultado.length, resultado[0].length, resultado, "m1" + operador + "m2"); } else // en el caso de no coincidir los tamaños System.err.println("No coinciden los tamaños de las matrices"); } } |
PROGRAMA
DESARROLLO TUS ALGORITMOS 🔥🔥
✅ 1. Envía tu algoritmo.
✅ 2. Indica en qué lenguaje de Programación lo deseas.
✅ 3. Para qué fecha lo quieres.
✅ 4. De que país eres (para tu forma de pago)
✅ 5. También se desarrollan al momento.
✅ 6. Los 3 primeros ejercicios son gratis.
🔸 Explico cada ejercicio que desarrollo en el código.
Cuenta Dcoder para más ejercicios de programación
Blog para novedades de programación
Tienda online para más recursos de programación
No hay comentarios, ¡cuéntame algo!
Me gustaría saber tu opinión. ¡Saludos!