is record : ; : ; … : ; end record; Algorítmica y Programación I"> is record : ; : ; … : ; end record; Algorítmica y Programación I">

La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algorítmica y Programación

Presentaciones similares


Presentación del tema: "Algorítmica y Programación"— Transcripción de la presentación:

1 Algorítmica y Programación
Registros en Ada Vectores de Registros

2 Algorítmica y Programación I
Registros en Ada Un record se define con la palabra "record", seguida de la declaración de los campos del record y "end record". Declaración de tipo registro type <nombre del tipo> is record <nombre de campo 1> : <tipo de dato 1>; <nombre de campo 2> : <tipo de dato 2>; <nombre de campo N> : <tipo de dato N>; end record; Algorítmica y Programación I

3 Algorítmica y Programación I
Registros en Ada Declaración de variables y constantes <nombre de variable> : <tipo de dato registro>; <nombre de constante>: constant <tipo de dato registro>:= ( <nombre de campo 1> => <valor campo 1> , <nombre de campo 2> => <valor campo 2>, … , <nombre de campo N> => <valor campo N>); Algorítmica y Programación I

4 Algorítmica y Programación I
Ejemplo 1: type t_fecha is record dia:integer range 1..31; mes:string (1..10); anio:integer; end record; nacimiento: t_fecha; fecha_fija: constant t_fecha:= (dia => 01, mes => "Enero ", anio => 2011); Se pueden especificar valores iniciales para los campos de un record en la propia definición del tipo. Por ejemplo: mes:string (1..10) := (others => ' '); anio:integer:=2011; Algorítmica y Programación I

5 Algorítmica y Programación I
El acceso a los valores Para acceder a los campos de un registro se usa la clásica notación registro.componente: procedure Mostrar_fecha_nacimiento (nacimiento: in fecha) is begin nacimiento.dia := 15; nacimiento.mes := “Enero "; nacimiento.anio := 1980; Put_Line ("Su fecha de nacimiento es: " & integer’image(nacimiento.dia) & " de " & nacimiento.mes & " de " & integer’image(nacimiento.anio)); end Mostrar_fecha_nacimiento; Los registros pueden ser manipulados como objetos completos. Además, es posible asignar valores a todos los componentes de un registro mediante un conjunto ordenado o desordenado. agregado posicional: especificando los valores de todos los campos en el orden adecuado y entre paréntesis: nacimiento := (15, “Enero ", 1980 ); agregado nominal: especificando los nombres de los campos junto con los valores: nacimiento := (anio => 1980, mes => “Enero ", dia => 15); Cuando se usa un agregado nominal los campos se pueden enumerar en cualquier orden, pero siempre hay que enumerarlos a todos. Algorítmica y Programación I

6 Algorítmica y Programación I
Ejemplo 2: -- otra forma de declarar tipo fecha type t_mes is (ene,feb,mar,abr,may,jun,jul,ago,sep,oct,nov,dic); type t_fecha is record dia : integer range 1..31; mes : t_mes; anio : integer:=2010; end record; descubrimiento : constant t_fecha (12 ,oct, 1492); ayer,hoy : t_fecha; Algorítmica y Programación I

7 Algorítmica y Programación I
Ejemplo 3: type t_persona is record nombre : cadena25; dni : cadena8; domicilio : cadena25; cursadas : vector30; finales : vector30; end record; alumno, auxiliar, egresado : t_persona; ……………….. alumno.dni:=“ ”; egresado.finales:=(9.0,8.0,7.0,8.0,6.0,8.0, 9.0,8.0,7.0,8.0,6.0,8.0, 9.0,8.0,7.0, 9.0,8.0,7.0,8.0,6.0,8.0, 9.0,8.0,7.0,8.0,6.0,8.0, 9.0,8.0,7.0); alumno.cursadas:=(others =>6.0); Programa ejemplo En las siguientes dos diapositivas veremos el código fuente del Programa_ejemplo Algorítmica y Programación I

8 Algorítmica y Programación I

9 Algorítmica y Programación I

10 Algorítmica y Programación I
Vector de registros Podemos agrupar registros por medio de un arreglo, el cual puede ser de cualquier tipo simple de datos (entero, flotante, caracter, etc. ) o tipos compuestos (registros, arreglos) Teniendo en cuenta la declaración de tipo siguiente y nuevas variables veremos como manipular un arreglo de registros. Tipos T_registro = registro Campo1: T_dato1 Campo2: T_dato2 FinRegistro Variables VariableRegistro : T_registro ArregloRegistro: arreglo (30) de T_registro Comienza ...... i  1 { quiero acceder a la posición 1 del arreglo } VariableRegistro  ArregloRegistro ( i ) { accedo a la información de un registro} { si ahora quiero mostrar el primer campo de la 5 posición del arreglo de registros} Escribir (ArregloRegistro(5).Campo1) Termina Algorítmica y Programación I

11 Algorítmica y Programación I
Ejemplo : Supongamos que queremos almacenar información del personal de la Facultad. Primero debemos definir qué estructura utilizaremos para contener la información. Una elección posible podría ser: Tipos T_Registro_Persona = Registro Nombre : cadena20 Edad : entero Ocupacion : cadena25 Salario :flotante Fin Registro Variables Yo : T_Registro_Persona Facultad : Arreglo (30) de T_Registro_Persona { permite mantener información de 30 personas} Algorítmica y Programación I

12 Veamos cómo se dispone la información en la memoria:
Posición 1 2 3 4 5 6 7 8 9 28 29 30 facultad(1).nombre facultad(1).edad facultad(1).ocupacion facultad(1).salario facultad(2).nombre facultad(2).edad facultad(2).ocupacion facultad(2).salario facultad(3).nombre facultad(3).edad facultad(3).ocupacion facultad(3).salario facultad(29).nombre facultad(29).edad facultad(29).ocupacion facultad(29).salario facultad(30).nombre facultad(30).edad facultad(30).ocupacion facultad(30).salario Facultad Algorítmica y Programación I

13 Ejemplo de Vector de Registros en Ada
T_Persona is record nombre : cadena25; dni : cadena8; domicilio : cadena25; cursadas : vector30; finales : vector30; end record; T_Vec_Personas is array(1..30) of T_Persona; Info: T_Vec_Personas; ……… -- en el programa pueden aparecer instrucciones como…. info(i).nombre:=“Juan Perez ”; info(i).dni:=“ ”; for j in loop get(info(i).cursadas(j)) end loop; Algorítmica y Programación I

14 Algorítmica y Programación I
El siguiente programa manipula un vector de registros, en los que cada componente contiene información de tipo T_Persona En la siguiente diapositiva veremos el código fuente del ejecutable enlazado Algorítmica y Programación I

15 Algorítmica y Programación I

16 Algorítmica y Programación I

17 Algorítmica y Programación I
Veremos en el pizarrón cómo: generar un vector de registros ordenar un vector de registros imprimir un vector de registros Algorítmica y Programación I


Descargar ppt "Algorítmica y Programación"

Presentaciones similares


Anuncios Google