sábado, 7 de diciembre de 2013

Arreglo Bidimensional o Matrices en Java

Un array en Java puede tener más de una dimensión. El caso más general son los arrays bidimensionales también llamados matrices o tablas. La dimensión de un array la determina el número de índices necesarios para acceder a sus elementos. Los vectores que hemos visto en otra entrada anterior son arrays unidimensionales porque solo utilizan un índice para acceder a cada elemento. Una matriz necesita dos índices para acceder a sus elementos. Gráficamente podemos representar una matriz como una tabla de n filas y m columnas cuyos elementos son todos del mismo tipo. 

La siguiente figura representa un array M de 3 filas y 5 columnas:


Para procesar ( recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for(), uno externo para controlar renglón y uno interno para controlar columna.

Ejemplo de un Arreglo Bidimensional.

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Arreglo_Bidimensional
{
    public static void main (String args[])
    {
        int arreglo1[][];
        int arreglo2[][];
        int arreglo3[][];
        int Nfilas, Mcolumnas;
        String entrada, entrada1, entrada2;
        
        JTextArea areaSalida = new JTextArea();
        areaSalida.setText("             #########################\n");
        areaSalida.append("                       Arreglo Bidimensional\n");
        areaSalida.append("             #########################\n\n");
        
        entrada = JOptionPane.showInputDialog("Introduce el Numero de Filas para el Arreglo");
        Nfilas = Integer.parseInt( entrada );
        
        entrada1 = JOptionPane.showInputDialog("Introduce el Numero de Columnas para el Arreglo");
        Mcolumnas = Integer.parseInt( entrada1 );
        
        arreglo1 = new int[Nfilas][Mcolumnas];
        arreglo2 = new int[Nfilas][Mcolumnas];
        arreglo3 = new int[Nfilas][Mcolumnas];
        
        areaSalida.append("Numero de filas son:\n  " + Nfilas);
        areaSalida.append("\nNumero de columnas son:\n  " + Mcolumnas + "\n");
        
        int i, j;
        areaSalida.append("Arreglo 1: \n");
        for(i = 0; i < Nfilas; i++)
        {
            for(j = 0; j < Mcolumnas; j++)
            {
                entrada2 = JOptionPane.showInputDialog("Introduzca el elemento de la fila " +(i)+ " y columna " +(j)+" del Arreglo1");
                arreglo1[i][j] = Integer.parseInt( entrada2 );
                areaSalida.append("  " + arreglo1[i][j] + "  - ");              
            }
            areaSalida.append(" \n");
        }
        
        areaSalida.append("Arreglo 2 : \n");
        for(i = 0; i < Nfilas; i++)
        {
            for(j = 0; j < Mcolumnas; j++)
            {
                entrada2 = JOptionPane.showInputDialog("Introduzca el elemento de la fila " +(i)+ " y columna " +(j)+" del Arreglo2");
                arreglo2[i][j] = Integer.parseInt( entrada2 );
                areaSalida.append("  " + arreglo2[i][j] + "  - ");
            }
            areaSalida.append("\n");
        }

        areaSalida.append("La suma del Arreglo 1 + Arreglo 2 = Arreglo 3 \n");
        for(i = 0; i < Nfilas; i++)
        {
            for(j = 0; j < Mcolumnas; j++)
            {
                arreglo3[i][j] = arreglo1[i][j] + arreglo2[i][j];
                areaSalida.append("  " + arreglo1[i][j] + "  +  " + arreglo2[i][j] + "  =  " + arreglo3[i][j] + "\n");
            }
            areaSalida.append("\n");
        }
        
        JOptionPane.showMessageDialog(null, areaSalida);
        }
}
Output:

1 comentario:


Entradas populares