viernes, 24 de junio de 2016

Capítulo 44. Java: Arreglos, vectores, arrays...


Diario de un programador.- Dia 89

Arreglos, vectores, arrays...

Para mostrar la sintaxis de los arreglos en Java, me basaré en los ejemplos propuestos en su oportunidad para el lenguaje Small Basic (Capitulo 12) y puede que agregue algunos extras que se me ocurran en el camino.

La sintaxis para crear un arreglo dice así:

TipoDeDato nombreDelArreglo[] = new tipoDeDato[dimension]

TipoDeDato = Se refiere a que si será un arreglo de tipo int, float, etc.

nombreDelArreglo[] = Al igual que las variables, los arreglos necesitan un nombre y utilizan llaves de corchete.

new tipoDeDato[dimension] = Se crea un arreglo y se asigna la cantidad de elementos que puede contener[dimensión]. Por ejemplo, si la dimensión es de 5, entonces el arreglo puede contener solo 5 elementos.

Por ejemplo, para crear un arreglo de 4 elementos, se puede hacer así:

Int[] edades = new int[4];

El arreglo “edades” tiene 4 elementos.

A diferencia de Small Basic, el primer elemento del arreglo es cero. O sea que en este caso, el arreglo es...

edades[0]
edades[1]
edades[2]
edades[3]

Ahí están los 4 elementos del arreglo. Como se puede ver el primer elemento es cero y el último es N-1, donde N corresponde al número indicado en la dimensión del arreglo.

El ejemplo mostrado a continuación, será un promedio de 3 números, los cuales serán solicitados al usuario.

import java.util.Scanner;
public class ejemplo01 {
    public static void main(String[]args){
        Scanner ingreso = new Scanner(System.in);
        int suma = 0,promedio, i;
        int numero[] = new int[3];
       
        System.out.println("Ingresa 3 numeros.");
        for( i = 0; i < 3; i++){
            System.out.println("Elemento nro. " + (i+1));
            numero[i] = ingreso.nextInt();
            suma = suma + numero[i];
        }//fin for
        promedio = suma / 3;
       
        System.out.println("El promedio es: "+ promedio);
       
    }//fin main
}//fin class




Arreglos 1.1 (actualización Abril 2016)

En caso de que el programador quiera asignar  valores al arreglo, esto se puede realizar de la siguiente manera.

Sintaxis
tipoDeDato nombreArreglo[] = {dato1, dato2, dato3... datoN};

En el ejemplo del código anterior, esto quedaría así:

int numero[] = {8, 12, 7};

De esta forma, al estar asignados los valores a cada índice del arreglo, no se utiliza la línea “new int[dimension]”. Y el corchete no lleva un número que asigne la cantidad de elementos, ya que la cantidad de elementos corresponden a los asignados entre las llaves {}

Ejemplo:

public class ejemplo01 {
    public static void main(String[]args){
        int suma = 0,promedio, i;
        int numero[] = {8, 12, 7};
          
        for( i = 0; i < 3; i++){
            suma = suma + numero[i];
        }//fin for
        promedio = suma / 3;
       
        System.out.println("El promedio es: "+ promedio);
       
    }//fin main

}//fin class


En el siguiente ejemplo se solicita al usuario que ingrese un índice. Dependiendo de qué número se ingrese, se verá el nombre asociado a ese índice. El primer nombre del arreglo es “Gustavo”, el cual se encuentra en el índice cero. El siguiente el “Ximena”, nombre ubicado en el el índice 1 y por último, “Javiera”, en el índice 2.

import java.util.Scanner;
public class ejemplo01 {
    public static void main(String[]args){
        Scanner ingreso = new Scanner(System.in);
        String nombres[] = {"Gustavo", "Ximena", "Javiera"};
        int indice;
       
        System.out.println("Que indice consultaras?: ");
        System.out.println("Indices disponibles: 0, 1, 2");
        indice = ingreso.nextInt();
       
        switch(indice){
            case 0:
                System.out.println(nombres[0]);
                break;
            case 1:
                System.out.println(nombres[1]);
                break;
            case 2:
                System.out.println(nombres[2]);
                break;
            default:
                System.out.println("Opcion no es valida");
                break;
        }//fin switch
     
    }//fin main
}//fin class




Modificando los arreglos

Para modificar un dato de  un arreglo, simplemente hay que indicar el índice a modificar. Ejemplo

arreglo[] = {1, 2, 3, 4, 5};
arreglo[2] = 10;
arreglo[] = {1, 2, 10, 4, 5};

La segunda variable modifica el índice número 2 del arreglo y en la tercera variable se pude ver la modificación realizada. 

Ejemplo en un programa.

import java.util.Scanner;
public class ejemplo01 {
    public static void main(String[]args){
        Scanner ingreso = new Scanner(System.in);
        int numeros[] = {10, 20, 30};
        int indice;
       
        System.out.printf("Indice 0 = %d\nIndice 1 = %d\nIndice 2 = %d\n",
                numeros[0],numeros[1],numeros[2]);
       
        System.out.print("Que indice vas a cambiar: ");
        indice = ingreso.nextInt();
       
        System.out.print("Ingresa nuevo indice: ");
        numeros[indice] = ingreso.nextInt();
       
        System.out.println("\nIndice modificado!!!");
       
        System.out.printf("Indice 0 = %d\nIndice 1 = %d\nIndice 2 = %d\n",
                numeros[0],numeros[1],numeros[2]);
        
    }//fin main
}//fin class



Arreglos multidimensionales

Los arreglos también permiten añadirles más de un índice. Cuando un arreglo tiene más de un índice, se le conoce como arreglo multidimensional, siendo el arreglo de dos índices el de uso más común, el cual es conocido como matriz.
La sintaxis para un arreglo de dos dimensiones o matriz es la siguiente:

tipoDatos nombreArreglo[][] = new tipoDatos[dimension][dimension]

Como se puede ver, la cantidad de dimensiones del arreglo se puede apreciar por los corchetes que lleva.

Una matriz se caracteriza por estar formada por filas y columnas. Aquí un ejemplo:

public class ejemplo01 {
    public static void main(String[]args){

        String matriz[][] = new String[10][10];
        int fila, columna;
        for(fila = 0; fila < 10; fila++){
            for(columna = 0; columna < 10; columna++){
                matriz[fila][columna] = "#";
                System.out.print(matriz[fila][columna]);
            }
            System.out.print("\n");
        }
    }//fin main
}//fin class



En los siguientes enlaces se pueden apreciar códigos que muestran cómo crear y mostrar matrices y arreglos, además de realizar operaciones como sumar una matriz, cómo sumar un arreglo, cómo sumar filas y columnas a las matrices.



Eso es todo por ahora, si las matrices no quedaron muy claras, siempre se puede revisar el capitulo 12 donde quedó mejor explicado de que se trata. Como he dicho, en estos capítulos trataré de no extenderme mucho ya que es una materia ya vista. Solamente trataré de explicar la sintaxis en cada idioma.

Gustavo J. Cerda Nilo
Febrero 2016, última actualización Junio 2016




No hay comentarios:

Publicar un comentario

C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...