Title: Indice del curso
1Estructuras
- CONTENIDO
- Definición de tipos y declaración de variables
Estructura - Acceso a los campos de una Estructura
- Tablas de estructuras
- Paso de parámetros de tipo Estructura
- Por valor
- Por referencia - variable
- Estructuras anidadas
2Estructuras
- Una estructura es un conjunto de datos (llamados
campos), con las siguientes propiedades - Pueden ser de distinto tipo (int, char, float,
etc.). - Se denominan por identificadores distintos.
3Estructuras
Declaración de estructura (tipos y variables)
(LEA vs C)
LEA tipos Tr registro c1 T1 c2
T2 ... cn Tn fregistro variables
r Tr
C typedef struct T1 c1 T2 c2 ...
Tn cn Tr Tr r
4Estructuras
Declaración de estructura (tipos y variables)
(Ejemplo)
LEA tipos Tpersona registro nombre
cadena apellido1 cadena apellido2
cadena edad, dni entero sexo
caracter fregistro variables empleado
Tpersona
C typedef struct Cadena nombre, apellido1,
apellido2 int edad long dni char
sexo Tpersona Tpersona empleado
5Estructuras
Acceso a los campos de una estructura (LEA vs C)
C typedef struct T1 c1 T2 c2 ...
Tn cn Tr Tr r, pr Acceso a través de
variable estructura r.ci Acceso a través de
puntero a estructura pr-gtci o también
(pr).ci
LEA tipos Tr registro c1 T1 c2
T2 ... cn Tn fregistro variables
r Tr Acceso r.ci
6Estructuras
Acceso a los campos de una estructura (Ejemplo)
LEA tipos Tpersona registro nombre
cadena apellido1 cadena apellido2
cadena edad, dni entero sexo
caracter fregistro variables empleado
Tpersona Acceso empleado.nombre "Alicia"
escribir empleado.edad
C typedef struct Cadena nombre, apellido1,
apellido2 int edad long dni char
sexo Tpersona Tpersona empleado, p Acceso
a través de variable estructura strcpy
(empleado.nombre, "Alicia") printf ("d",
empleado.edad) Acceso a través de puntero a
estructura p-gtsexo m o también (p).sexo
m
7Estructuras
Tablas de estructura (LEA vs C)
LEA tipos Ttabla tabla dim de
Tr variables nombre Ttabla
C typedef Tr Ttabladim Ttabla nombre
8Estructuras
Tablas de estructuras (Ejemplo)
LEA constantes N 200 tipos Ttpersona
tabla N de Tpersona variables tab_alumno
Ttpersona
C define N 200 typedef Tpersona
TtpersonaN Ttpersona tab_alumno
Acceso al tercer carácter del nombre del décimo
empleado LEA tab_alumno10.nombre3 C tab_alu
mno9.nombre2
Acceso a los elementos de la tabla
9Estructuras
Paso de estructura como parámetros de entrada
(Ejemplo)
LEA empleado Tpersona Llamada
escribe_empleado (empleado) Definición proc
escribe_empleado (ent e Tpersona) prin escribir
e.nombre, e.apellido1, e.apellido2 escribir
e.edad, e.dni, e.sexo fin
C Tpersona empleado Prototipo void
escribe_empleado (Tpersona) Llamada
escribe_empleado (empleado) Definición void
escribe_empleado (Tpersona e) printf ("s
s, s\n", e.nombre,
e.apellido1, e.apellido2) printf ("d ld
c", e.edad, e.dni,
e.sexo)
10Estructuras
Paso de estructura como parámetros de salida
(Ejemplo)
LEA empleado Tpersona Llamada lee_empleado
(empleado) Definición proc lee_empleado (sal
e Tpersona) prin leer e.nombre,
e.apellido1, e.apellido2 leer e.edad,
e.dni, e.sexo fin
C Tpersona empleado Prototipo typedef
Tpersona PTpersona void lee_empleado
(PTpersona) Llamada lee_empleado
(empleado) Definición void lee_empleado
(PTpersona e) gets (e-gtnombre) gets
((e).apellido1) gets (e-gtapellido2)
scanf ("dldc", e-gtedad,
e-gtdni, (e).sexo)
11Estructuras
Acceso a los campos de una estructura anidada
(Ejemplo)
C typedef struct Cadena nombre, apellido1,
apellido2 fecha edad long dni char
sexo Tpersona Tpersona empleado