Estructura de datos (ARRAYS). Cadenas de caracteres. Un array es una secuencia de posiciones de la memoria central a las que se puede acceder directamente, que contiene datos del mismo tipo y pueden ser seleccionados individualmente mediante el uso de subíndices. Una estructura de datos es una colección de datos que pueden caracterizarse por su organización y las operaciones que se definen en ella. Hemos visto hasta ahora datos de tipo simples como ser: numérico, carácter y lógico. Aunque el dato de tipo cadena lo tomamos como un dato simple en nuestro curso, es preciso aclarar que se trata de un tipo de dato estructurado compuesto por una “cadena” de caracteres o string. Ahora abordaremos los array (vectores/matrices). Los array son datos estructurados simples o estáticos, se definen como estáticos debido a que el tamaño ocupado en memoria se define antes de que el programa se ejecute y no puede modificarse dicho tamaño durante la ejecución del programa. ARRAY UNIDIMENSIONAL Un array unidimensional o vector es un conjunto finito y ordenado de elementos homogéneos. Lo declaramos así: var identificador : vector [rango] tipo_de_dato Operaciones con vectores Dado el vector X[n] , podemos referirnos a los diferentes elementos del mismo de la siguiente forma: X[1], X[2], … , X[n]. Donde n es el rango o cantidad de elementos de nuestro vector. Las operaciones que podemos realizar son: - asignación lectura, escritura recorrido (acceso secuencial) actualizar (añadir, borrar, insertar) ordenación búsqueda Asignación Para valores individuales: X [n] = Valor_tipo_dato O asignación mediante estructuras tipo bucle, ejemplo: desde Lectura, escritura leer (X) imprimir(X) Para leer un elemento individual: leer(X[n]) Acceso secuencial A la operación de efectuar una acción general sobre todos los elementos de un vector se la denomina recorrido del vector. Estas operaciones se realizan utilizando estructuras repetitivas, cuyas variables de control se utilizan como subíndices del vector. Así el elemento contador del bucle producirá un tratamiento sucesivo de los elementos del vector. Ejercicio: Crear, y leer 10 valor enteros de un vector tensión V, luego imprimir (escribir) en pantalla los valores ingresados. Actualización La actualización de un vector consiste en operaciones para añadir, insertar y borrar elementos del mismo. Esto puede realizarse en base a las operaciones de lectura y asignación. Ejercicio: Dado un vector A [9] = { Alfa Romeo, Fiat, Ford, Lancia, Renault, Seat } insertar los elementos: A[2]=Citroen y A[6]=Opel. Ordenación La ordenación o clasificación es el proceso de organizar datos en algún orden o secuencia específica tal como creciente o decreciente para datos numéricos o alfabéticamente para caracteres. Los métodos de ordenación se dividen en dos categorías: - Ordenación de vectores, array Ordenación de archivos Nosotros abordaremos en este curso el primer método. Si bien abordaremos la clasificación aplicada a vectores, los mismos métodos se pueden extender a matrices o tablas. Los métodos directos son los que se realizan en el espacio ocupado por el array , los más populares son: 1. Intercambio o de burbuja: se basa en comparar pares de datos adyacentes e intercambiarlos entre sí hasta que estén todos ordenados. 2. Ordenación por inserción: el método consiste en insertar un elemento en ele vector en una parte ya ordenada de este vector y comenzar de nuevo con los elementos restantes, se denomina también método baraja. 3. Ordenación por selección: el método consiste en buscar el elemento menor del vector y colocarlo en primer lugar, luego buscar el segundo elemento más pequeño y se coloca en la segunda posición, y así sucesivamente. ARRAY DE DOS DIMENSIONES (MATRICES) Un array bidimensional se puede considerar como un vector de vectores. Para especificar sus elementos individuales es necesario especificar dos subíndices. Lo declaramos así: var identificador : matriz [i, j] tipo_de_dato Ejercicios: 1. Realizar un algoritmo que muestre una tabla de 2 columnas con la secuencia de números binarios desde 0000 hasta el 1111 y su equivalente en decimal. Ejemplo: 0000 1111 0 15 2. Inicializar una matriz M [3,3] con el valor 1. 3. Diseñar un algoritmo que permita leer una tabla de 3x3 con datos numericos e identificar si un determinado valor (ejemplo 0) se encuentra presente, imprimiendo en pantalla la leyenda: “el valor: X esta presente”.