SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
1
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
CONTENIDOS
ESTRUCTURAS
1. Concepto de estructura
2. Definición del tipo de dato estructura
3. Declaración de variables de tipo estructura
4. Inicialización de variables de tipo estructura
5. Acceso a los miembros de una estructura
6. Uso de estructuras en asignaciones
7. Estructuras anidadas
8. Arrays de estructuras
9. Resumen de los tipos de datos vistos hasta el momento
10. Lo veremos más adelante ...
2
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Introducción
Hemos visto anteriormente el tipo de dato compuesto ARRAY definido
como una colección de elementos del mismo tipo.
"Ana" "Pedro" "Antonio" … "Luis"
0 1 2 N-1
Nombres =
6129215 6154215 6144258 6165024
Teléfonos =
Elementos
de tipo cadena
Elementos
de tipo entero
En algunos casos nos puede interesar trabajar con colecciones de elementos
de distinto tipo:
Alumno =
Nombre
(tipo cadena)
Teléfono
(tipo int)
Curso
(tipo int)
Lugar de nacimiento
(tipo cadena)
"Ana" 6129215 1 "Sevilla"
ESTRUCTURA
...
3
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Concepto de estructura:
• Una estructura es una colección de uno o más elementos, cada uno de
los cuales puede ser de un tipo de dato diferente.
• Cada elemento de la estructura se denomina miembro.
• Una estructura puede contener un número ilimitado de miembros.
• A las estructuras también se las llama registros.
Ejemplo:
Podemos crear una estructura llamada disco que contiene 4 miembros:
título del disco, número de canciones, precio y fecha de compra.
"El piano" 15 18 "18112003"
cadena int int cadena
4
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Definición del tipo de dato estructura:
Una estructura es un tipo de dato creado por el usuario, por tanto, es
necesario definirlo antes de poder utilizarlo. Un vez definido, podremos
crear variables de tipo estructura.
struct <nombre_de_la estructura>
{
<tipo_de_dato> <nombre_miembro_1>;
<tipo_de_dato> <nombre_miembro_2>;
…
<tipo_de_dato> <nombre_miembro_n>;
} ;
Sintaxis
Palabra reservada
Lista de
miembros
Solo se especifica el nombre y el formato de la estructura.
No se reserva almacenamiento en memoria.
OJO!
No hay que olvidar el ;
5
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Ejemplos:
Para definir el tipo de dato disco como
una estructura con 4 miembros:
void main( )
{
….
struct disco
{
char titulo[30];
int num_canciones;
float precio;
char fecha_compra[8];
} ;
...
}
void main( )
{
….
struct complejo
{
int real;
int imaginaria;
} ;
...
}
Declaración del tipo de dato complejo
como una estructura con 2 miembros.
6
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Declaración de variables de tipo estructura:
Una vez definido el tipo de dato estructura, necesitamos declarar
variables de ese tipo ( como para cualquier tipo de dato !!! ).
Existen dos formas diferentes:
En la definición del tipo de datos estructura.
Como el resto de las variables.
struct complejo
{
int real;
int imaginaria;
} comp1, comp2, comp3 ;
...
complejo comp4, comp5 ;
…
El compilador reserva la memoria necesaria para almacenar las 5 variables.
Los miembros de cada variable se
almacenan en posiciones consecutivas en
memoria.
7
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Inicialización de variables de tipo estructura:
Las variables de tipo estructura las podemos inicializar de dos formas:
struct complejo
{
int real;
int imaginaria;
} comp1= {25, 2} ;
...
complejo comp4 = {25, 2} ;
…
Se especifican los valores de cada uno de los miembros entre llaves y
separados por comas.
2. Inicialización en la declaración de la variable:
1. Inicialización en el cuerpo del programa: Lo veremos más adelante.
8
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Inicialización de variables de tipo estructura:
void main( )
{
….
struct disco
{
char titulo[30];
int num_canciones;
float precio;
char fecha_compra[8];
};
…..
disco cd = { “El piano”, 15, 18, “18112003” };
...
}
"El piano" 15 18 "18112003"
cd =
Mas ejemplos de inicialización
de variables de tipo disco
Definición de la estructura
(formato)
¿Cuánta memoria reserva
el compilador ?
9
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Acceso a los miembros de una variable de tipo estructura:
Una vez que hemos declarado una variable de tipo estructura, podemos
acceder a los miembros de dicha variable:
Nos puede interesar modificar la información de alguno de los miembros,
recuperar información para imprimirla por pantalla, etc.
El acceso a los miembros se puede hacer de dos formas:
Utilizando el operador punto (.)
"El piano" 15 18 "18112003"
cd =
variable.miembro
cd.titulo , cd.precio , cd.num_canciones
Selector
directo
variable
variable −>
−> miembro
miembro
Utilizando el operador puntero
Utilizando el operador puntero (
(−>
−>)
)
Selector
indirecto
Lo veremos
más
adelante
10
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Acceso a los miembros de una variable de tipo estructura:
"El piano" 15 18 "18112003"
cd =
struct disco
{
char titulo[30];
int num_canciones;
float precio;
char fecha_compra[8];
};
…..
disco cd;
…
cd.titulo =“El piano”;
cd.num_canciones =15;
cd.precio =18;
cd.fecha_compra =“18112003”;
...
Inicialización de la
variable cd1
11
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Acceso a los miembros de una variable de tipo estructura:
struct disco
{
char titulo[30];
int num_canciones;
float precio;
char fecha_compra[8];
};
…..
disco cd;
…
cout << “n Introduzca título” ;
cin.getline ( cd.titulo, 30 ) ;
cout << “n Introduzca precio” ;
cin>> cd.precio ;
….
cout << cd.titulo;
precio_final = cd.precio - 10;
cd.precio = precio_final;
Almacenar información en la
variable cd
mediante el teclado
Recuperar y modificar información
de la variable cd
12
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Uso de variables de tipo estructura en asignaciones:
Se puede asignar una estructura a otra de la siguiente manera:
struct disco
{
char titulo[30];
int num_canciones;
float precio;
char fecha_compra[8];
};
…..
disco cd1 = { “El piano”, 15, 18, “18112003” };
….
disco cd2, cd3;
cd2 = cd1;
cd2 = cd3 = cd1;
13
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Estructuras anidadas:
Se pueden definir estructuras donde uno o varios de los miembros son a
su vez de tipo estructura.
struct direccion
{
char calle[30];
int numero;
int cod_postal ;
char poblacion[30];
};
struct telefonos
{
char casa[13] ={‘0’};
char oficina[13]; ={‘0’};
char movil[13] ={‘0’};
};
struct cliente
{
char nombre[30];
direccion dir;
telefonos tlf ;
int edad;
} ;
Ejemplo
El acceso a los miembros requiere el
uso múltiple del operador punto (.)
cliente c;
c.nombre = “Ana Gonzalez”;
c.dir.calle = “Av. Europa”;
c.dir.numero = 12;
c.tlf.movil =“602.23.23.23”;
c.tlf.casa = “91.123.45.67”;
14
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Estructuras anidadas:
struct direccion
{
char calle[30];
int numero;
int cod_postal ;
char poblacion[30];
};
struct telefonos
{
char casa[12] ={‘0’};
char oficina[12]; ={‘0’};
char movil[12] ={‘0’};
};
struct cliente
{
char nombre[30];
direccion casa;
direccion oficina ;
telefonos tlf;
int edad;
} ;
cliente c;
...
c.nombre = “Ana Gonzalez”;
c.casa.calle = “Av. Europa”;
c.casa.numero = 45;
c.oficina.calle = “Pirineos”;
c.tlf.oficina =“602.23.23.23”;
c.tlf.casa = “91.123.45.67”;
Ejemplo
15
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Arrays de estructuras:
Supongamos que queremos guardar información de todos los discos que
tenemos en nuestra casa. Con una variable de tipo disco, solo podemos
guardar los datos de uno. Necesitaremos un array de discos:
Tenemos una colección de elementos del mismo tipo.
Se utilizan mucho los arrays de estructuras como método para
almacenar datos en un archivo y leer datos de un archivo.
"Dirty work"
10
12,75
"10091998"
……..
"El piano"
15
18
"18112003"
"18 Tracks"
18
20,5
"12122001"
0 1 n-1
mis_cds =
Nombre del array
16
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Arrays de estructuras. Declaración:
La declaración de un array de estructuras es igual a cualquier otro array:
"Dirty work"
10
12,75
"10091998"
……..
"El piano"
15
18
"18112003"
"18 Tracks"
18
20,5
"12122001"
0 1 n-1
mis_cds =
<tipo_de_dato> <nombre_de_variable> [numero_de_elementos] ;
disco mis_cds [n] ;
Sintaxis de la declaración
de un array
17
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Arrays de estructuras. Acceso a los elementos:
El acceso a los elementos se hace como en un array normal, se pone el
nombre del array seguido del índice del elemento al que queremos
acceder.
Ahora, si queremos acceder a los miembros de los elementos del array:
"Dirty work"
10
12,75
"10091998"
……..
"El piano"
15
18
"18112003"
"18 Tracks"
18
20,5
"12122001"
0 1 n-1
mis_cds =
mis_cds[0] mis_cds[1] mis_cds[n-1]
mis_cds[0].titulo = “El piano” ; cin>> mis_cds[0].num_canciones ;
mis_cds[1].precio = 20,5 ; cout << mis_cds[1].titulo ;
18
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Tipos de datos básicos
• int
• float
• double
• bool
• char
• void
Tipo de datos compuesto básico
• arrays
• cadenas
Tipo de datos definidos por el usuario
• Enumeraciones enum
es un tipo definido por el usuario con
constantes de nombre de tipo entero
• Operador typedef
typedef permite al programador crear
nuevos tipos a partir de otros.
• Estructuras
Tipos ya definidos ofrecidos por el lenguaje
Tipos de datos vistos hasta el momento
19
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Veremos ...
• Cuando estudiemos el tema de punteros y memoria dinámica,
veremos otra forma de acceso a los miembros de una variable de
tipo estructura.
• En C++ se utilizan las clases para contener datos y funciones.
Las estructuras se utilizan para contener datos con tipos diferentes,
pero se permite que los miembros de las estructuras sean datos y
funciones. Lo veremos cuando estudiemos el tema de funciones.
20
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras
Las estructuras en C++ se implementaron para conservar la
compatibilidad con el lenguaje C, pero en C++ no tienen
mucho sentido el utilizarlas ya que existe otro concepto más
general que las engloba: las clases.
Las estructuras son un caso particular de las clases.

Más contenido relacionado

La actualidad más candente

Creación de Bases de Datos en SQL Server
Creación de Bases de Datos en SQL ServerCreación de Bases de Datos en SQL Server
Creación de Bases de Datos en SQL ServerZeleneMorita
 
Modificaciones De Ansi Sql
Modificaciones De Ansi SqlModificaciones De Ansi Sql
Modificaciones De Ansi Sqlguest0c9485
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datosLuis Bando
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysqlpolar
 
MS-DOS ejemplo
MS-DOS ejemploMS-DOS ejemplo
MS-DOS ejemploazrahim
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datosAlvaro Cardona
 
Apuntes.13
Apuntes.13Apuntes.13
Apuntes.13plufitos
 
Tm13 introduccion al_sql
Tm13 introduccion al_sqlTm13 introduccion al_sql
Tm13 introduccion al_sqlJulio Pari
 
Ejercicios MS-DOS
Ejercicios MS-DOSEjercicios MS-DOS
Ejercicios MS-DOSVicenta
 
Proyecto estructura
Proyecto estructuraProyecto estructura
Proyecto estructuramercy
 
Command oracle
Command oracleCommand oracle
Command oraclednrdeleon
 
Creacion de bases de datos en SQL Server
Creacion de bases de datos en SQL ServerCreacion de bases de datos en SQL Server
Creacion de bases de datos en SQL ServerRayoMonster
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial BásicoJosu Orbe
 
Instituto tecnológico superior de zongolicaarturo
Instituto tecnológico superior de zongolicaarturoInstituto tecnológico superior de zongolicaarturo
Instituto tecnológico superior de zongolicaarturoZuki Atll Temox
 

La actualidad más candente (19)

Creación de Bases de Datos en SQL Server
Creación de Bases de Datos en SQL ServerCreación de Bases de Datos en SQL Server
Creación de Bases de Datos en SQL Server
 
Trabajo de visual basic
Trabajo de visual basicTrabajo de visual basic
Trabajo de visual basic
 
Mysql
MysqlMysql
Mysql
 
Modificaciones De Ansi Sql
Modificaciones De Ansi SqlModificaciones De Ansi Sql
Modificaciones De Ansi Sql
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datos
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
MS-DOS ejemplo
MS-DOS ejemploMS-DOS ejemplo
MS-DOS ejemplo
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
 
Apuntes.13
Apuntes.13Apuntes.13
Apuntes.13
 
54563910 curso-de-mysql
54563910 curso-de-mysql54563910 curso-de-mysql
54563910 curso-de-mysql
 
Tm13 introduccion al_sql
Tm13 introduccion al_sqlTm13 introduccion al_sql
Tm13 introduccion al_sql
 
Ejercicios MS-DOS
Ejercicios MS-DOSEjercicios MS-DOS
Ejercicios MS-DOS
 
Proyecto estructura
Proyecto estructuraProyecto estructura
Proyecto estructura
 
Command oracle
Command oracleCommand oracle
Command oracle
 
Creacion de bases de datos en SQL Server
Creacion de bases de datos en SQL ServerCreacion de bases de datos en SQL Server
Creacion de bases de datos en SQL Server
 
Crear carpeta md o mkdir
Crear carpeta md o mkdirCrear carpeta md o mkdir
Crear carpeta md o mkdir
 
MySQL. Tutorial Básico
MySQL. Tutorial BásicoMySQL. Tutorial Básico
MySQL. Tutorial Básico
 
Instituto tecnológico superior de zongolicaarturo
Instituto tecnológico superior de zongolicaarturoInstituto tecnológico superior de zongolicaarturo
Instituto tecnológico superior de zongolicaarturo
 
Tarea 2
Tarea 2Tarea 2
Tarea 2
 

Similar a Tipos de datos definidos por el programador: Estructuras

Similar a Tipos de datos definidos por el programador: Estructuras (20)

Estructuras 1
Estructuras 1Estructuras 1
Estructuras 1
 
Estructuras ing. Vanessa Borgas
Estructuras ing. Vanessa BorgasEstructuras ing. Vanessa Borgas
Estructuras ing. Vanessa Borgas
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
 
Tema-estructuras-c++.pdf
Tema-estructuras-c++.pdfTema-estructuras-c++.pdf
Tema-estructuras-c++.pdf
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Clase 10_ programacion
Clase 10_ programacionClase 10_ programacion
Clase 10_ programacion
 
ESTRUCTURAS Y UNIONES EN C++
ESTRUCTURAS Y UNIONES EN C++ESTRUCTURAS Y UNIONES EN C++
ESTRUCTURAS Y UNIONES EN C++
 
Cplus
CplusCplus
Cplus
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Apuntes de estructuras nuevo
Apuntes de estructuras nuevoApuntes de estructuras nuevo
Apuntes de estructuras nuevo
 
Lenguaje sql
Lenguaje sqlLenguaje sql
Lenguaje sql
 
Unidad%2 bxii estructuras
Unidad%2 bxii estructurasUnidad%2 bxii estructuras
Unidad%2 bxii estructuras
 
Diagrama de Flujo de Datos
Diagrama de Flujo de DatosDiagrama de Flujo de Datos
Diagrama de Flujo de Datos
 
presentación pensamiento sistemico.pdf
presentación pensamiento sistemico.pdfpresentación pensamiento sistemico.pdf
presentación pensamiento sistemico.pdf
 
Programación II_modulo1lolololololo9oo.pptx
Programación II_modulo1lolololololo9oo.pptxProgramación II_modulo1lolololololo9oo.pptx
Programación II_modulo1lolololololo9oo.pptx
 
Integración de DataStax de Spark con Cassandra
Integración de DataStax de Spark con CassandraIntegración de DataStax de Spark con Cassandra
Integración de DataStax de Spark con Cassandra
 
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptxOVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
 
Modificaciones De Ansi Sql
Modificaciones De Ansi SqlModificaciones De Ansi Sql
Modificaciones De Ansi Sql
 

Más de José Ricardo Tillero Giménez

Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRPGuía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRPJosé Ricardo Tillero Giménez
 

Más de José Ricardo Tillero Giménez (20)

PLAN DE EVALUACIÓN REDES AVANZADAS II-2021
PLAN DE EVALUACIÓN REDES AVANZADAS II-2021PLAN DE EVALUACIÓN REDES AVANZADAS II-2021
PLAN DE EVALUACIÓN REDES AVANZADAS II-2021
 
Guía Ejercicios SQL
Guía Ejercicios SQLGuía Ejercicios SQL
Guía Ejercicios SQL
 
Guía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de DatosGuía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de Datos
 
Guía 1 Ejercicios MR
Guía 1 Ejercicios MRGuía 1 Ejercicios MR
Guía 1 Ejercicios MR
 
Guía 2 Ejercicios de Normalización de Base de Datos
Guía 2 Ejercicios de Normalización de Base de DatosGuía 2 Ejercicios de Normalización de Base de Datos
Guía 2 Ejercicios de Normalización de Base de Datos
 
Guía 3 Ejercicios MER Extendido
Guía 3 Ejercicios MER ExtendidoGuía 3 Ejercicios MER Extendido
Guía 3 Ejercicios MER Extendido
 
Guía 2 Ejercicios MER
Guía 2 Ejercicios MERGuía 2 Ejercicios MER
Guía 2 Ejercicios MER
 
Guía 1 Ejercicios MER
Guía 1 Ejercicios MERGuía 1 Ejercicios MER
Guía 1 Ejercicios MER
 
Plan de evaluación BD2021
Plan de evaluación BD2021Plan de evaluación BD2021
Plan de evaluación BD2021
 
Perfil Docente y Asesoría
Perfil Docente y AsesoríaPerfil Docente y Asesoría
Perfil Docente y Asesoría
 
Planificación BD2021
Planificación BD2021Planificación BD2021
Planificación BD2021
 
UNIDAD 1. El mundo de las Bases de Datos y los SMBD
UNIDAD 1. El mundo de las Bases de Datos y los SMBDUNIDAD 1. El mundo de las Bases de Datos y los SMBD
UNIDAD 1. El mundo de las Bases de Datos y los SMBD
 
NOTAS FINALES DE REDES AVANZADAS IIN4301
NOTAS FINALES DE REDES AVANZADAS IIN4301NOTAS FINALES DE REDES AVANZADAS IIN4301
NOTAS FINALES DE REDES AVANZADAS IIN4301
 
NOTAS FINALES ELECTIVA II IN2102
NOTAS FINALES ELECTIVA II IN2102NOTAS FINALES ELECTIVA II IN2102
NOTAS FINALES ELECTIVA II IN2102
 
NOTAS FINALES ELECTIVA II IN2101
NOTAS FINALES ELECTIVA II IN2101NOTAS FINALES ELECTIVA II IN2101
NOTAS FINALES ELECTIVA II IN2101
 
Notas definitivas per base de datos
Notas definitivas per base de datosNotas definitivas per base de datos
Notas definitivas per base de datos
 
Clase 6 VLAN
Clase 6 VLANClase 6 VLAN
Clase 6 VLAN
 
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRPGuía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
 
Guía CISCO de redistribución de protocolos de ruteo
Guía CISCO de redistribución de protocolos de ruteoGuía CISCO de redistribución de protocolos de ruteo
Guía CISCO de redistribución de protocolos de ruteo
 
Manual Basico de jQuery
Manual Basico de jQueryManual Basico de jQuery
Manual Basico de jQuery
 

Último

Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 

Último (20)

Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 

Tipos de datos definidos por el programador: Estructuras

  • 1. 1 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras CONTENIDOS ESTRUCTURAS 1. Concepto de estructura 2. Definición del tipo de dato estructura 3. Declaración de variables de tipo estructura 4. Inicialización de variables de tipo estructura 5. Acceso a los miembros de una estructura 6. Uso de estructuras en asignaciones 7. Estructuras anidadas 8. Arrays de estructuras 9. Resumen de los tipos de datos vistos hasta el momento 10. Lo veremos más adelante ... 2 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Introducción Hemos visto anteriormente el tipo de dato compuesto ARRAY definido como una colección de elementos del mismo tipo. "Ana" "Pedro" "Antonio" … "Luis" 0 1 2 N-1 Nombres = 6129215 6154215 6144258 6165024 Teléfonos = Elementos de tipo cadena Elementos de tipo entero En algunos casos nos puede interesar trabajar con colecciones de elementos de distinto tipo: Alumno = Nombre (tipo cadena) Teléfono (tipo int) Curso (tipo int) Lugar de nacimiento (tipo cadena) "Ana" 6129215 1 "Sevilla" ESTRUCTURA ...
  • 2. 3 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Concepto de estructura: • Una estructura es una colección de uno o más elementos, cada uno de los cuales puede ser de un tipo de dato diferente. • Cada elemento de la estructura se denomina miembro. • Una estructura puede contener un número ilimitado de miembros. • A las estructuras también se las llama registros. Ejemplo: Podemos crear una estructura llamada disco que contiene 4 miembros: título del disco, número de canciones, precio y fecha de compra. "El piano" 15 18 "18112003" cadena int int cadena 4 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Definición del tipo de dato estructura: Una estructura es un tipo de dato creado por el usuario, por tanto, es necesario definirlo antes de poder utilizarlo. Un vez definido, podremos crear variables de tipo estructura. struct <nombre_de_la estructura> { <tipo_de_dato> <nombre_miembro_1>; <tipo_de_dato> <nombre_miembro_2>; … <tipo_de_dato> <nombre_miembro_n>; } ; Sintaxis Palabra reservada Lista de miembros Solo se especifica el nombre y el formato de la estructura. No se reserva almacenamiento en memoria. OJO! No hay que olvidar el ;
  • 3. 5 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Ejemplos: Para definir el tipo de dato disco como una estructura con 4 miembros: void main( ) { …. struct disco { char titulo[30]; int num_canciones; float precio; char fecha_compra[8]; } ; ... } void main( ) { …. struct complejo { int real; int imaginaria; } ; ... } Declaración del tipo de dato complejo como una estructura con 2 miembros. 6 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Declaración de variables de tipo estructura: Una vez definido el tipo de dato estructura, necesitamos declarar variables de ese tipo ( como para cualquier tipo de dato !!! ). Existen dos formas diferentes: En la definición del tipo de datos estructura. Como el resto de las variables. struct complejo { int real; int imaginaria; } comp1, comp2, comp3 ; ... complejo comp4, comp5 ; … El compilador reserva la memoria necesaria para almacenar las 5 variables. Los miembros de cada variable se almacenan en posiciones consecutivas en memoria.
  • 4. 7 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Inicialización de variables de tipo estructura: Las variables de tipo estructura las podemos inicializar de dos formas: struct complejo { int real; int imaginaria; } comp1= {25, 2} ; ... complejo comp4 = {25, 2} ; … Se especifican los valores de cada uno de los miembros entre llaves y separados por comas. 2. Inicialización en la declaración de la variable: 1. Inicialización en el cuerpo del programa: Lo veremos más adelante. 8 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Inicialización de variables de tipo estructura: void main( ) { …. struct disco { char titulo[30]; int num_canciones; float precio; char fecha_compra[8]; }; ….. disco cd = { “El piano”, 15, 18, “18112003” }; ... } "El piano" 15 18 "18112003" cd = Mas ejemplos de inicialización de variables de tipo disco Definición de la estructura (formato) ¿Cuánta memoria reserva el compilador ?
  • 5. 9 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Acceso a los miembros de una variable de tipo estructura: Una vez que hemos declarado una variable de tipo estructura, podemos acceder a los miembros de dicha variable: Nos puede interesar modificar la información de alguno de los miembros, recuperar información para imprimirla por pantalla, etc. El acceso a los miembros se puede hacer de dos formas: Utilizando el operador punto (.) "El piano" 15 18 "18112003" cd = variable.miembro cd.titulo , cd.precio , cd.num_canciones Selector directo variable variable −> −> miembro miembro Utilizando el operador puntero Utilizando el operador puntero ( (−> −>) ) Selector indirecto Lo veremos más adelante 10 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Acceso a los miembros de una variable de tipo estructura: "El piano" 15 18 "18112003" cd = struct disco { char titulo[30]; int num_canciones; float precio; char fecha_compra[8]; }; ….. disco cd; … cd.titulo =“El piano”; cd.num_canciones =15; cd.precio =18; cd.fecha_compra =“18112003”; ... Inicialización de la variable cd1
  • 6. 11 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Acceso a los miembros de una variable de tipo estructura: struct disco { char titulo[30]; int num_canciones; float precio; char fecha_compra[8]; }; ….. disco cd; … cout << “n Introduzca título” ; cin.getline ( cd.titulo, 30 ) ; cout << “n Introduzca precio” ; cin>> cd.precio ; …. cout << cd.titulo; precio_final = cd.precio - 10; cd.precio = precio_final; Almacenar información en la variable cd mediante el teclado Recuperar y modificar información de la variable cd 12 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Uso de variables de tipo estructura en asignaciones: Se puede asignar una estructura a otra de la siguiente manera: struct disco { char titulo[30]; int num_canciones; float precio; char fecha_compra[8]; }; ….. disco cd1 = { “El piano”, 15, 18, “18112003” }; …. disco cd2, cd3; cd2 = cd1; cd2 = cd3 = cd1;
  • 7. 13 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Estructuras anidadas: Se pueden definir estructuras donde uno o varios de los miembros son a su vez de tipo estructura. struct direccion { char calle[30]; int numero; int cod_postal ; char poblacion[30]; }; struct telefonos { char casa[13] ={‘0’}; char oficina[13]; ={‘0’}; char movil[13] ={‘0’}; }; struct cliente { char nombre[30]; direccion dir; telefonos tlf ; int edad; } ; Ejemplo El acceso a los miembros requiere el uso múltiple del operador punto (.) cliente c; c.nombre = “Ana Gonzalez”; c.dir.calle = “Av. Europa”; c.dir.numero = 12; c.tlf.movil =“602.23.23.23”; c.tlf.casa = “91.123.45.67”; 14 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Estructuras anidadas: struct direccion { char calle[30]; int numero; int cod_postal ; char poblacion[30]; }; struct telefonos { char casa[12] ={‘0’}; char oficina[12]; ={‘0’}; char movil[12] ={‘0’}; }; struct cliente { char nombre[30]; direccion casa; direccion oficina ; telefonos tlf; int edad; } ; cliente c; ... c.nombre = “Ana Gonzalez”; c.casa.calle = “Av. Europa”; c.casa.numero = 45; c.oficina.calle = “Pirineos”; c.tlf.oficina =“602.23.23.23”; c.tlf.casa = “91.123.45.67”; Ejemplo
  • 8. 15 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Arrays de estructuras: Supongamos que queremos guardar información de todos los discos que tenemos en nuestra casa. Con una variable de tipo disco, solo podemos guardar los datos de uno. Necesitaremos un array de discos: Tenemos una colección de elementos del mismo tipo. Se utilizan mucho los arrays de estructuras como método para almacenar datos en un archivo y leer datos de un archivo. "Dirty work" 10 12,75 "10091998" …….. "El piano" 15 18 "18112003" "18 Tracks" 18 20,5 "12122001" 0 1 n-1 mis_cds = Nombre del array 16 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Arrays de estructuras. Declaración: La declaración de un array de estructuras es igual a cualquier otro array: "Dirty work" 10 12,75 "10091998" …….. "El piano" 15 18 "18112003" "18 Tracks" 18 20,5 "12122001" 0 1 n-1 mis_cds = <tipo_de_dato> <nombre_de_variable> [numero_de_elementos] ; disco mis_cds [n] ; Sintaxis de la declaración de un array
  • 9. 17 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Arrays de estructuras. Acceso a los elementos: El acceso a los elementos se hace como en un array normal, se pone el nombre del array seguido del índice del elemento al que queremos acceder. Ahora, si queremos acceder a los miembros de los elementos del array: "Dirty work" 10 12,75 "10091998" …….. "El piano" 15 18 "18112003" "18 Tracks" 18 20,5 "12122001" 0 1 n-1 mis_cds = mis_cds[0] mis_cds[1] mis_cds[n-1] mis_cds[0].titulo = “El piano” ; cin>> mis_cds[0].num_canciones ; mis_cds[1].precio = 20,5 ; cout << mis_cds[1].titulo ; 18 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Tipos de datos básicos • int • float • double • bool • char • void Tipo de datos compuesto básico • arrays • cadenas Tipo de datos definidos por el usuario • Enumeraciones enum es un tipo definido por el usuario con constantes de nombre de tipo entero • Operador typedef typedef permite al programador crear nuevos tipos a partir de otros. • Estructuras Tipos ya definidos ofrecidos por el lenguaje Tipos de datos vistos hasta el momento
  • 10. 19 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Veremos ... • Cuando estudiemos el tema de punteros y memoria dinámica, veremos otra forma de acceso a los miembros de una variable de tipo estructura. • En C++ se utilizan las clases para contener datos y funciones. Las estructuras se utilizan para contener datos con tipos diferentes, pero se permite que los miembros de las estructuras sean datos y funciones. Lo veremos cuando estudiemos el tema de funciones. 20 TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras Las estructuras en C++ se implementaron para conservar la compatibilidad con el lenguaje C, pero en C++ no tienen mucho sentido el utilizarlas ya que existe otro concepto más general que las engloba: las clases. Las estructuras son un caso particular de las clases.