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: pedro,, en 14 de Diciembre 2016, 01:10

Título: Java. Ejercicio arrays multidimensionales código resuelto declaración CU00905C#
Publicado por: pedro,, en 14 de Diciembre 2016, 01:10
Buenas.

Aquí dejo otra posible solución al ejercicio del tema CU00905C del tutorial de programación orientada a objetos avanzada.

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.

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

public class Ejercicio {

public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
String[][] paises = new String[4][4];

for(int i = 0, j = 0; i < paises.length; i++) {
System.out.print("Introduzca un país: ");
paises[i][j] = entrada.nextLine();
for(j = 1; j < paises[i].length; j++) {
System.out.print("Introduzca ciudad [" + j + "]: ");
paises[i][j] = entrada.nextLine();
}
j = 0;
}
entrada.close();
for(int i = 0, j = 0; i < paises.length; i++) {
System.out.print("Las ciudades de " + paises[i][j] + " introducidas son: ");
for(j = 1; j < paises[i].length; j++) {
if(j == (paises[i].length-1)) {
System.out.print(" y " + paises[i][j] + ".");
} else if(j == (paises[i].length-2)){
System.out.print( paises[i][j]);
} else {
System.out.print( paises[i][j] + ", ");
}
}
j = 0;
System.out.println();
}
}

}

Saludos. ;D
Título: Re:Java. Ejercicio arrays multidimensionales. CU00905C
Publicado por: ESOJ en 14 de Diciembre 2016, 07:51
Buenos días.

Otra forma de hacerlo podría ser :
Código: [Seleccionar]
import java.util.Scanner;
public class Paises {

    public static void main(String args []) {
        String [][] arrMulti =new String[4][4];
        String ax="";
        Scanner ingresoTeclado = new Scanner(System.in);

        for (int i=0;i<4;i++){
            System.out.print("Introduce el nombre del pais "+(i+1)+" : ");
            arrMulti[i][0] = ingresoTeclado.nextLine()+":";         
        }
        for (int j=0;j<4;j++){
            for (int i=1;i<4;i++){
                System.out.print("Introduce el nombre de la ciudad "+(i)+" del pais "+(j+1)+" : ");
                arrMulti[j][i] = ingresoTeclado.nextLine();             
            }
        }
        for(int i=0; i<4; i++){
            for(int j=0; j<4; j++){
                ax+= arrMulti[i][j]+"        ";
            }
            ax+="\n";
        }
        System.out.print(ax);
    }
}   
Un saludo
Título: Re:Java. Ejercicio arrays multidimensionales código resuelto declaración CU00905C#
Publicado por: Ogramar en 10 de Agosto 2020, 18:53
Buenas, para quien revise este ejercicio funciona correctamente. Hay una cuestión que no me parece del todo correcta, pero que también está relacionada con que habría que mejorar el enunciado para evitar que se haga así. Lo que no me parece correcto es almacenar en el mismo array como elemento [ i ][0] el nombre del país, por ejemplo Argentina, y que luego [ i ][1], [ i ][2], [ i ][3] sean ciudades de argentina. ¿Por qué? Porque lo más lógico es que todos los elementos de un array sean de la misma naturaleza, es decir, que sean o bien países, o bien ciudades, pero no algunos elementos de un tipo y otros de otro.
Esto podría solucionarse creando un array de países, como pais[0], pais[1], pais[2], pais[3] y luego el array de ciudades ciudad[0][0], ciudad[0][1], ciudad[0][2] tendría las tres ciudades del país cero.

En este caso declararíamos el array de pais por un lado y String[][] paisCiudad = new String[4][3]; teniendo la primera dimensión 4 elementos (cuatro países) y la segunda dimensión 3 elementos (3 ciudades para cada país).

Salu2