Recopilación y Preparación Prof. Yusneyi Carballo Universidad Central de Venezuela. Escuela de Computación - Algoritmos y Programación Feb-05, Nov 08 4. Registros Estructura de datos formada por una colección finita de elementos llamados campos, no necesariamente homogéneos (del mismo tipo) y que permiten almacenar una serie de datos relacionados entre sí bajo un nombre y una estructura común. 4.1 Características básicas de los Registros Permiten almacenar un grupo de elementos bajo un nombre y un estructura común Los elementos (campos) de un registro no tienen que ser homogéneos, de hecho, generalmente son de diferentes tipos No están disponibles en todos los lenguajes de programación, razón por la cual muchas veces es necesario simularlo o definirlo. Cada campo del registro se comporta como una variable simple, de manera que puede ser usado en una expresión de asignación, como parte de otra expresión, en operaciones o como parámetro al invocar una acción o función. 4.2 Declaración de registros A. Declaración por Variable: se declara la variable de tipo registro identificándola a través de su nombre, se indica la estructura del registro suministrando la definición de sus campos mediante sus tipos de dato y sus nombres La sintaxis a utilizar para declarar un registro será: Registro <identificador> = <Tipo de dato>1 <Identificador>1 <Tipo de dato>2 <Identificador>2 … <Tipo de dato>N <Identificador>N Fregistro; // se indica el nombre del registro // tipo de dato y nombre del campo 1 // tipo de dato y nombre del campo 2 // tipo de dato y nombre del campo N B. Declaración por Tipo: Al igual que con los arreglos, para declarar un tipo de registro definido por el usuario, se antecede a la especificación la palabra clave Tipo y luego se definen las variables del tipo. El uso de la declaración por tipo facilita la declaración de variables con una estructura común, así como el pase de parámetros. 4.3 Operaciones básicas en Registros A. Operación constructora B. Operación selectora A. Operación Constructora: Permite asociarle al nombre de un registro un dato estructurado, el cual se corresponde componente a componente con la declaración del registro. Esta operación permite inicializar los campos del registro. Ejemplo: // Declaración del registro Tipo Registro Fecha = Entero día, mes, año; FRegistro; // Construcción de una variable registro llamada Persona Persona ← {10234223, “Carlos Morales”, {10, 10, 1986} } Valor campo CI Valor campo Nombre Valor campo FNacimiento Registro Persona = Entero CI; String Nombre; Fecha FNacimiento; FRegistro; Pág. 1 Recopilación y Preparación Prof. Yusneyi Carballo Universidad Central de Venezuela. Escuela de Computación - Algoritmos y Programación Feb-05, Nov 08 B. Operación Selectora: Permite Varerenciar o seleccionar un campo particular del registro. Su sintaxis es: Nombre de la variable tipo Registro <identificador_registro>.<identificador_campo> Ejemplos: Persona.CI Persona.FNacimiento Nombre del campo que se está consultando dentro del registro Al igual que los arreglos, los registros o sus campos pueden ser pasados como parámetro. 4.4 Ejemplo del uso de Registros (pasos a considerar) ~j~ IMPORTANTE ~j~ 1. Declarar la estructura de los registros a utilizar (declarar los Registros): Tipo Registro Asignación = Real Transporte; Real Comida; Real Vacaciones; FRegistro; Tipo Registro Deducción = Real Seguro; Real Vivienda; Real Impuesto; FRegistro; Tipo Registro Empleado = Entero Cédula; String Nombre; Lógico Activo; Carácter Sexo; Real Sueldo_Hora; Entero Horas_Trab; Asignación AS; Deducción DE; FRegistro; 2. Declarar las variable que se necesitan de cada tipo de registro, en este caso, se declara la variable E de tipo Empleado Empleado E; 3. Inicializar cada campo del (los) registro(s) a utilizar 3.1 Usando la Operación Constructora E = {10234223, “Juan Mata”, Verdad, ‘M’, 6000, 160, {15000, 50000, 0.0}, {2500.75, 3687.25, 1547.15} } 3.2 Usando la operación selectora para cada campo del registro Acción Inicializar (Ref Empleado E) E.Cédula = 10234223; E.Nombre = “Juan Mata”; E.Activo = Verdad; E.Sexo = ‘M’; E.Sueldo_Hora = 6000; E.Horas_Trab = 160; E.AS.Transporte = 15000; E.AS.Comida = 50000; E.AS.Vacaciones = 0,0; E.DE.Seguro = 2500,75; E.DE.Vivienda = 3687,25; E.DE.Impuesto = 1547,15; Facción Inicializar sigue Ê Pág. 2 Universidad Central de Venezuela. Escuela de Computación - Algoritmos y Programación Recopilación y Preparación Prof. Yusneyi Carballo Feb-05, Nov 08 4. Crear los algoritmos de las acciones, funciones o métodos necesarios, en este ejemplo, se indica el algoritmo de una función para calcular el sueldo de un empleado activo Función Sueldo (Empleado E) : Real // Calcula el sueldo de un empleado activo Real A; // sumatoria de asignaciones del empleado Real D; // sumatoria de deducciones del empleado // sueldo total del empleado (variable de retorno) Real S; Si E.Activo entonces A = E.AS.Transporte + E.AS.Comida + E.AS.Vacaciones; D = E.DE.Seguro + E.DE.Vivienda + E.DE.Impuesto; S = ((E.Sueldo_Hora * E.Horas_Trab) + A) – D: Sino S = 0,0; fSi Retornar(S); Ffunción Sueldo; Ejercicios Asignados de Arreglos, Registros y Archivos: 1. Dado dos arreglos (del mismo tamaño N) de estudiantes ordenados ascendentemente por el campo CI, generar un tercer arreglo (tamaño 2N)que sea la mezcla ordenada de los anteriores. Tipo Registro Estudiante = Entero CI; String Nombre; Entero ND; FRegistro; 2. Almacenar en un arreglo de registros el nombre, cédula, ingreso mensual durante un año y fecha de ingreso a la empresa de 10 empleados. A partir de esta información calcular y almacenar los años de antigüedad de cada empleado y el monto total que cobró en el año.. Ejercicios Asignados de Arreglos, Registros: 3. Dado un arreglo de registros con información de N compradores, se debe crear un archivo de salida llamado “Result” en donde se identifique a todos los clientes que hicieron compras por un valor en BsF mayor al promedio general del arreglo. Del archivo Result deben mostrase luego los clientes que hicieron las compras de mayor monto en BsF. 4. Dado un arreglo de tamaño N con información de estudiantes y la nota definitiva obtenida en una materia, recorrerlo para indicar cuántos estudiantes cursaron la materia, cuántos aprobaron, cuántos reprobaron y quiénes se retiraron. Pág. 3