Autor Tema: Arrays multidimensionales en Java declaración recorrido con for diseño CU00905C  (Leído 2051 veces)

david82

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
Buenas tardes.

Esta es mi solución al ejercicio propuesto CU00905C del tutorial avanzado de programación Java:

Código: [Seleccionar]
package estandar;
import java.util.Scanner;

public class EntradaDeTeclado {
private String entrada;
private Scanner entradaTeclado;

public EntradaDeTeclado() {
entrada = "";
entradaTeclado=new Scanner(System.in);
}

public void setEntrada(){entrada = entradaTeclado.nextLine();}

public String getEntrada(){return entrada;}

}

Código: [Seleccionar]
import estandar.EntradaDeTeclado;

public class TestArrayPaisesYCiudades {
public static void main(String[] args) {
int i,j;
String paisesYCiudades[][]=new String[4][4];
EntradaDeTeclado entrada = new EntradaDeTeclado();

System.out.println("Introduzca cuatro paises:");
for(i=0;i<4;i++){
entrada.setEntrada();
paisesYCiudades[i][0]=entrada.getEntrada();
}
for(i=0;i<4;i++){
System.out.println("Introduzca tres ciudades para "+paisesYCiudades[i][0]);
for(j=1;j<4;j++){
entrada.setEntrada();
paisesYCiudades[i][j]=entrada.getEntrada();
}
}
System.out.println("El listado de ciudades por pais es:");
System.out.println();
for(i=0;i<4;i++){
for(j=0;j<4;j++)
System.out.println(paisesYCiudades[i][j]);
}
}

}

Una sugerencia adicional. En el curso dice:
Citar
Para obtener el número de filas de la matriz, podemos recurrir a la propiedad “length” de los arrays, de la siguiente manera:

int filas = matriz.length;

 

Para el caso del número de columnas sería de la siguiente forma :

int columnas = matriz[0].length;

Sin embargo, esto no es del todo cierto, debido a que, según leí, Java interpreta los arrays multidimensionales como instancias de vectores. Es decir que cada fila puede tener diferente número de elementos.

Por lo tanto debería decir:
Citar
int columnas = matriz[fila].length

Saludos!!! :)
« Última modificación: 20 de Septiembre 2017, 19:28 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Buenas, hago los mismos comentarios que para un ejercicio de otro compañero que acabo de revisar

El programa funciona correctamente pero creo que el planteamiento podría mejorarse.

Ahora mismo estás almacenando en el mismo array el nombre de los países y de las ciudades. Eso sería como tener en una misma caja peras y manzanas, cuando quizás es preferible que ambas cosas estén por separado.

Por ello una posible propuesta de solución alternativa se basaría en lo siguiente:

- Declarar un array pais[4] que almacene los cuatro países. De esta forma este array almacena solo ciudades.

- Declarar un array ciudad[4][3] donde almacene para cada país las tres ciudades correspondientes. De esta forma este array almacena sólo ciudades (para saber el país usaríamos el primer índice, y para saber la ciudad el segundo índice)

El ejercicio no pide que países y ciudades se almacenen en el mismo array, sólo pide que las ciudades se almacenen en un array multidimensional cuyo primer índice vaya asociado al número de país y el segundo índice vaya asociado al número de ciudad.

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".