Autor Tema: Formaciones multidimensionales Java (arrays) por qué primer índice es 0 CU00905C  (Leído 391 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
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. 

Citar
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


Código: [Seleccionar]
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 ;)
« última modificación: 15 de Agosto 2019, 20:41 de Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2492
    • Ver Perfil
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

 

Esto es un laboratorio de ideas...
Aprender a programar

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".