lunes, 1 de octubre de 2007

Los arreglos

Alien [blackhat4all@gmail.com]

Un arreglo simple es, a mi entender, una de las cosas más fáciles de entender en la programación. Como todo lleva un nivel de abstracción, pero no es tan alto como para lograr entender aspectos más difíciles como pudiera ser la herencia.  Aunque existen varios tipos nos centraremos en los lineales.

Para tener una idea de lo que es, piensen en ellos como en un edificio que en cada piso tiene una sola habitación y viven personas con las mismas características. Como en todo edificio normal, existen escaleras o elevadores permitiendo pasar de un apartamento a otro mientras se visitan todos los que están entre estos. Continuando con el ejemplo, en un edificio al igual que en un arreglo, se pueden hacer cambios o mudanzas, dándole la oportunidad al que esta en el piso x desplazarse hasta el y mientras que el y toma el lugar de x. Otra cosa común entre los arreglos y edificios es vaciar o llenar los pisos pero… ¿Cuáles son las diferencias?.

Las diferencias consisten más bien en aspectos técnicos, como por ejemplo la inserción de un elemento en un arreglo (en caso de que sea dinámico). Pero esto no nos hará olvidar el ejemplo, sólo lo modificaremos un poco, y en lugar de un edificio, imaginemos una cuadra, en la que está la casa #50, al lado la casa #51, y por  cosas de la vida a alguien se le ocurre crear de un espacio vacio entre ambas una casa la que tendría el número 50-A. También existe la eliminación (en caso igualmente que sea dinámico) de un elemento, lo que no sería otra cosa en nuestro ejemplo que desalojar a los moradores de la casa #50-A y escoger ese espacio ahora vacio para hacer una CADECA (por ejemplo). Básicamente los Array funcionan de esta forma.

¿Qué guardan?::

Como dijimos anteriormente los arreglos guardan un solo tipo de dato. Podemos crear un arreglo para guardar las edades de los estudiantes de un aula (entero), o los nombres de un grupo de personas (cadena de texto), o un nuevo tipo de dato que creemos (estructura), incluso hasta podemos hacer un arreglo de clases. Los arreglos guardan cualquier cosa, siempre que en cada posición se guarde el mismo valor.

¿Cómo se programan?::

Es un poco complejo hablar de programar un arreglo, ya que tendría que mencionar todas las formas de darle vida a estos útiles elementos de la programación y además analizar las peculiaridades de cada lenguaje, y eso como comprenderán no es tarea fácil. Pero un Array básicamente esta conformado por el nombre, el tipo de datos que va a almacenar y la cantidad de elementos que este va a contener en su inicio. Igualmente se puede llenar o dejar vacio, eso ya es cosa de la necesidad que tenga el programador.
Una forma escrita en pseudocódigo podría ser:
Tipo_de_Dato Nombre_de_Arreglo[Cantidad_de_Elementos]

Operaciones::

Con un arreglo se pueden hacer todas las operaciones, al menos las más comunes: suma, resta, multiplicación, división, limpiar, llenar, mover, etc. Teniendo siempre en cuenta que para esto, de forma obligatoria se debe tener la posición o índice sobre el cual se va a trabajar.
Si por ejemplo se quiere hacer una sumatoria de todos los elementos que contiene un arreglo, lo primero que se debe hacer es construir un ciclo For que lo recorra, y añada a una variable el valor de cada posición. Sería algo como:

Total = 0
Desde el primer elemento hasta el último elemento
Total = Total +Arreglo[posición]

De esta forma, al terminar la instrucción, el valor final de la variable Total va a contener la sumatoria de todos los elementos del arreglo (en caso que este sea numérico).
De igual forma se puede sumar sólo las posiciones 3 y 4:
Total = Arreglo[3] + Arreglo[4]

Ventajas::

Los que ya se hayan enfrentado a un lenguaje de programación visual, y hayan utilizado las listas, quizás no le vean utilidad a los arreglos, pero los que gustan de trabajar en consola, donde no existe nada que sea capaz de almacenar datos, y luego hacer operaciones con estos, verán en el arreglo su fiel amigo. Entre una de las ventajas que nos ofrecen, esta la de poder utilizarlos para organizar datos por un orden específico. Además de eso, para la máquina, pasar en un arreglo de un elemento a otro es muy fácil, ya que sólo tiene que ir hasta la próxima dirección de memoria.

Desventajas::

Los arreglos como tal consumen mucha memoria si no son bien implementados, se suele hacer por parte de los programadores un abuso de memoria aún sabiendo que el programa no lo requerirá. En la mayoría de las ocasiones, es más factible crear un arreglo dinámico, de forma tal que su tamaño aumentará a medida que se valla haciendo necesario.

Matrices::

Las matrices son una especie especial de arreglo. Su forma más fácil de entender es verla como un tablero de ajedrez, donde cada fila es un arreglo en si, y toidas juntas forman la matriz. El trabajo con matrices es idéntico al trabajo con los arreglos, sólo que para recorrerlas se necesitarían dos coordenadas en lugar de una. Digamos que tenemos una matríz de 6 filas y 9 columnas (Matriz[8,5], la forma de representar filas y columnas puede variar), para ubicar una posición dentro de esta, se hace imprescindible tener ambas coordenadas, una en el eje de las X y otra en el de las Y. Digamos por ejemplo posición[5,4].

Nota: Fíjense que cada matríz o arreglo que se valla a crear, a la hora de implementarlo se debe escribir un número menor del que se tiene pensado, ya que la máquina empieza a contar a partir de 0, no de 1.



Artículos relacionados


No hay comentarios: