TEMA 7: Registros y Archivos - Facultad de Ciencias-UCV

Anuncio
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE MATEMÁTICA
INTRODUCCIÓN A LA COMPUTACIÓN
TEMA 7: Registros y Archivos
Registros
Un registro es un tipo de datos estructurado formado por una colección finita de elementos,
no necesariamente del mismo tipo (es heterogénea). Permite almacenar un conjunto de datos
relacionados entre sí, bajo un mismo nombre. Los registros pueden generar nuevos tipos de
datos ya que a partir de ellos se pueden declarar variables con su misma estructura.
Notación:
Register <nombre>
<tipo_1> <campo_1>;
...
<tipo_n> <campo_n>;
endRegister
Register Fecha
integer Dia;
integer Mes;
integer Año;
endRegister
Operación de selección: Esta operación permite acceder a un campo particular del registro. Por
ejemplo:
Para declarar un registro de tipo Fecha:
Fecha F;
F.Dia = 24;
F.Mes = 1;
F.Año = 2007;
Es posible anidar registros dentro de otros, por ejemplo:
Register Fecha_Patria
String nombre_fecha_patria;
Fecha fecha:
endRegister
Fecha_Patria f1;
Existen dos maneras posibles para acceder a los atributos del campo fecha de la variable f1
perteneciente al registro Fecha_Patria:
1) Navegando a través de los registros: f1.fecha.Dia
2) Por transitividad y de forma directa: f1.Dia (Esto aplica sí y sólo sí en el registro principal
NO hay un campo llamado igual al campo del registro más interno).
Archivos
Un archivo es una estructura de datos heterogénea que reside en memoria secundaria.
Características:
• Persistencia en el tiempo
• Gran capacidad de almacenamiento
Notación:
File <Identificador>;
El archivo debe ser abierto antes de poder usarlo. Para abrir un archivo se debe especificar si
se va a abrir para lectura o para escritura:
FileOpen(<Identificador>, <NombreArchivo>, <Modo>);
En donde:
<Identificador> es la variable de tipo archivo.
<NombreArchivo> es un string que contiene el nombre del archivo.
<Modo> es un string que representa el modo de apertura del archivo. Puede ser “R” o “W”.
Por ejemplo:
File F;
FileOpen(F, "datos.txt", "R");
Al finalizar de usar el archivo, este debe cerrarse para que otros programas puedan utilizarlo,
para ello usaremos:
FileClose(<Identificador>);
En donde Identificador es la variable de tipo archivo que deseamos cerrar.
La función EOF(<Identificador>) (End Of File) retorna un lógico que indica si se llegó al final del
archivo o no.
Para leer de un archivo:
FileRead(<IdentificadorArchivo>, <Nombre de Variable>);
En donde <IdentificadorArchivo> es una variable de tipo archivo y <Nombre De Variable> es la
variable en donde se almacenará el valor leído del archivo.
Para escribir en un archivo:
FileWrite(<IdentificadorArchivo>, <Nombre de Variable>);
Ejemplo: dado un archivo de enteros, hacer un algoritmo que encuentre el mayor valor del
archivo
Procedure Main()
File F;
integer max, x;
FileOpen(F, "Numeros.txt", "R");
FileRead(F, max);
while not EOF(F) do
FileRead(F, x);
if x >max then
max = x;
endIf
endWhile
FileClose(F);
Write(max);
endProcedure
Licenciado Wilson Manyoma, Caracas, Enero 2013
Descargar