Programacion en Java: Arrays Bidimensionales

Arreglos ARRAYS – MATRICES

Grupo de variables con el mismo nombre y tipo. La manera de referirse a cada uno de los elementos de una matriz es mediante su índice. Los tipos de la matrices son los mismos que el de las variables. Tenemos 2 tipos de array, unidimensional y bidimensional.

UNIDIMENSIONALES:

tipo nombre_array[]=new tipo[nº];

tipo nombre_array[]={valores};

BIDIMENSIONALES:

tipo nombre_array[][]=new tipo[nº][nº];

tipo nombre_array[][]={valores};

Los arrays de Java (vectores, matrices, hiper-matrices de más de dos dimensiones) se tratan como objetos de una clase predefinida. Los arrays son objetos, pero con algunas características propias.

Los arrays pueden ser asignados a objetos de la clase Object y los métodos de Object pueden ser utilizados con arrays.

Inicialización de arrays:

1. Se pueden inicializar con valores entre llaves {…} separados por comas.

2. También los arrays de objetos se pueden inicializar con varias llamadas a new dentro de unas llaves {…}.

3. Si se igualan dos referencias a un array no se copia el array, sino que se tiene un array con dos nombres, apuntando al mismo y único objeto.

4. Creación del array con el operador new:

x = new double[100];

5. Se pueden unir en una sola:

double[] x = new double[100];

Arrays bidimensionales

Los arrays bidimensionales de Java se crean de un modo muy similar al de C++ (con reserva dinámica de memoria).

En Java una matriz es un vector de vectores fila, o más en concreto un vector de referencias a los vectores fila. Con este esquema, cada fila podría tener un número de elementos diferente.

Una matriz se puede crear directamente en la forma:

int [][] mat = new int[3][4];

o bien se puede crear de modo dinámico dando los siguientes pasos:

1. Crear la referencia indicando con un doble corchete que es una referencia a matriz,

int[][] mat;

2. Crear el vector de referencias a las filas,

mat = new int[nfilas][];

3. Reservar memoria para los vectores correspondientes a las filas,

for (int i=0; i<nfilas; i++);

mat[i] = new int[ncols];

A continuación se presentan algunos ejemplos de creación de arrays bidimensionales:

// crear una matriz 3×3

// se inicializan a cero

double mat[][] = new double[3][3];

int [][] b = {{1, 2, 3}, {4, 5, 6}, // esta coma es permitida

};

int c = new[3][]; // se crea el array de referencias a arrays

c[0] = new int[5];

c[1] = new int[4];

c[2] = new int[8];

En el caso de una matriz b, b.length es el número de filas y b[0].length es el número de columnas (de la fila 0).

About these ads

8 comentarios »

  1. Jose Luis Said:

    Hola, tengo un problema con un programa que tengo que hacer.
    Se supone que es una tabla, la cual voy a realizar con un arreglo. El arreglo debe tener 20 filas y 51 columnas. La primera fila tengo que llenarla para que las demas filas salgan en automático con otro código que viene abajo del primer for.
    Cuando termino de llenar el primer renglón, me marca un error en la linea 18, dentro del primer for.

    import java.util.*;
    public class Control{
    public static void main (String [] args){
    Scanner a= new Scanner(System.in);
    Scanner b= new Scanner (System.in);
    int renglon=50; //Es el numero de columnas de tabla
    System.out.println(“Bienvenido. Este programa calcula la producción”);
    System.out.println(“Introduzca cuantos productos quiere terminar:”);
    int productos = a.nextInt(); //Es el numero de semanas; en este caso 20. Dice que cada 20 productos se manda a produccción uno
    int [] [] tabla = new int [productos] [renglon]; //Se crea el arreglo
    //int [] [] resultados = new int [productos] [/*pendiente*/]; //Este sería el arreglo para mostrar las sumas de toda la tabla
    System.out.println(“Los valores serán introducidos por filas”);

    //A partir de aquí se introducen los valores del primer renglon
    for(int i=0;i<=renglon;i++){
    System.out.println(“Introduzca el valor “+i+” de la fila 0″);
    int valor=b.nextInt();
    tabla [0][i]=valor; //Con la correción, dice que el problema es aquí
    }

    for(int i=1;i<=renglon;i++){
    tabla [i][0]=tabla[i-1][renglon] / productos; //Aquí damos el primer valor de la primer columna de la siguiente fila
    for(int e=0;e<=productos;e++){
    tabla [i][e+1]=tabla [i-1][e-1]; //Aqui comenzamos a mover los valores de la fila anterior
    }
    //a la nueva fila. Si el valor estaba en la columna 3 de la anterior fila,
    } //ahora estará en la columna 4 de la nueva fila

    System.out.println(“La tabla es la siguiente”);
    for(int j=0;j<=productos;j++){ //Comienza a mostrar los valores de la tabla
    for(int k=0;k<=renglon;k++)
    System.out.println(tabla[j][k] + “\t”);
    System.out.println();
    }
    } //Las sumas que quiere en otra tabla, las hacemos en otro arreglo, pero primero
    } //quiero ver cuál es mi error. Segun esto compila, pero cuando termino de introducir
    //los valores, me marca un error segun en el arreglo.Parece ser que es en el tamaño,
    //pero lo he cambiado y sale lo mismo

  2. elpapa Said:

    1. Realizar un programa para la aprobación/rechazo de productos terminados:
    a) Información necesaria para cada producto:
    Tipo de producto
    Nombre
    Lote
    Fecha producción (elaboración)
    Fecha muestreo
    Fecha inicio de análisis físico-químico — Nombre del analista
    Fecha fin análisis físico-químico (2 días después de inicio)
    Fecha inicio análisis microbiológico — Nombre del analista
    Fecha fin análisis microbiológico (3 días después de inicio)
    Decisión análisis físico-químico (Cuarentena/Aprobado/Rechazado)
    Decisión análisis microbiológico (Cuarentena/Aprobado/Rechazado)
    Decisión final (Cuarentena/Aprobado/Rechazado)
    -Mientras esté en cuarentena en uno de los 2 análisis: Cuarentena;
    Si en ambos análisis está aprobado: Aprobado;
    Si está rechazado en uno de los 2 análisis: Rechazado).

    b) La empresa elabora los siguientes productos:

    NOMBRE PRESENTACION CANTIDAD x PRESENTACION ANALISIS REQUERIDOS
    Desriz Tubos 100g FQ
    Baño de crema Tubos 50g FQ + M
    Crema fijadora Tubos 50g FQ + M
    Ampolla 1 Ampollas 5 ml FQ + M
    Ampolla 2 Ampollas 5ml FQ + M
    Polvo decolorante Tarros 30g FQ
    Polvo decolorante 2 Tarros 30g FQ

    c) La empresa cuenta con 3 analistas

    Importante:
    • Agregue mensajes de bienvenida, de instrucciones y de error donde sea necesario

    Evaluación:
    • Informe (introducción, código impreso, explicación del funcionamiento del programa – manual del usuario, justificación del uso de recursos no vistos en clase, explicación breve de dichos recursos, conclusiones y recomendaciones)

  3. elpapa Said:

    necesitooo ayudaa con ese programaaa por favor.. ese es mi correo alguen me puede ayudar tres_du@hotmai.com

  4. Daniel Krals Said:

    crear un programa que almacene en una matriz el numero de alumnos con el que cuenta una academia; ordenados en funcion del nivel y del idioma que se estudia.
    se tiene 3 filas que representan al nivel basico ,medio y de perfeccionamiento y 4columnas
    en las que se figuran los idiomas(0.ingles,1.frances,2.aleman,3.ruso)se pide re alizar la declaracion dela matriz que la permita al usurio asignar la cantidad de estudiantes por curso y nivel

    Necesito ayuda con este programita xq es urgente

  5. Alva Said:

    I am regular reader, how are you everybody?
    This paragraph posted at this web page is genuinely fastidious.

  6. jean gonzalez Said:

    La cafeteria EL CHAO (que tiene 15 mesas) necesita un programa que tenga las siguientes opciones:

    1- Agregar plato: en esta opcion se indicara que plato se va a servir, la cantidad, el precio y la mesa.

    2- LIstado de mesas disponibles: en esta opcion me apareceran las mesas que estan vacias es decir sin ningun consumo.

    3- Listado de mesas ocupadas.

    4- Detalle de mesa ocupada: donde al digitar el numero de una mesa ocupada, aparece todo lo que esta consumiendo la mesa, con sus precios y un total de lo que lleva consumido al final.

    5- Cerrar Mesa: en esta opcion muestra el total que va a pagar el cliente que esta en la mesa y al procesar este paso esta mesa aparece como disponible.

    6- Resumen diario: En esta opcion me dara un listado con todas las ventas realizadas en el dia, el total de dinero que se cobro y para poder procesar esta opcion todas las mesas deben estar cerradas.

    7- Salir: no se puede salir si hay mesas abiertas o si no se ha sacado el resumen diario.

    es un proyecto final de cuatrimestre me pueden explicar como hacerlo por favor.

  7. Cindy Katherine Chavez Vargas Said:

    Netbeans: Hola tengo un problema con mi matriz la he elevado a “e”(ingresada desde teclado) usando el metodo math.pow pero no funciona habla otra forma de elevarlo y me gustaria hacer como haria el codigo para que el resultado de esa matriz pueda mostrarme los caminos por hallar lo se hacer mostralo no por ejemplo:
    Camino 1: abcda
    Camino 2. acda
    Camino 3 :aecda
    etc

    Gracias por su comprension y tiempo.
    Atte:
    Chavez Vargas Cindy
    Estudiante de ing sistemas UPCI
    Lima – Peru

    • binarytech Said:

      Hola,Chavez Vargas Cindy me gustarìa que me explicaras que intentas hacer en tu problema, o mejor aùn escribir el problema que te asignaron para verficar cuál opción es mejor.. (no me queda claro que intenta resolver)


{ RSS feed for comments on this post} · { TrackBack URI }

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: