Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 27 de Noviembre 2018, 17:02
-
Hola Dejo una posible solución al ejercicio CU00905C del curso online de programación Java nivel avanzado. Arrays (arreglos) multidimensionales en Java. Declaración y uso.
EJERCICIO
Crea un programa que pida por pantalla cuatro países y a continuación tres ciudades de cada uno de estos países. Los nombres de ciudades deben almacenarse en un array multidimensional cuyo primer índice sea el número asignado a cada país y el segundo índice el número asignado a cada ciudad.
Ejemplo de resultados que debe mostrar el programa:
País: Argentina Ciudades: Buenos Aires Cordoba La Plata
País: España Ciudades: Madrid Lugo Sevilla
País: Francia Ciudades: Paris Niza Lyon
País: Italia Ciudades: Roma Napoles Sicilia
Mi solucion:
Codigo del ejercicio CU00905C clase PaisesYCiudades
import java.util.Scanner;
public class PaisesYCiudades {
public static void main(String arg[ ]) {
Scanner entrada=new Scanner(System.in);
String entradaUsuario="";
int pais=4,ciudad =4;
String[][] paisCiudades=new String[pais][ciudad];
int i=0;//Indice para los paises
do{
int z=1;//Indice para las ciudades se comienza en el indice n,1 porque el indice n,0 es el de los paises
System.out.print("Entre el nombre de un pais: ");
entradaUsuario=entrada.nextLine();
paisCiudades[i][0]=entradaUsuario;
do{
System.out.print("Entre el nombre de una ciudad de "+paisCiudades[i][0]+": ");
entradaUsuario=entrada.nextLine();
paisCiudades[i][z]=entradaUsuario;
z++;// Se incrementa el indice de la ciudad
}while(z<ciudad);
System.out.print('\u000C');
i++;//Incremeto del indice del Pais
}while(i<pais);
//Presentar paises y cuidades en pantalla
i=0;
System.out.print('\u000C');
do{
int z=1;//Indice para las ciudades se comienza en el indice n,1 porque el indice n,0 es de el de los paises
System.out.print("Pais: "+paisCiudades[i][0]+"\tCiudades :\t");
do{
System.out.print(paisCiudades[i][z]+"\t");
z++;
}while(z<ciudad);
System.out.print("\n");
i++;//Incremeto del indice del Pais
}while(i<pais);
}//Fin del main
}//Fin de la Clase
Gracias ;)
-
Buenas, para quien revise este ejercicio, algunos comentarios. La idea aquí era mantener un número asociado a un país, p.ej. Argentina <-0, España <-1, Francia <-2, Italia <-3, etc. y cada ciudad de cada país otro número dentro de un array multidimensional. Así Ciudad[0][0] sería por ejemplo Buenos Aires, que es la primera ciudad del primer país, Ciudad[0][1] sería Córdoba, Ciudad[0][2] sería La Plata, etc.. Cuando se trabaja con arrays, salvo circunstancias muy concretas, siempre se usa el cero como primer índice del array.
Por esto no veo correcto lo que se comenta en el código: "//Indice para las ciudades se comienza en el indice n,1 porque el indice n,0 es el de los paises"
El planteamiento no parece cumplir con lo que pide el ejercicio. Puede verse una solución correcta en https://aprenderaprogramar.com/foros/index.php?topic=5667.0
Salu2