Atendiendo a una de las numerosas peticiones que nos hacéis en los comentarios hoy vamos a ver cómo podemos calcular el número mayor y menor en una matriz además de su posición con Java.
Lo primero de todo será crear una matriz con los números. Hay que recordar que una matriz es un array de arrays la cual podemos inicializar de la siguiente manera:
int[][] matriz = {{29,23,13},{41,57,69},{17,28,39}};
Lo siguiente que haremos será definir dos variables en las que indicaremos cuál es el número mayor y cuál es el número menor.
int numeroMayor = matriz[0][0]; int numeroMenor = matriz[0][0];
Por defecto asumimos que el número mayor y el número menor se encuentran en la posición (0,o). Además vamos a crear otras dos variables que almacenen la posición en la que se encuentran almacenados.
String mayorPosicion = "0,0"; String menorPosicion = "0,0";
De igual manera que hacíamos con los números lo hacemos con sus posiciones e indicamos que las posiciones son la 0,0.
Ahora, como ya vimos en el ejemplo imprimir una matriz con Java, vamos a recorrer la matriz con dos bucles for. El primero hasta la longitud del array y el segundo por la longitud de los arrays de cada uno de los elementos del primer array.
La longitud del array la conseguimos mediante el campo
.length
El bucle doble nos quedaría de la siguiente forma:
for (int x=0;x<matriz.length;x++) { for (int y=0;y<matriz[x].length;y++) { // Acción } }
En cada iteración de los bucles podremos acceder a un elemento mediante las coordenadas x,y.
matriz[x][y]
Por lo que será el punto en el que realicemos las comprobaciones que serán:
- Si el número evaluado es mayor que el valor de
numeroMayor
, sustituiremos el valor por el valor actual, así como la variablemayorPosicion
. - Si el número evaluado es menor que el valor de
numeroMenor
, sustituiremos el valor por el valor actual, así como la variablemenorPosicion
.
De esta forma el código nos quedará de la siguiente forma:
for (int x=0;x<matriz.length;x++) { for (int y=0;y<matriz[x].length;y++) { if (matriz[x][y] > numeroMayor) { numeroMayor = matriz[x][y]; mayorPosicion = x + "," + y; } if (matriz[x][y] < numeroMenor) { numeroMenor = matriz[x][y]; menorPosicion = x + "," + y; } } }
Una vez que salgamos de los bucles ya tendremos el número mayor y menor en una matriz además de sus posiciones mediante código Java.
Ya solo nos quedará el volcar su contenido a la pantalla mediante un objeto System.out.
System.out.println("El número mayor de la matriz es " + numeroMayor + " en la posición " + mayorPosicion); System.out.println("El número menor de la matriz es " + numeroMenor + " en la posición " + menorPosicion);
Espero que os haya servido de utilidad el artículo.