Está en la página 1de 5

Programacin Orientada a Objetos Unidad I

Prctica No. 3
ARREGLOS BIDIMENSIONALES

OBJETIVO
El estudiante conocer la representacin interna de los arreglos bidimensionales y
ser capaz de aplicarlos al desarrollar aplicaciones de software.

FUNDAMENTO TEORICO

Arreglo. Es una coleccin lineal de elementos, ya que cada uno de ellos tiene
un nico predecesor y un nico sucesor, con excepcin del primero y del ltimo.
Es una coleccin finita, ordenada y homognea de datos.
Finita: se define una capacidad mxima para el arreglo
Ordenada: permite hacer referencia al primer elemento, al segundo
elemento y as hasta el ensimo elemento que forman al arreglo.
Homognea: todos los componentes del arreglo son del mismo tipo de
datos.
En java, Se define como un conjunto de datos del mismo tipo organizados en dos
o ms columnas y uno o ms renglones, es decir es una matriz o una tabla. Los
arreglos con dos dimensiones se utilizan a menudo para representar tablas de
valores, que constan de informacin ordenada en filas y columnas.
Los arreglos son objetos, por lo que se consideran como tipos de
referencia.
Los elementos de un arreglo en java pueden ser tipos primitivos o de
referencias (incluyendo arreglos).
Para identificar un elemento especifico de una tabla, se deben especificar
los ndices.
Por convencin, el primer ndice indica la fila del elemento y el segundo, su
columna. Todos los elementos de un arreglo deben ser del mismo tipo.
En J ava los arreglos bidimensionales son arreglos de arreglos.

Declaracin y Creacin de Arreglos Bidimensionales
La forma general para crear un arreglo unidimensional es:
Tipo nombre-de-variable[ ][]:

Un arreglo bidimensional llamado b con dos filas y dos columnas, podra
declararse e inicializarse con inicializadores de arreglos anidados:continuacin:

int b[][] = { {1 , 2}, {3 , 4}};

Arreglos bidimensionales con filas de distintas longitudes

La forma en que java representa los arreglos Bidimensionales los hace bastante
flexibles. De hecho, las longitudes de las filas en el arreglo b no tienen que ser
iguales. Por ejemplo:


Prctica No 3 Pgina 1
Programacin Orientada a Objetos Unidad I

int b[][] = { { 1, 2 }, { 3, 4, 5 } };

Las instrucciones siguientes crean un arreglo bidimensional con dos filas. La fila 0
tiene 5 columnas y la fila 1 tiene 3 columnas.

int b[][];
b= new int [2] [ ]; //crea 2 filas
b [ 0 ] = new int [ 5 ]; //crear 5 columnas para la fila 0
b [ 1] = new int [ 3 ]; // crear 3 columnas para la fila 1

Constructor.
Un Constructor es un mtodo especial en J ava empleado para inicializar valores en
Instancias de objetos, a travs de este tipo de mtodos es posible generar diversas
maneras de inicializar las instancias de clase. Los constructores tienen el mismo nombre
que la clase, no retornan ningn valor y no pueden ser heredados. Un mtodo constructor
inicializa las variables de instancia de una clase.

Definicin de la clase Arreglo.
class Arreglo
{
// Definicin de los atributos del arreglo
private int FILAS=50;
private int COLUMNAS=4;
private int datos[][];
// Definicin de los servicios de la clase
public void pedirDatos(){}
public void procesarDatos(){}
public void mostraDatosr(){}
};


Operaciones ms utilizadas:
Lectura
Escritura
Eliminacin
Insercin
Bsqueda
Ordenacin
..


MATERIAL Y EQUIPO
El equipo de cmputo en el laboratorio.
Lenguaje de programacin java.




Prctica No 3 Pgina 2
Programacin Orientada a Objetos Unidad I

ACTIVIDADES

1.- Implementar la clase Matriz, que contiene una coleccin de elementos
enteros generados estticamente, en una tabla de tamao variable,
reservando el primer elemento de cada fila para almacenar la suma de los
elementos en la fila.

class Matriz{
private int ab[][]= {{0,1,2,3,4,5,6,7},{0,8},{0},{0,9,10}}; // Sumadores en cero
public String mostrar(){
suma();
String salida ="\nMatriz :\n";
for (int i=0; i<ab.length; i++){
float prom =(ab[i].length>1) ? ab[i][0] / (ab[i].length-1f):0.0f;
salida +=prom+"\t";
for(int j=1; j<ab[i].length; j++)
salida +=ab[i][j]+"\t";
salida +="\n";
}
return salida;
}
private void sumar(){
for (int i=0; i<ab.length; i++){
for(int j=0; j<ab[i].length; j++)
ab[i][0]+=ab[i][j];
}
}
}

2. ReDefina la clase Matriz para identificar cual de las filas es la que tiene el
mayor nmero de elementos.

class Matriz{
private int ab[][]= {{0,1,2,3,4,5,6,7},{0,8},{0},{0,9,10}}; // Sumadores en cero
public String mostrar(){}
private void sumar(){}
public void procesar(JTextArea area) {
float masElementos =0;
int pos =0;
for (int i=0; i<ab.length; i++)
if(ab[i].length >masElementos){
masElementos =ab[i].length;
pos =i;
}
area.append("\nLa fila que tiene ms elementos es : "+(pos+1));
}
}

Prctica No 3 Pgina 3
Programacin Orientada a Objetos Unidad I


3. Redefina la clase Matriz para implementar un constructor que genere
aleatoriamente la coleccin de enteros, respetando la declaracin en letra
cursiva y negrita.

class Matriz{
private int ab[][]= {{0,1,2,3,4,5,6,7},{0,8},{0},{0,9,10}}; // Sumadores en cero
public String mostrar(){}
private void sumar(){}
public void procesar(J TextArea area) {}
public Matriz(boolean genera) {
if (genera){
ab =new int [(byte)(Math.random()*7+1)][];
for (int i =0; i <ab.length; i++) {
ab[i] =new int [(byte)(Math.random()*10+1)];
for(int j=1; j<ab[i].length; j++)
ab[i][j] =Math.abs((byte)(Math.random()*100+50));
}
}
}
}

4. Redefina la clase Matriz para obtener los valores mnimos por columna, y
los valores mximos por rengln.

DATOS Y RESULTADOS

Para la actividad 1.
public class AppMatricesVariables {
public static void main(String[] args) {
J TextArea area =new J TextArea(10,20);
Matriz objeto =new Matriz();
area.setText("\nArreglo con inicializacion predefinida\n");
area.append(objeto.mostrar());
J ScrollPane areaSc =new J ScrollPane(area);
J OptionPane.showMessageDialog(null,areaSc,"Matrices",
J OptionPane.PLAIN_MESSAGE);
}

Salida esperada:
Arreglo con inicializacin predefinida

Prom Matriz :
4.0 1 2 3 4 5 6 7
8.0 8
0.0
9.5 9 10

Prctica No 3 Pgina 4
Programacin Orientada a Objetos Unidad I

Para la actividad 2.
public class AppMatricesVariables {
public static void main(String[] args) {
J TextArea area =new J TextArea(10,20);
Matriz objeto =new Matriz();
area.setText("\nArreglo con inicializacion predefinida\n");
area.append(objeto.mostrar());
objeto.procesar(area);
J ScrollPane areaSc =new J ScrollPane(area);
J OptionPane.showMessageDialog(null,areaSc,"Matrices",
J OptionPane.PLAIN_MESSAGE);
}

Salida esperada:
La misma que para la actividad anterior, adems:

La fila que tiene ms elementos es : 1

Para la actividad 3.
public class AppMatricesVariables {
public static void main(String[] args) {
J TextArea area =new J TextArea(10,20);
Matriz objeto =new Matriz(false);
area.setText("\nArreglo con inicializacion predefinida\n");
area.append(objeto.mostrar());
objeto.procesar(area);
area.append(" \nArreglo con definicion aleatoria\n" );
Matriz otraMatriz = new Matriz(true);
area.append(otraMatriz.mostrar());
otraMatriz.procesar(area);
J ScrollPane areaSc =new J ScrollPane(area);
J OptionPane.showMessageDialog(null,areaSc,"Matrices",
J OptionPane.PLAIN_MESSAGE);
}

Salida esperada:
//Similar a la actividad anterior

Para la actividad 4.
//Similar a la actividad anterior, pero mostrando los valores mnimos por columna,
y los valores mximos por rengln.

REPORTE DEL ALUMNO
Se presenta el informe del alumno sobre la prctica realizada.

Prctica No 3 Pgina 5

También podría gustarte