Fundamentos de Estructuras de Datos y Gestión de Archivos en Programación

Informática y Telecomunicaciones5,21 KB

Fundamentos de Estructuras de Datos y Gestión de Archivos

1. Registros (Records)

Registros (Records): Un registro o record sirve para agrupar distintos tipos de datos que deben estar relacionados entre sí. Por ejemplo, los datos de una persona: nombre, edad, etc.

1.1. La Sentencia WITH

La sentencia WITH permite referenciar el nombre del registro en su cabecera. Posteriormente, para acceder a un campo, solo se necesita el nombre del campo, evitando la necesidad de escribir el selector de campo completo junto con el nombre del registro.

1.2. Registros Anidados

Un registro que contiene uno o más campos que son, a su vez, de tipo registro, se denomina registro jerárquico o registro anidado.

2. Archivos (Files)

Un archivo (file) es una colección de datos relacionados entre sí que se encuentra almacenada en algún dispositivo de almacenamiento de una PC.

A diferencia de los arreglos (vectores) y matrices, los archivos se guardan en memoria secundaria, lo que garantiza que:

  • Los datos contenidos en el archivo no se pierden cuando la PC se apaga.
  • Además, los archivos son dinámicos, en el sentido de que no se establece de antemano la cantidad de datos que se van a almacenar.

Recordemos que los arreglos y matrices, cuyo tamaño se establece en tiempo de compilación, se almacenan en memoria principal.

2.1. Tipos de Archivos

Archivos de Texto (TXT)

Están conformados únicamente por caracteres.

Archivos Tipados (Con Tipo) o Binarios

También llamados archivos binarios, contienen datos de tipo simple o estructurado, tales como integer, real, record, etc., a excepción de otro tipo de archivos. Los archivos con tipos están estructurados en elementos o registros (record) cuyo tipo puede ser cualquiera.

Archivos Sin Tipo

Todos los archivos utilizados hasta ahora suponen algún tipo de estructura. Si no se conoce la estructura del registro, se debe utilizar un archivo sin tipo. Los archivos sin tipo son canales de bajo nivel, utilizados principalmente para acceso directo a cualquier archivo de disco, con independencia de su tipo y estructura.

2.2. Archivos de Acceso Secuencial (Con Tipo)

Dependiendo de la manera en que se acceden los registros de un archivo, este se clasifica como secuencial o como directo. En el caso de los archivos de acceso secuencial, para acceder al registro localizado en la posición N, se deben haber accedido los N-1 registros previos, siguiendo un orden secuencial.

3. Operaciones Fundamentales de Archivos

La sentencia RESET
Permite abrir un archivo que ya existe para su utilización.
La sentencia REWRITE
Crea y abre un archivo nuevo para ser utilizado.
READ
Se utiliza para leer el contenido del registro correspondiente.
CLOSE
Permite cerrar un archivo después de haber sido utilizado.
EOF (End of File)
La función EOF (fin de archivo) devuelve el estado de un archivo. Es una función de tipo lógico que indica si el fin de archivo se ha encontrado; devuelve TRUE si se encontró, y FALSE en caso contrario.
FILEPOS
Obtenemos la posición del puntero dentro del archivo correspondiente.
FILESIZE
La función FILESIZE nos devuelve el tamaño del archivo especificado en registros. Si el archivo está vacío, devuelve como resultado el número cero. La sintaxis es idéntica a la función FILEPOS.
SEEK
Permite posicionarnos en un determinado registro del archivo, teniendo en cuenta que la numeración de los registros empieza en cero (0).

4. Estructuras de Datos Estáticas: Arreglos y Matrices

4.1. Arreglo (Vector)

A continuación, se presenta un ejemplo de programa que utiliza un arreglo para procesar datos:

Program ejemplo;
var 
    c: Array [1..5] of integer; 
    b: Array [1..5] of integer; 
    i1, i2: integer; 
begin 
    writeln ('Ingrese valores:'); 
    i2 := 0; 
    
    for i1 := 1 to 5 do 
        readln (c[i1]); 
        
    for i1 := 1 to 5 do 
    begin 
        if (c[i1] mod 2 = 0) and (c[i1] > 0) then 
        begin 
            i2 := i2 + 1; 
            b[i2] := c[i1]; (* Asumiendo que 'vacio' se refiere al arreglo 'b' *)
        end; 
    end; 
end.

4.2. Matrices

Ejemplo de programa que utiliza una matriz para encontrar la temperatura máxima:

program ej; 
var 
    m: Array[1..12, 1..31] of integer; 
    i, j, max: integer; 
begin 
    max := m[1, 1]; 
    
    for i := 1 to 12 do 
        for j := 1 to 31 do 
            if m[i, j] > max then 
                max := m[i, j]; 
                
    writeln ('Ingrese mes y día:'); 
    readln (i, j); 
    writeln ('m[', i, ',', j, '] es la temperatura del día.'); 
    writeln ('La temperatura máxima del año es: ', max); 
end.

Descargar

PDF Word HTML