Actualizado el 14 de Enero del 2019 (Publicado el 17 de Diciembre del 2018)
2.667 visualizaciones desde el 17 de Diciembre del 2018
4,4 MB
51 paginas
Creado hace 11a (21/01/2014)
Fundamentos de la programación
5555
I
I
Grados en Ingeniería Informática, Ingeniería
Grados en Ingeniería Informática, Ingeniería
dlSf
dlSf
d
d
i
i
í d C
í d C
del Software e Ingeniería de Computadores
del Software e Ingeniería de Computadores
Ana Gil
Ana Gil Luezas
Luezas
(adaptadas del original de Luis Hernández Yáñez)
(adaptadas del original de Luis Hernández Yáñez)
FacultaddeInformática
FacultaddeInformática
Facultad de Informática
Facultad de Informática
Universidad Complutense
Universidad Complutense
Tipos de datos
Tipos de datos
Estructuras
Estructuras
Estructuras dentro de estructuras
Estructuras dentro de estructuras
Arrays de estructuras
Arrays
de estructuras
Arrays dentro de estructuras
Arrays
Arrays
Arrays dentro de estructuras
dentro de estructuras
dentro de estructuras
Listas de longitud variable
Listas de longitud variable
Insertar
Insertar
Eliminar
Eliminar
Eliminar
Eliminar
Buscar
Buscar
Cadenas de caracteres de tipo string
string
Cadenas de caracteres de tipo
Entrada/salida con string
string
ii
Entrada/salida con
Operaciones con string
string
Operaciones con
Un ejemplo completo
Un ejemplo completo
d /
d /
l d
l d
22
55
1111
1212
1313
1313
1414
1616
1818
1818
2020
2323
2626
2828
3232
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Página
Página 22
Clasificación de tipos
Clasificación de tipos
Simples
Simples
Primitivos:
Primitivos:
Primitivos: intint,, float
Primitivos: intint, , float
float,, double
float, , double
double,, charchar,, boolbool
double, , charchar, , boolbool
Conjunto de valores predeterminado
Conjunto de valores predeterminado
Definidosporelusuario: enumerados
Definidosporelusuario:
Definidos por el usuario:
Definidos por el usuario: enumerados
Conjunto de valores definido por el programador
Conjunto de valores definido por el programador
d
Estructurados
E
E
Estructurados
d
Colecciones homogéneas:
Colecciones homogéneas: arrays
Td
Td
Todos los elementos del mismo tipo
Todos los elementos del mismo tipo
l
l
i
i
dl
dl
l
l
i
i
Colecciones heterogéneas:
Colecciones heterogéneas: estructuras
d
t
L
L
l
l
t
d
d ti
d ti
ditit
ditit
Los elementos pueden ser de tipos distintos
Los elementos pueden ser de tipos distintos
enumerados
enumerados
arrays
estructuras
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Página
Página 33
Colecciones o tipos aglomerados
Colecciones o tipos aglomerados
tabla
tabla
registro
Agrupaciones de datos:
Agrupaciones de datos:
Todos
Todosdeldelmismomismotipotipo:: array
Todos
Todosdeldelmismomismotipotipo:: array
arrayoo tabla
arrayoo tabla
estructuraoo registro
DeDetipos
tiposdistintos
distintos:: estructura
)
Arrays (tablas)
A
A
Arrays (tablas)
( bl
( bl
)
Elementos organizados por posición: 0, 1, 2, 3, ...
Elementos organizados por posición: 0, 1, 2, 3, ...
Acceso por índice: 0, 1, 2, 3, ...
Acceso por índice: 0, 1, 2, 3, ...
Una o varias dimensiones
Una o varias dimensiones
Estructuras (registros)
Estructuras (registros)
Elementos(campos)sinordenestablecido
Elementos(campos)sinordenestablecido
Elementos (campos) sin orden establecido
Elementos (campos) sin orden establecido
Acceso por nombre
Acceso por nombre
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Página
Página 44
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Página
Página 55
Colecciones heterogéneas (registros)
Colecciones heterogéneas (registros)
campos
Elementos de (posiblemente) distintos tipos:
Elementos de (posiblemente) distintos tipos: campos
Camposidentificadosporsunombre
Camposidentificadosporsunombre
Campos identificados por su nombre
Campos identificados por su nombre
Accesoacadaelementoporsunombredecampo(operador
Accesoacadaelementoporsunombredecampo(operador))
Acceso a cada elemento por su nombre de campo (operador
Acceso a cada elemento por su nombre de campo (operador..))
Información relacionada que se puede manejar como una unidad
Información relacionada que se puede manejar como una unidad
struct { {
typedef
typedef struct
nombre_de_campo1;;
tipo1
tipo1 nombre_de_campo1
nombre_de_campo2;;
tipo2
tipo2 nombre_de_campo2
......
// nombre de tipo al final
pp ;; //
//
} } tTipo
tTipo; ; // nombre de tipo al final
}}
p
p
struct
struct
{{
Campo
Campo
}}
Identificador
Identificador
;;
Campo
Campo
Campo
Campo
pppp
TipoTipo
pp
Identificador
Identificador
;;
;;
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Página
Página 66
typedef
typedef struct
struct {{
nombre_de_campo1;;
tipo1 nombre_de_campo1
tipo1
nombre_de_campo2;;
tipo2
tipo2 nombre_de_campo2
// declaraciones de campos (como variables)
...
// declaraciones de campos (como variables)
... // declaraciones de campos (como variables)
// declaraciones de campos (como variables)
tTipo; ; // nombre de tipo al final
} } tTipo
// nombre de tipo al final
struct {{
typedef
typedef struct
string
string nombre;
nombre;
string
string apellidos;
apellidos;
intint edad;
edad;
string
string nifnif;;
string
string nifnif;;
} } tPersona
tPersona;;
Campos:
Campos:
Campos:
Campos:
Tipos estándar o previamente declarado
Tipos estándar o previamente declarado
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Página
Página 77
tPersonacontienen cuatro datos (campos):
contienen cuatro datos (campos):
edad
edad
edad
edad
nifnif
nifnif
(
(
tPersona persona;
tPersona
tPersona
tPersona persona;
persona;
persona;
nombre
nombre
nombre
nombre
apellidos
apellidos
apellidos
apellidos
Usamos el tipo para declarar variables:
Usamos el tipo para declarar variables:
Las variables de tipo
Las variables de tipo tPersona
Acceso a los campos con el operador punto (
Acceso a los campos con el operador punto (..):):
Podemos copiar dos estructuras directamente:
Podemos copiar dos estructuras directamente:
pp
Se copian como bloque o campo a campo?
Se copian como
bloque o campo a campo?
persona.nombre // una cadena (string)
// una cadena (string)
persona.nombre
pp
g)
g)
//
//
persona.apellidos
persona.apellidos // una cadena (string)
// una cadena (string)
// un entero (int)
// un entero (int)
persona.edad
persona.edad
persona.nif // una cadena (string)
persona.nif
// una cadena (string)
tPersona persona1, persona2;
tPersona
persona1, persona2;
......
persona2 = persona1;
persona2 = persona1;
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Página
Página 88
struct {{
typedef
typedef struct
string
string nombre;
nombre;
gg
;;
string
string apellidos;
apellidos;
intint edad;
edad;
string
string nif;
string
string nif;
nif;
nif;
} } tPersona
tPersona;;
tPersona persona;
tPersona
persona;
persona
persona
persona
persona
nombre
Luis Antonio
nombre Luis Antonio
Luis Antonio
Luis Antonio
nombre
nombre
nombre
nombre
apellidos
Hernández Yáñez
apellidos Hernández Yáñez
Hernández Yáñez
Hernández Yáñez
Hernández Yáñez
Hernández Yáñez
apellidos Hernández Yáñez
Hernández Yáñez
apellidos
apellidos
apellidos
apellidos
apellidos
apellidos
apellidos
apellidos
apellidos
edadedad
edadedadedadedad
2222
2222
nifnif 00223344F
00223344F
00223344F
00223344F
nifnifnifnif
Memoria
Memoria
Luis
Luis
Antonio
Antonio
persona.nombre
persona.nombre
persona.apellidos
persona.apellidos
p
p
p
p
Hernández
Hernández
YáñeYáñe
Yáñez
Yáñez
persona.edad
persona.edad
pp
2222
persona.nif
persona.nif
00223344F
00223344F
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Página
Página 99
struct {{
typedef
typedef struct
string
string
string nombre;
nombre;
string nombre;
nombre;
string
string apellidos;
apellidos;
intint edad;
edad;
string nif;
string
nif;
} } tPersona
tPersona;;
tPersona persona;
tPersona
tPersona
tPersona persona;
persona;
persona;
Acceso directo por nombre de campo (operador ..))
Accesodirectopornombredecampo(operador
Accesodirectopornombredecampo(operador ))
Acceso directo por nombre de campo (operador
Con cada campo se puede hacer lo que permita su tipo
Con cada campo se puede hacer lo que permita su tipo
Lasestructurassepasanalossubprogramas
Lasestructurassepasanalossubprogramas
Lasestructurassepasanalossubprogramas
Lasestructurassepasanalossubprogramas
Las estructuras se pasan a los subprogramas
Las estructuras se pasan a los subprogramas
Las estructuras se pasan a los subprogramas
Las estructuras se pasan a los subprogramas
por valor (sin &) o por referencia (con &)
por valor (sin &) o por referencia (con &)
por valor (sin &) o por referencia (con &)
por valor (sin &) o por referencia (con &)
Fundamentos de la programación: Tipos de datos estructurados
Fundamentos de la programación: Tipos de datos estructurados
Página
Página 1010
typedef
typedef struct
struct {{
intint dnidni;;
intint dnidni;;
char
char letra;
letra;
}} tNif
tNif;;
typedef
typedef struct
struct { {
......
tNif
tNif nif;
nif;
} } tPersona
tPersona;;
tPersona persona;
tPersona
persona;
Acceso al NIF :
Acceso al NIF :
Acceso a la letra del NIF:
Acceso a la letra del NIF:
AccesoalDNI:
AccesoalDNI:
Acceso al DNI:
Acceso al DNI:
persona.nif.letra
persona.nif.letra
persona nif // Otra estructura
persona nif
persona.nif
persona.nif // Otra estructura
// Otra estructura
// Otra estructura
tPersona
tPersona
tPersona
tPersona
tPersona
tPersona
nombre
nombre
nombre
nombre
nombre
nombre
apellidos
apellidos
apellidos
apellidos
apellidos
apellidos
e
Comentarios de: 5. Tipos de datos estructurados (0)
No hay comentarios