Arreglos Ing. Nahiby Castillo
Introducción Escalares o elementales El procesamiento de estos datos puede llegar a ser extremadamente dificil si se utilizan variables simples, para este caso es necesario recurrir a las “estructuras de datos” Los tipos de datos vistos hasta ahora se denominan : Escalares o elementales Las variables definidas con estos tipos de datos, solo pueden tomar valores simples (un número entero, un número real, un carácter) Pero en ocasiones se necesita, procesar una gran colección de valores, por ejemplo, una lista de calificaciones, una serie de temperaturas medidas a lo largo de un mes, etc.
Estructuras de Datos: Definición Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella
Estructuras de Datos: Definición Entero Real Carácter Lógico Estándar Datos simples No estándar Definidos por el programador Sub rango Enumerativo Arreglos (vectores-matrices ) Registros Ficheros Conjuntos Simples o Estáticos Datos estructurados Compuestos o dinámicos Listas (pilas colas) Árboles,grafos Tipos abstractos de datos clases Objetos
Arreglo : Definición .... Es decir que es una estructura de acceso aleatorio cada dato almacenado puede ser accedido arbitrariamente Un arreglo es un conjunto finito y ordenado de elementos homogeneos (del mismo tipo). La propiedad ordenado significa que los elementos que lo conforman pueden ser identificados. Los vectores pueden ser: Unidimensionales (vectores) Fig1. M(0,0) M(0,1) M(0,2) M(0,3) M(1,0) M(1,1) M(1,2) M(1,3) M(2,0) M(2,1) M(2,2) M(2,3) Nota1 Nota2 .... Nota(i) .... Nota(n) Fig 1. Arreglo Unidimensional Vector o multidimensionales (matrices).Fig. 2 Fig 2. Arreglo multidimensional (2 dimensiones) Matriz
Vectores:Definicion .... Nombre del vector En este caso una nota del estudiante Dato Un vector es un arreglo de una dimension. Por ejemplo: Las notas de un alumno durante un curso se pueden guardar en un vector de números reales Nota: Nota1 Nota2 .... Nota(i) .... Nota(n) 0 1 ... i .... n Indice El indice o subindice de un elemento (dato) designa su posicion en la ordenacion del vector.
En algoritmos y programación Vectores : Notación Las notaciones mas utilizadas del vector son : En matemáticas Nota0,Nota1,,. . .,Notai,. . .,Notan Nota(0), Nota(2), Nota(3) ,. . . , Nota(i) , . . . , Nota(n) ó Nota[0], Nota[2], Nota[3] ,. . . , Nota[i] , . . . , Nota[n] En algoritmos y programación Nota[0] Nota[1] Nota[2] Nota[3] Nota[4] Nota: 3.5 4.2 3.3 2.4 5.0 Elemento 1 Elemento 3 Elemento 5 El vector nota contiene 5 elementos, pero, la indexación se hace desde cero.
Visualiza el valor almacenado en la posición 25a en este caso 72 Vectores: Elementos Cada elemento de un vector se puede procesar como si fuese una variable simple al ocupar una posicion de memoria. Así: Los vectores se almacenan en memoria central de la computadora en orden adyacente. Así un vector denominado Numeros que almacena 50 numeros, se representa gráficamente por 50 posiciones de memoria sucesivas Memoria Numeros(25) 72 Numeros[0] Direccion x Almacena el valor entero o real en la posición 25a del vector Numeros y ......... Numeros[1] Direccion x+1 Numeros[2] Direccion x+2 . Numeros[49] . Direccion x+49 Escribir Numeros(25) Visualiza el valor almacenado en la posición 25a en este caso 72
Vectores:Ventajas Permite almacenar un amplio conjunto de datos 1 Los datos almacenados se pueden accesar de forma aleatoria y directa 2 El procesamiento de los datos se hace de manera mas eficiente 3 Los elementos se identifican por su posición, indexando el arreglo 4
Vectores: Operaciones Suponga que : Nota(5) de tipo Real Asignacion Nota(1) 2.0 Nota(2) 4.0 Nota(0) 4.8 Nota(3) 4.3 Nota(4) 3.0 Nota: 4.0 0 1 2 3 4 2.0 0 1 2 3 4 4.3 0 1 2 3 4 3.0 0 1 2 3 4 4.8 0 1 2 3 4 Lectura - escritura Escribir Nota (3) 2.0 3.0 3.5 4.2 2.1 0 1 2 3 4 Nota: Escribe el valor almacenado en esta posicion Leer Nota (3) 0 1 2 3 4 Nota: Asigna el valor capturado en esta posicion
Vectores: Operaciones Recorridos Acceso secuencial Para i=0 hasta 4 Nota [ i ] 0.0 Fin para Nota: 0 1 2 3 4 Nota: 4.8 2.0 4.0 4.3 3.0 0 1 2 3 4 Las variables de control de los ciclos (por ejemplo i) actuan como subindices del vector ( por ejemplo Notas (i)) Esta operación requiere generalmente el uso de estructuras repetitivas, (ciclo para o hasta ) Esta operación permite efectuar una accion general (escribir, leer) sobre todos los elementos del vector. 0.0 0 1 2 3 4 0.0 0 1 2 3 4 0.0 0 1 2 3 4 0.0 0 1 2 3 4 0.0 0 1 2 3 4 Para i=0 hasta 4 Leer Nota [ i ] Fin para i i i i i Mientras el ciclo realiza cada iteracion la variable i se incrementa y podemos recorrer el vector para Por jemplo inicializarlo
Vectores: Operaciones Ordenación Para i=0 hasta 3 Para j= i+1 hasta 4 Si Nota [ i ] < Nota [ j ] aux= Nota [ i ] Nota [ i ] = Nota [ j ] Nota [ j ]=aux Fin para Generalmente se utiliza dos ciclos anidados que permiten ordenar ascendente o descendentemente según la necesidad. Esta operación permite efectuar un ordenamiento ascendente o descentente sobre todos los elementos del vector. 4.0 0 1 2 3 4 Nota: 4.3 0 1 2 3 4 0 1 2 3 4 4.8 2.0 0 1 2 3 4 3.0 0 1 2 3 4 2.0 0 1 2 3 4 4.8 0 1 2 3 4 4.3 0 1 2 3 4 0 1 2 3 4 4.0 3.0 0 1 2 3 4 Nota:
Vectores: Operaciones Actualizar añadir,borrar,insertar Añadir Pos_final len(Nota) Si Pos_final <= longitud_vector Nota[longitud+1] 5.0 Fin Si Esta operación permite añadir, borrar e insertar uno o todos los elementos que conforman el vector Pos_final 2 2.0 0 1 2 3 4 3.0 4.0 5.0 0 1 2 3 4 0 1 2 3 4 Nota: longitud 4
BIBLIOGRAFIA Fundamentos de Programación. Algoritmos y Estructuras. Luis Joyanes Aguilar. Editorial Mc Graw Hill. http://fuxion.tripod.cl/fundamentos.htm#QUE%20HERRAMIENTAS