4. Noción de Secuencia¶
4.1. Concepto¶
Una secuencia es un conjunto de datos relacionados entre sí que cumplen ciertas características:
Existencia del primer elemento: El acceso a este permite el acceso posterior a los demás.
Relación de sucesión: Todo objeto, salvo el último, precede a un sucesor. Permite construir el acceso a todos los elementos.
Finitud: Puede ser conocida o no (por cantidad o marca de fin). Deben ser finitas y acotadas por una condición de fin.
Existencia del último elemento: Un indicador de fin de secuencia.
Su tamaño no es fijo y puede variar. Requiere asignación de almacenamiento en memoria dinámica.
4.2. Clasificación¶
4.2.1. Según su contenido¶
De datos elementales (Ej: secuencia de caracteres, secuencia de números).
De registros.
4.2.2. Según su procesamiento¶
Definidas: Se conoce el último elemento antes de iniciar el proceso.
Utiliza estructura Manejada por Contador (PARA) o Post-Test (REPETIR).
Indefinidas: No se conoce el último elemento.
Puras: Utiliza estructura Pre-Test (MIENTRAS). El fin se detecta al intentar leer más allá del último elemento.
Impuras: Cuentan con una marca de fin explícita como un elemento más de la secuencia.
4.3. Uso en el Algoritmo¶
4.3.1. Definición en el ambiente¶
Se define la estructura de datos (tipo de elemento de la secuencia) y la variable de tipo secuencia.
// Ejemplo: secuencia de caracteres
// 'v' sería la variable para almacenar el caracter actual
// 'sec' es la variable que representa la secuencia en sí
sec: Secuencia de caracter
v: caracter
// Ejemplo: secuencia de números enteros
// 'num' sería la variable para el entero actual
// 'sec_enteros' es la variable secuencia
sec_enteros: Secuencia de entero
num: entero
4.3.2. Acciones en el procesamiento (Operadores de Secuencia)¶
ARR(sec)
: Abrir/Arreglar. Permite iniciar el tratamiento de una secuencia ya existente. Posiciona un puntero conceptual al inicio de la secuenciasec
para la lectura.AVZ(sec, v)
: Avanzar. Recupera el contenido del elemento actual de la secuenciasec
en la variablev
, y avanza el puntero conceptual al siguiente elemento. Indica fin de secuencia si no hay más elementos.CREAR(secNueva)
: Crear. Inicializa una nueva secuenciasecNueva
como vacía. Prepara la secuencia para escritura.ESC(sec, v)
: Escribir. Agrega el contenido de la variablev
como un nuevo elemento al final de la secuenciasec
. La secuencia debe haber sido abierta conCREAR
.CERRAR(sec)
: (No listado explícitamente en los PDFs pero implícito en el manejo de archivos/secuencias) Finaliza el procesamiento de la secuenciasec
, guardando cambios si es de salida.
4.4. Sub-Secuencias¶
Conjunto de elementos consecutivos, incluidos en la secuencia, considerados como un subconjunto de acuerdo a la definición del problema. Cumplen las mismas características que una secuencia.
Ejemplos:
Palabra: Subconjunto de elementos de una secuencia de caracteres que comienza con un carácter distinto de espacio y finaliza con un espacio o marca específica.
H O L A M U N D O . FDS
(FDS es fin de secuencia) Palabras: «HOLA», «MUNDO»Oración: Subconjunto de elementos de una secuencia de caracteres que comienza con un carácter distinto de espacio y finaliza con un punto
.
o marca específica.H O L A M U N D O . A D I O S . FDS
Oraciones: «H O L A M U N D O .», «A D I O S .»DNI: Subconjunto de 8 elementos consecutivos de una secuencia de caracteres, donde cada carácter es un dígito.
N-O-M-B-R-E- -1-2-3-4-5-6-7-8-FDS
DNI: «12345678»
4.4.1. Relación entre Sub-Secuencias¶
Enlazadas: Identificadas una a continuación de la otra. El inicio de una sub-secuencia indica el fin de la anterior (salvo inicio/fin de secuencia general). Ej:
Nombre1-DNI1-Nombre2-DNI2-...
Jerárquicas: Identificadas por pertenencia o inclusión. Una sub-secuencia está contenida dentro de otra. Ej: Una
ORACION
está formada porPALABRAS
. El inicio y fin de una sub-secuencia de mayor jerarquía determina el inicio y fin de otras sub-secuencias incluidas.SECUENCIA PRINCIPAL | +-- ORACION 1 | | | +-- PALABRA 1.1 | +-- PALABRA 1.2 | +-- ORACION 2 | +-- PALABRA 2.1