Sunteți pe pagina 1din 4

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

TRABAJO DE PROGRAMACION

TEMA: ARREGLOS DINAMICOS


AUTOR

:
CHULDE PAL

DOCENTE

: ING. PATRICIO GONZALEZ

AMBATO - ECUADOR
2013

ARREGLOS DINAMICOS
En programacin, un array dinmico, ms apropiadamente llamado arreglo dinmico, tambin
llamado inapropiadamente matriz dinmica o tabla dinmica, es un arreglo de elementos que crece o
mengua dinmicamente conforme los elementos se agregan o se eliminan. Se suministra como libreras

estndar en muchos lenguajes modernos de programacin.


Un arreglo dinmico no es lo mismo que un arreglo asignado dinmicamente, que es un arreglo de
tamao fijo, pero cuyo tamao se fija cuando se asigna por primera vez.
Sirve exclusivamente para realizar arreglos que no tienen una definicin fija por ende su nombre.
(Dinmico).

SINTAXIS
var matriz = new Array();
De esta forma, hemos creado una matriz vaca que puede contener un nmero ilimitado de
elementos, tantos como nos permita el sistema donde se ejecuta. Las matrices vienen a ser como
cajas que en vez de contener una sola cosa, contienen muchas, como si pudiramos dividir la caja
en compartimentos en los cuales pudiramos ir depositando cosas.
Adems, podemos crear matrices con una "dimensin", es decir, que podemos hacer que la matriz
se inicie con un nmero de elementos determinado:
var matriz = new Array(15);
Con esta instruccin, lo que hemos hecho es crear una matriz de quince elementos. Pero ahora lo
interesante es saber cmo llamar a esos elementos, ya que si creamos la matriz, pero no sabemos
operar con ella, no sirve para mucho, no? La forma de acceder a un elemento de la matriz es la
siguiente:
Elemento = matriz [1];
En este ejemplo, la variable elemento contendr el valor del elemento 1 de la matriz. Es lo que se
llama ndice de la matriz, e identifica a cualquiera de los elementos de la matriz. Hay que fijarse en
que utilizamos los corchetes "[]" para sealar un elemento de la matriz. El primer elemento de la
matriz es el de ndice 0, no el de ndice 1. As, para el anterior ejemplo de una matriz de 15
elementos, el ltimo elemento posible es el 14.
De la misma forma, podemos dar un valor a cualquiera de los elementos de la matriz:
Matriz [5] = hola;
Hemos asignado el valor hola al elemento 5 de la matriz. Los elementos de una matriz pueden

contener cualquier tipo de dato, y se pueden cambiar en cualquier parte del programa, al igual que
ocurre con las variables.
Y si queremos saber cuntos datos tenemos en la matriz? Como dijimos antes, las matrices son
objetos de tipo Array, y los objetos pueden tener atributos (datos) y funciones (cdigo). El atributo
que debemos usar con matrices es length:
Longitud = matriz.length;
De esta forma, podemos saber cuntos elementos tiene la matriz. Recordad que como el primer
ndice es 0, el ltimo elemento ser siempre matriz.length - 1.
Si necesitamos que la matriz contenga ms elementos, podemos redimensionar la matriz
aplicndole un nuevo objeto de matriz:
Matriz = new Array (longitud que queramos);
Sin embargo, perderemos todos los elementos que tuviramos anteriormente.

EJEMPLO.class AEarregloDinamico{
/**
* Este mtodo me permite ampliar el tamao de mi arreglo
* debo tener en cuenta dos cosas muy importantes
*1.- el arreglo k recibe este mtodo no debe ser NULO
*2.- el tamao extra k recibe este mtodo debe ser ENTERO_POSITIVO>0
*
*estos controles no es difcil implementarlo, si no los implemento es para
*k se vea la simplicidad de este mtodo, en especial para los novatos
*para los expertos ya saben cmo mejorarlo.

*/
public static Object[] ampliarArreglo(Object arreglo[],int extra){
//creo el arreglo con el tamao original ms el extra a ampliar
Object nuevo[] = new Object[arreglo.length+extra];
//ahora copiare los datos del viejo arreglo al nuevo
for(int i = 0;i < arreglo.length;i++){

//antes de copiar verifico k no sea nulo pa evitar excepciones


//si es nulo no necesito copiar, lo dejo as
if(arreglo[i] != null){
nuevo[i] = arreglo[i];
}
}
//ahora retorno el arreglo con tamao extra y con los datos k contena antes
return nuevo;
}
}

* Este mtodo me permite reducir el tamao de mi arreglo


* debo tener en cuenta tres cosas muy importantes
*1.- el arreglo k recibe este mtodo no debe ser NULO
*2.- el tamao a reducir k recibe este mtodo debe ser ENTERO_POSITIVO>0
* Y adems debe ser menor o igual al tamao del arreglo que recibe.
*3.- se asume k el usuario es consiente k al utilizar este mtodo perder
* Los ltimos datos del arreglo en la misma proporcin k se especifica en extra
*estos controles no es difcil implementarlo, si no los implemento es para
*k se vea la simplicidad de este mtodo, en especial para los novatos
*para los expertos ya saben cmo mejorarlo.
public static Object[] reducirArreglo(Object arreglo[],int extra){
//creo el arreglo con el tamao original menos el extra a reducir
Object nuevo[] = new Object[arreglo.length-extra];
//ahora copiare los datos del viejo arreglo al nuevo
for(int i = 0;i < nuevo.length;i++){
//antes de copiar verifico k no sea nulo pa evitar excepciones
//si es nulo no necesito copiar, lo dejo asi
if(arreglo[i] != null){
nuevo[i] = arreglo[i];
}
}
//ahora retorno el arreglo con tamao extra reducido y con los datos k contena antes
return nuevo;
}
}

Bibliografa:
http://es.wikipedia.org/wiki/Array_din%C3%A1mico
http://es.scribd.com/doc/3198222/Arreglos-en-JAVA
http://ocw.utpl.edu.ec/sistemas-informaticos-y-computacion/fundamentos-de-laprogramacion/capitulo4-arreglos.pdf

S-ar putea să vă placă și