martes, 7 de marzo de 2017

Arreglos Unidimensionales y Multidimensionales

Arreglos Unidimensionales y Multidimensionales

Un arreglo unidimensional es un tipo de datos estructurado que está formado de una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales.
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, y se debe proporcionar la dirección base del arreglo, la cota superior y la inferior.

REPRESENTACION EN MEMORIA

Los arreglos se representan en memoria de la forma siguiente:
Los arreglos multidimensionales tienen más de una dimensión. En C#, las dimensiones se manejan por medio de un par de corchetes, dentro de los que se escriben los valores de cada dimensión, separados por comas.

OPERACIONES.

Para manejar un arreglo, las operaciones a efectuarse son:
  • Declaración del arreglo,
  • Creación del arreglo,
  • Inicialización de de los elementos del arreglo, y
  • Acceso a los elementos del arreglo.
A continuación describiremos cada una de estas operaciones, en C#.

DECLARACIÓN.

La sintaxis para declarar un arreglo multidimensional es la siguiente:
<tipo[ , ...] < identificador ;
Donde:
tipo indica el tipo correspondiente a los elementos del arreglo ,
identificador es el nombre del arreglo, y
el par de corchetes, la coma y las diéresis, [ , ...], representan las dimensiones del arreglo. Los corchetes encierran todas las comas necesarias para separar las dimensiones del arreglo.
Ejemplos:
double [ , ] bidim; // Dos dimensiones.
int [ , , ] tridim ; // Tres dimensiones.
char [ , , , ] enciclopedia; // Cuatro dimensiones.
Observe que, en la declaración, el espacio entre los corchetes está vacío. Esto se debe a que, durante dicha operación, no se reserva espacio en la memoria.

CREACIÓN.

La creación de un arreglo multidimensional consiste en reservar espacio en la memoria para todos sus elementos, utilizando la siguiente sintaxis:
< identificador > = new <tipo> [ dim1, dim2 ... dimN ] ;
Donde:
new es el operador para gestionar espacio de memoria, en tiempo de ejecución,
dim1 , dim2 , dimN son valores enteros que representan las dimensiones del arreglo.
El tamaño del arreglo es el resultado de multiplicar los valores de las dimensiones y representa el número de elementos del arreglo.
Ejemplos:
bidim = new double [2, 3] ;
tridim = new int[ 2, 3, 4] ;
enciclopedia = new char[30, 80, 500, 10] ;
Las operaciones de declaración y creación anteriores se pueden agrupar en una sola instrucción, como se muestra enseguida:
double [ , ] bidim = new double [2,3] ;
int [ , , ] tridim = new int[2, 3, 4] ;
char [ , , , ] enciclopedia = new char[ 30, 80, 500, 10 ] ;

INICIALIZACIÓN.

Un arreglo es un objeto que,cuando es creado por el compilador, se le asignan automáticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios:
  • Si el tipo del arreglo es numérico, a sus elementos se les asigna el valor cero.
  • Si el tipo del arreglo es char, a sus elementos se les asigna el valor '\u0000'.
  • Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false.
  • Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null.
Cuando se requiere asignar valores iniciales diferentes de los predeterminados, es posible agrupar las operaciones de declaración, creación e inicialización en una sola instrucción, por ejemplo:
int [ , , ] tridim={{{12, 59, 70, 45} , {20, 16, 29, 48} , {93, 75, 43, 10}},
{{44, 72, 30, 24} , {60, 89, 39, 61} , {99, 52, 34, 47}}};

ACCESO.

Se puede acceder a los valores de los elementos de un arreglo bidimensional a través del nombre del arreglo y dos subíndices. Los subíndices deben escribirse entre corchetes y representa la posición del elemento en el arreglo. Así, podemos referirnos a un elemento del arreglo escribiendo el nombre del arreglo y los subíndices del elemento entre corchetes. Los valores de los subíndices empiezan en cero para el primer elemento, hasta el tamaño del arreglo menos uno.

APLICACIONES.

Se necesita manejar, en un arreglo, la posición todos los caracteres escritos en una enciclopedia. El arreglo deberá tener las siguientes dimensiones:
  • Una para manejar el renglón en la página,
  • otra para la columna en la página,
  • otra para la hoja en el volumen y
  • otra para el volumen en la enciclopedia.
Cada página tiene 30 renglones y 80 columnas.
Cada volumen tiene 500 páginas.
La enciclopedia tiene 18 volúmenes.
El siguiente fragmento de programa implementa la solución a este problema.
char car;
// Declara y crea el arreglo.
char[ , , , ] enciclopedia = new char [18,500,30,80] ;
// Lee, desde el teclado, cada carácter para la enciclopedia.
for(int v = 0 ; v < class="Estilo32">// Volumen
for(int p = 0 ; p < class="Estilo32">// Página
for(int r = 0 ; r < class="Estilo32">// Renglón
for(int c = 0 ; c < class="Estilo32">// Columna
{
car = (char)Console.Read( ) ;
enciclopedia[v,p,r,c] = car ;
 http://avilajanett.blogspot.com.co/2009/01/arreglos-unidimensionales-y.html

No hay comentarios:

Publicar un comentario