Leidy Tatiana Martínez Agudelo Universidad de Antioquia Facultad de ingeniería Ingeniería Química
C.C 1214715277
ARREGLOS MULTIDIMENSIONALES Existen arreglos con múltiples dimensiones donde para acceder a estos elementos se debe hacer con múltiples índices. El número de dimensiones del arreglo depende tanto de las características del problema como de las facilidades del lenguaje de programación (Battistutti, 2006). Un arreglo multidimensional es simplemente una extensión de un arreglo unidimensional. Más que almacenar una sola lista de elementos, piense en un arreglo multidimensional como el almacenamiento de múltiples listas de elementos (Jaramillo, 2012). Dentro de los arreglos multidimensionales se encuentran los que son bidimensionales, también conocidos como matrices, son los más utilizados. Un arreglo bidimensional es una colección finita, homogénea y ordenada de datos a la que hace referencia a cada elemento de los arreglos por medio de dos índices. El primero de los índices se utiliza para indicar la fila y el segundo para indicar la columna. En la figura 1. Se puede observar la representación gráfica de arreglo bidimensional
Figura 1. Representación gráfica de arreglos bidimensionales
Ejemplo 1: Hacer la representación gráfica del número de alumnos con el que cuenta una academia, ordenados en función del nivel y del idioma que se estudia. Tendremos 3 filas que representarán al Nivel básico, medio y de perfeccionamiento y 4 columnas en las que figurarán los idiomas (0 = Inglés, 1 = Francés, 2 = Alemán y 3 = Ruso). En Ingles se encuentran 15 en nivel básico, 22 en nivel medio y 8 en perfeccionamiento. En Francés se encuentran 20 en nivel básico, 13 en nivel medio y 12 en perfeccionamiento. En Alemán se encuentran 25 en nivel básico, 12 en nivel medio y 5 en perfeccionamiento. En Ruso se encuentran 7 en nivel básico, 6 en nivel medio y 7 en perfeccionamiento.
Se podría asignar contenidos de la siguiente manera: Alumnos [0] [0] = 15 Alumnos [1] [3] = 6 Alumnos [2] [2]= 5 Alumnos [2] [0] = 8 Otro tipo común de arreglos multidimensionales son los arreglos tridimensionales estos además de ser un conjunto de elementos del mismo tipo de datos y que se almacenan bajo un mismo nombre, son una combinación del arreglo unidimensional y bidimensional. La primera Dimensión se puede esquematizar como como el arreglo unidimensional, la segunda y tercera dimensión es un arreglo de dos dimensiones que constituye a cada elemento de la primera dimensión (Tayub, 2013). Ejemplo 2: OPERACIONES SOBRE VECTORES Noción de Vector Nueva estructura de objeto, frecuentemente utilizada en informática y a la que se aplican numerosos tratamientos iterativos.
•
Las operaciones básicas en arreglos son las siguientes: o Creación o Lectura/Escritura o Asignación o Actualización:
Inserción
Eliminación
Modificación
o Ordenación o Búsqueda
Creación Consiste en separar el espacio de memoria requerido para almacenar la información del arreglo. Ejemplo: Carácter vocales [4] Lectura/Escritura El proceso de lectura/escritura de un arreglo consiste en leer y asignar un valor a cada uno de sus componentes. Aunque puede también hacerse con estructuras selectivas. Las instrucciones simples de lectura/escritura se representarán como: Ejemplo: leer todos los elementos del arreglo unidimensional V en forma consecutiva. •
Forma 1: utilizando instrucciones de asignación, los cuales son para cuando se conocen los elementos específicos del vector.
Leer V[1]
Leer V[2] Leer V[50] Donde leer V [50] •
Leer el elemento V[5] del vector V
Forma 2: También se puede realizar de una forma más simplificada empleando ciclos para.
Repetir con i desde 1 hasta 50 Para i=(1,….,50) Leer V[i] Fin Para Asignación En general no es posible asignar directamente un valor a todo el arreglo, sino que se debe asignar el valor deseado a cada componente. Ejemplo:
NOMBRES[8] ----> ‘Ana’ Asigna el valor ‘Ana’ al elemento 8 del vector NOMBRES Otra forma de hacer esta asignación es a través de la asignación de elemento en elemento. Este tipo de asignación es la que se realiza de forma común en programación. Para (i=0,…, n) u(i) = v(j) Fin para Acceso secuencial al vector (recorrido) Se puede acceder a los elementos de un vector para introducir datos (escribir) en el o bien para visualizar su contenido (leer). Estas operaciones se realizan utilizando estructuras repetitivas, cuyas variables de control (por ejemplo i) se utilizan como subíndices del vector por ejemplo, X(i). El incremento del contador del bucle producirá el tratamiento sucesivo de los elementos del vector.
Ejemplo: Lectura de 15 valores enteros de un vector denominado TOTAL. Vector TOTAL Para i=1,…, 15 leer TOTAL(i) Fin Para La salida o escritura de vectores se representa de un modo similar. Para i=1,…, 15 escribir TOTAL(i) Fin Para Visualiza todo el vector completo (un elemento en cada línea independiente). Esto también se puede realizar para imprimir: o Imprimir: Lleva a un dispositivo estándar de salida, el contenido de información del vector. Para esto también se requiere un ciclo. Ejemplo: Para (i=0…) Imp V [] Fin Para Ordenación y Búsqueda Ordenar consiste en organizar la información contenida bajo algún criterio ya sea ascendente o descendente (Mayor o menor). Ordenación por selección Supongamos un vector, donde parte de sus elementos están ordenados y otros no. Los pasos a seguir para realizar la ordenación son los siguientes:
r
n
t
d
a
h
m
z
o
k
s
c
a1
a2
...
ak-1
ak
...
...
...
ai
...
...
an
Elementos desordenados a) Para realizar la ordenación por selección se hacen varios barridos del vector. Primero se coge el primer elemento del vector y se compara con todos los elementos restantes buscando aquel elemento que posea el valor más pequeño.
r
n
t
d
a
h
m
z
o
k
s
c
a1
a2
...
ak-1
ak
...
...
...
ai
...
...
an
b) Una vez encontrado el elemento menor, se coloca en la posición correspondiente, realizando un intercambio de posiciones entre el elemento que se ha comparado y el que se ha encontrado.
a
n
t
d
r
h
m
z
o
k
s
c
a1
a2
...
ak-1
ak
...
...
...
ai
...
...
an
c) Una vez ordenado el primer elemento, se realiza la misma operación con los restantes. Finalmente el vector quedará ordenado.
a
c
d
h
k
m
n
o
r
s
t
z
a1
a2
...
ak-1
ak
...
...
...
ai
...
...
an
Búsqueda es una operación que determina si un determinado valor en específico se encuentra guardado en el arreglo.
Búsqueda Lineal
Dado un vector que se supone desordenado, localizar un elemento que tenga un valor determinado requerirá un barrido a lo largo del mismo hasta encontrar dicho elemento.
Actualización de un vector Puede constar de tres operaciones más elementales: a) Añadir elementos =añade un nuevo elemento al final del vector. Un arreglo A se ha dimensionado a 6 elementos, pero solo se han asignado 4 valores a los elementos A[1], A[2], A[3], A[4], se podrán añadir dos elementos más con una simple acción de asignación. A[5]
---->
15
A[6]
---->
9
b) Insertar elementos=introduce un elemento en el interior de un vector. Ejemplo: Se tiene un arreglo NOM de 6 elementos de nombres de personas, en orden alfabético y se desea insertar un nuevo nombre. {Calcular la posición ocupada por el elemento a insertar} P {Inicializar contador de inserciones} i n. Mientras i >= P hacer {transferir el elemento actual hacia abajo, a la posición i+1} NOM(i+1) ---->
NOM(i)
{decrementar contador} i ----> i-1 fin_mientras {Insertar el elemento en la posición P} NOM(P)
---->
‘nuevo elemento’
{Actualizar el contador de elementos del vector} n ----> fin
n+1
c) Borrar elementos=Elimina elementos de un vector y cada vez que se eliminen los demás datos se deben llevar hacia a la izquierda para que no queden espacios vacíos en el intermedio de los elementos. BIBLIOGRAFÍA Ahumada, D. J. (s.f.). Estructura de Datos: Operaciones con Arreglos. Obtenido de Programación Estructurada. Battistutti, O. C. (2006). Fundamentos de Programacion. Piensa en C. México: Pearson Educación. Jaramillo, J. T. (6 de Diciembre de 2012). Arreglos unidimensionales, bidimensionales y multidimensionales. Recuperado el 08 de Marzo de 2014, de http://jovanana.blogspot.com/2012/12/arreglosunidimensionalesbidimensionale.html Miguel. (s.f.). Estructuras, Cadenas, Arreglos y Modulos. Tayub, M. A. (17 de Enero de 2013). Arreglos tridimensionales.