UNIDAD
4: ORGANIZACIÓN DE DATOS
4.1
Arreglos
ARREGLO: colección ordenada de elementos de un mismo tipo. Ordenada
significa que cada elemento tiene una ubicación determinada dentro del arreglo
y debemos conocerla para poder accederlo.
Sintaxis:
Tipo nombre_variable[longitud];
Ejemplo:
Int matricula[20];
Con
esto diremos que nombre_variable es un arreglo de longitud elementos del tipo
necesitado cabe destacar que longitud debe ser cualquier expresión entera
constante mayor que cero.
4.2
Unidimensionales: conceptos básicos, operaciones y aplicaciones.
Conceptos básicos
Un arreglo unidimensional tiene
una sola dimensión. A los arreglos de una dimensión también se les llama
listas.
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.
Operaciones
Para manejar un arreglo, las
operaciones a efectuarse son:
· Declaración
del arreglo,
· Creación
del arreglo,
· Inicialización
de los elementos del arreglo, y
· Acceso
a los elementos del arreglo.
Aplicaciones
Los elementos de
un arreglo son variables del tipo base del vector, por lo que se utilizan de la
misma manera en expresiones y demás instrucciones, como la asignación. Por
ejemplo, para asignar un valor a un elemento de un arreglo basta con escribir:
arreglo[indice]
= valor;
en donde arreglo es
el nombre de la variable e indice hace referencia a la
posición del elemento al que se le quiere asignar el valor.
Importante: Puesto que los arreglos son estructuras complejas (es decir, no
básicas), no es posible asignar un arreglo a otro mediante una simple
asignación (=). Para hacer esto es necesario escribir un ciclo y asignar
elemento a elemento.
Algunos
lenguajes como C, no controla la validez de los índices que se emplean para
referenciar un arreglo. Esto quiere decir que es posible cometer errores muy
difíciles de detectar en este sentido. Es necesario prestar especial interés a
los valores que toman los índices para evitar estos problemas.
Por ejemplo, la siguiente porción de código compila
sin problemas (es decir, sin errores sintácticos), pero probablemente produzca
un error en tiempo de ejecución al referenciarse posiciones
inexistentes del arreglo.
/* Ejemplo de error por acceso fuera de rango a un
arreglo. */
/* Las posiciones con índices del 20 al 29 son
inválidas. */
int i, arreglo[20];
for (i=0; i<30; i++) arreglo[i] = 0;
También es común cometer estos errores olvidando
que las posiciones de los arreglos están numeradas a partir del índice cero. Es
decir, en un arreglo de tamaño N las posiciones están numeradas de 0 a N-1.
El nombre de un arreglo también puede emplearse sin
índice, bajo ciertas circunstancias, por ejemplo, para pasar el arreglo
completo como parámetro a una función. Cuando se emplea el nombre solo, lo que
se está manejando es en realidad un puntero al primer elemento del arreglo. Más
adelante, en la sección de strings se hará una descripción más
detallada sobre esto.
4.3 Multidimensionales: conceptos básicos,
operaciones y aplicaciones.
Conceptos básicos.
Los arreglos multidimensionales tienen más de una
dimensión. Este también es un tipo de dato estructurado, que está
compuesto por n dimensiones. Para hacer referencia a cada componente del
arreglo es necesario utilizar n índices, uno para cada dimensión.
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
· Acceso
a los elementos del arreglo
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 < 18 ; v++) // Volumen
for(int p
= 0 ; p < 500 ; p++) // Página
for(int r
= 0 ; r < 30 ; r++) // Renglón
for(int c
= 0 ; c < 80 ; c++) // Columna
{
Car
= (char)Console.Read( );
enciclopedia[v,p,r,c]
= car ;
}
4.4 Estructuras o registros.
Un registro es una agrupación de datos,
llamados campos, los cuales no necesariamente son del mismo tipo.
Se definen con la palabra "struct".
En C# (al contrario que en C), primero deberemos declarar cual
va a ser la estructura de nuestro registro, lo que no se puede hacer dentro de
"Main". Más adelante, ya dentro de "Main", podremos
declarar variables de ese nuevo tipo.
Los datos que forman un "struct" pueden ser públicos o
privados. Por ahora, a nosotros nos interesará que sean accesibles desde el
resto de nuestro programa, por lo que siempre les añadiremos delante la palabra
"public" para indicar que queremos que sean públicos.
Ya desde el cuerpo del programa, para acceder a cada uno de los
datos que forman el registro, tanto si queremos leer su valor como si queremos
cambiarlo, se debe indicar el nombre de la variable y el del dato (o campo)
separados por un punto:
No hay comentarios.:
Publicar un comentario