Estructura de datos I

Archivos

Introducción

  • Hasta el momento la información leída de consola es eliminada y/o perdida cuando el programa termina su ejecución.
  • Las variables declaras en un programa son cargadas y referenciadas en memoria RAM.
  • Surge la necesidad de almacenar la información en disco, para así tener un acceso y control de la información una vez el programa es inicializado o terminado.

Archivos secuenciales

Manejo de archivos secuenciales

Acción Intrucción Parámetro
Abrir el archivo ABRIR fileName(param) E: El archivo es de entrada
S: El archivo es de salida
Cerrar el archivo CERRAR fileName -
Cambiar el nombre RENOMBRAR(fileName, newFileName) fileName: Nombre actual
newFileName: Nuevo nombre
Eliminar BORRAR fileName -
Tomar un nuevo registro Leer regName regName: Nombre del registro especificado en el Buffer
Validar final del archivo EOF(fileName) fileName: Nombre del archivo
Copiar registros regName1         regName2 SIempre y cuando tengan la misma cantidad de campos

Declaración de los registros de un archivo

INICIO
|	BUFFER fileName
|	|	Dispositivo: deviceName
|	|	reg_name:
|	|		campo_1: tipo[tam]
|	|		campo_2: tipo[tam]
|	|		...
|	FIN-BUFFER
FIN

Ejemplo 1

Se requiere nombrar el Representante de los estudiantes de Uninorte al Consejo Directivo, para ello se va a desarrollar un algoritmo que va creando un archivo secuencial, con los datos de cada uno de los estudiantes que votaron por su candidato preferido. Suponga que hay 12 candidatos (Numerados del 1 al 12).

Nota: Por razones de simplicidad, el algoritmo no valida si los datos están correctos, pero en la realidad siempre hay que hacerlo, razón por la cual sobre este tema se insiste en algoritmia I y II.

 

Los campos a guardar de cada votante son: código de 9 dígitos, Nombre de 20 caracteres(máx), Nro del Candidato.

 

 

 

 

 

 

 

 

Adicional, se requiere saber número del candidato ganador. En caso de empate se debe indicar que se debe volver a realizar las votaciones.

codigo nombre nroCandidato
123424 Juan 5
518455 Ana 6

El departamento de Ing. de Sistema requiere almacenar las notas de los estudiantes en la asignatura de ED1. Para ello dispone de la siguiente información:

Realice un algoritmo, para:

  1. Calcular y almacenar los datos de todos los estudiantes en un archivo secuencial.
    • Nota 1: Equivale al 30%
    • Nota 2: Equivale al 30%
    • Nota 3: Equivale al 40%
  2. Calcule e indique sobre cada nota definitiva:
    • Media.
    • Mayor.
  3. Genere un archivo EP.txt que contenga todos los estudiantes con nota definitiva inferior a 3.0 y elimine del archivo de notas el respectivo estudiante.
  4. Indique qué estudiantes están por encima del promedio general en la nota definitiva.
ID Name Mark1 Mark2 Mark3 Total
24334 Juan 2.3 4.24 3.45
558521 Ana 0.0 2.5 0.5

Ejemplo 2

Cruce de archivos

En un banco se tiene un archivo con los datos de sus clientes: Cedula, Nombre y Saldo, se requiere un algoritmo para actualizarlo en base a los depósitos y retiros de un día especifico. El banco tiene una restricción y es que el cliente solo puede hacer un deposito o un retiro.

  • Se tiene un archivo secuencial ya creado llamado Clientes, ordenado ascendentemente por cedula que contiene los siguientes campos.
  • Se tiene un archivo secuencial ordenado por CedulaT, llamado Transacciones.

Archivos indexados

Listas

  • Simplemente enlazada
  • Circular simplemente enlazada
  • Doblemente enlazada
  • Circular doblemente enlazada

Estructura de datos I

By Sebastian Ariza

Estructura de datos I

  • 147