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:
- 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%
- Calcule e indique sobre cada nota definitiva:
- Media.
- Mayor.
- 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.
- 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