Formaciones

Necesidad de las formaciones
Facilita la ordenación de diversos datos. Las formaciones permiten la generalización de la declaración, referencia y manipulación de datos del mismo tipo.
Vectores
Declaración de vectores: TipoVector = ARRAY TipoIndice OF TipoElemento
Operaciones con vectores
- Asignación: Para esto los vectores tienen que ser compatibles.=> vectorUno := vectorDos
- Referencia a un elemento del vector: vectorUno [5]
- Utilizarlos como argumentos de procedimientos o funciones.
Formaciones anidadas. Matrices
Declaración de matrices:
TipoMatriz = ARRAY TipoIndice1, TipoIndice2,... OF TipoElemento
Operaciones con matrices
- Asignación: Para esto las matrices tienen que ser compatibles. => matrizUna:=matrizDos
- Referencia a un elemento de la matriz: matrizUno [5][Azul] ó matrizUno [5,Azul]
- Referencia a un vector de la matriz: matrizUno[5]
- Utilizarlas como argumentos de procedimientos o funciones.
Esquemas típicos de operación
Recorrido
Consiste en realizar la misma operación con todos y cada uno de los elementos de una formación Se emplean estructuras de tipo FOR Las variables utilizadas como indices de los FOR deben ser de los mismos TipoIndice utilizados en la declaración de la formación y su rango de variación será desde un valor extremo al otro del rango de la misma declaración
Búsqueda secuencial
El recorrido se debe detener en cuanto se encuentre el elemento buscado y solo será completo cuando no se encuentre el elemento buscando dentro de la formación Se emplean estructuras WHILE.
Esquema general:
Iniciar Búsqueda
WHILE (NOT encontrado) AND (NOT final)
DO
Pasar al siguiente elemento;
Verificar encuentro;
END
Cuando se sabe que el vector tiene al menos un elemento, es posible emplear la sentencia REPEAT, también se puede utilizar la secuencia LOOP
Inserción
Una operación de inserción de un nuevo elemento en una formación supone desplazar algunos de sus datos actuales para conseguir el hueco que le corresponde al nuevo elemento y después insertarlo en el hueco
Posible esquema:
Iniciar Inserción
WHILE (NOT hueco_encontrado) AND (NOT final)
DO
Desplazar elemento;
Pasar al siguiente elemento;
END;
Insertar nuevo elemento
Ordenación por inserción directa
Este modo consiste en insertar el elemento extraído en su lugar correspondiente entre los elementos ya ordenados Se repite con todos los vectores hasta quedar ordenado todo el vector
Búsqueda por dicotomía
Consiste en buscar un elemento en 2 mitades La búsqueda finaliza cuando el elemento se encuentra o bien cuando no es ninguno de los 2 datos consecutivos a los que queda reducida la comparación después de sucesivas divisiones en mitades.
Simplificación de las condiciones de contorno
Matrices orladas: Matrices que se dimensionan con 2 filas y 2 columnas mas de las necesarias
Vector de caracteres: Ristra
Las ristras son vectores de caracteres: ARRAY [0..n] OF CHAR: considerado como ristra o string.
Características peculiares de las ristras:
- El primer elemento de una ristra es el de indice cero.
- En un vector de esta clase se pueden almacenar ristras de diferentes longitudes (si caben) Para distinguir la longitud útil en cada momento se reserva siempre un espacio para un carácter mas, y se hace que toda la ristra termine con carácter nulo (OC) situado al final.
Argumentos de tipo vector abierto
Una forma de trabajar con vectores de diferentes tamaños es definir un tipo único con capacidad para el mayor de todos los que se necesiten
Cuando no se utiliza todo el tamaño, es necesario indicar de alguna forma que elementos se están empleando realmente.
Esto se puede hacer marcando el final con un valor nulo como sucede con las ristras (despilfarra memoria). La solución es emplear vectores abiertos.
Vector abierto: Es aquel del que solo se define el tipo de sus elementos, pero no el rango del indice. El tipo implícito de su indice es siempre un subrango comprendido entre 0 y 1, valor máximo.
PROCEDURE Muestra (X: ARRAY OF TipoElemento)












Live in Blogs
Blog Bellezza
City Guides Blog
Cyfuss
Que Cocino
Solo Libros Blog
Enviar un comentario nuevo