Un arreglo es un conjunto de datos o una estructura de datos homogéneos que se encuentran ubicados en forma consecutiva en la memoria RAM (sirve para almacenar datos en forma temporal).
Al principio esta idea puede parecer correcta, pero manejar muchas variables de forma independiente, luego de un tiempo puede tornarse engorroso, y también podremos encontrar un caso en el que no sabemos cuántas variables necesitaremos. Sin embargo, esto nos puede dar una idea sobre lo que necesitamos.
Si observamos el nombre de las variables, vemos que todas llevan en su nombre calif, es decir que todas se refieren a la calificación. Podemos pensar que están conceptualmente agrupadas para la calificación. Otro punto que notamos es que las variables están numeradas, como si tuvieran un índice que nos sirve para identificarlas.
Declaración de los arreglos de una dimensión
Los arreglos pueden tener diferentes dimensiones, y si el arreglo se parece a una simple lista, como la lista de calificaciones que tenemos, entonces decimos que es de una dimensión. Estos arreglos también se conocen como monodimensionales o unidimensionales. Si el arreglo es como una tabla con varios renglones y varias columnas, entonces es un arreglo de dos dimensiones o bidimensional. Primero trabajaremos con los arreglos de una dimensión y luego pasaremos a arreglos de dos dimensiones o más. Para poder trabajar un arreglo, primero es necesario declararlo.
ARREGLOS UNIDIMENSIONALES
Un arreglo unidimensional es un tipo de datos estructurado que está formado por una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Los datos que se guarden en los arreglos todos deben ser del mismo tipo.
El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su posición relativa.
Para implementar arreglos unidimensionales se debe reservar espacio en memoria.
Los arreglos nos permiten hacer un conjunto de operaciones para manipular los datos guardados en ellos, estas operaciones son: ordenar, buscar, insertar, eliminar, modificar entre otras.
Asignación y uso de valores
Ya hemos visto cómo declarar el arreglo. Ahora tenemos que aprender cómo poder colocar información en su interior y hacer uso de ésta.
Para poder asignarle un valor a alguno de los elementos del arreglo necesitamos hacer uso del índice del elemento que queremos utilizar, y como dijimos antes, no debemos olvidar que el primer elemento se encuentra en la posición 0. Supongamos que queremos asignarle la calificación 8.5 al tercer alumno.
Arreglos de dos dimensiones
Hasta aquí hemos visto que los arreglos nos ayudan a guardar información y a trabajar de una manera más cómoda con ella. Cuando tenemos mucha información que almacenar es más fácil manipular un arreglo que muchas variables. Los arreglos que vimos son similares a una lista, pero no todos los problemas se pueden resolver con este esquema, y veamos por qué. Supongamos que ahora debemos hacer un nuevo programa para una fábrica que produce automóviles y desea tener la información de las unidades producidas a diario. La información será procesada por semana, con el promedio semanal de vehículos producidos. Hasta el momento el problema sería muy similar al anterior. Podríamos crear un arreglo de 7 elementos llamado semana y estaría resuelto, pero ahora también desean la información por mes. El mes tiene cuatro semanas, por lo que podemos pensar en tener cuatro arreglos, uno que se corresponda con cada semana, pero en realidad existe una forma mejor de solucionar este problema.
Al igual que con los arreglos de una sola dimensión, los índices están basados en 0.
Esto es tanto para los renglones como para las columnas.
Declaración de los arreglos de dos dimensiones
La declaración es similar al arreglo de una dimensión, pero indicamos la cantidad de elementos en cada dimensión.
float[,] tabla = new float[5,3];
En este caso, hemos creado una matriz de valores flotantes llamada tabla. Hay que notar que hemos colocado una coma entre los [ ] para indicar que serán dos dimensiones. En el lado derecho indicamos el tamaño de cada dimensión. Para este ejemplo tenemos cinco columnas y tres renglones.También es posible declarar la matriz por medio de variables.
float[,] tabla = new float[n, m];
Arreglos de tipo jagged
En el ejemplo anterior todas las columnas tienen la misma cantidad de renglones, es decir, que todos los salones tendrían la misma cantidad de alumnos, sin embargo, en la práctica esto no sucederá. Tendremos salones con diferentes cantidades de alumnos, y los arreglos que hemos visto hasta el momento no permiten tener columnas con diferente cantidad de renglones. Esto puede ser una limitación, y puede significar que tengamos renglones sin utilizar en varias columnas. Esto nos lleva a desperdiciar memoria. Una solución podría ser tener un arreglo que nos permita lograr esto. Para hacerlo tenemos que crear un arreglo de arreglos. Esto se conoce como arreglo jagged. En lugar de usar una matriz, lo que haremos es crear un arreglo, pero cada elemento de este arreglo será a su vez otro arreglo. Así podemos controlar de forma independiente la cantidad de renglones en cada arreglo. Estos arreglos son más flexibles que los tradicionales, pero requieren que seamos más cuidadosos con ellos.
Declaración de un arreglo jagged
La declaración de los arreglos jagged es ligeramente más complicada que la de los tradicionales. Cuando los declaramos debemos declarar en primer lugar el arreglo contendor y luego cada uno de los arreglos independientes que tiene.
Acceder a un arreglo jagged
Para acceder a los elementos guardados adentro de un arreglo jagged también necesitamos utilizar índices. Un índice será aplicado para indicar cuál elemento del arreglo contenedor utilizaremos, es decir el número de columna. El otro índice entonces nos indicará el elemento del arreglo interno que queremos acceder.
Por ejemplo, para asignar un valor realizamos lo siguiente:
En este ejemplo vemos que se selecciona el elemento 6 del arreglo contenedor, o si lo preferimos la columna 6. Adentro de esa columna seleccionamos el elemento 7 y ahí es dónde se coloca el valor 5.7. Si lo que necesitamos es mostrar el contenido de un elemento, el esquema es similar a lo que ya conocemos.
Console.WriteLine(“El valor es {0}”, productos[5][n]);
Ahora modificaremos algunas partes del programa de la escuela para usar el arreglo de tipo jagged. Lo que haremos es tener salones con diferente cantidad de alumnos y luego simplemente mostraremos las calificaciones de cada salón
Los arreglos como parámetros a funciones
Aprendimos a usar los arreglos. Hasta el momento han sido utilizados adentro de la función Main(). A medida que nuestros programas sean más grandes y especializados, tendremos que usar funciones y éstas necesitarán procesar la información contenida en los arreglos. Al igual que con las variables, es posible pasar un arreglo como parámetro