SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
C++
UG
Lenguaje de Programación: C++
Estructuras
José Luis Alonzo Velázquez
Universidad de Guanajuato
Octubre 2010
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Estructuras
Una estructura es un grupo de variables las cuales pueden ser de
diferentes tipos sostenidas o mantenidas juntas en una sola unidad.
La unidad es la estructura.
Las estructuras de datos se emplean con el objetivo principal de
organizar los datos contenidos dentro de la memoria de la PC. Ası́,
nuestra primera experiencia con estructuras comienza desde el
momento mismo en que usamos en nuestros programas variables
de tipos primitivos (char, short, int, float, etc).
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Sintaxis
En C/C++ se forma una estructura utilizando la palabra reservada
struct, seguida por un campo etiqueta opcional, y luego una lista
de miembros dentro de la estructura. La etiqueta opcional se
utiliza para crear otras variables del tipo particular de la estructura:
struct [ <nombre tipo de estructura > ] {
[<tipo> <nombre-variable[,nombre-variable,...]>];
[<tipo> <nombre-variable[,nombre-variable,...]>];
...
} [ <variables de estructura> ] ;
Un punto y coma finaliza la definición de una estructura puesto
que ésta es realmente una sentencia C/C++.
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Sintaxis: Caso uno, estructura anónima
De acuerdo con la sintaxis general de la orden struct es posible
crear estructuras de datos anónimas. Solamente hay que tener en
cuenta que en una declaración anónima se debe definir al menos
una variable al final de la declaración. Por ejemplo, con el siguiente
fragmento de código:
struct {
int a;
int b;
} p1;
se declara y define la variable estructurada p1, misma que se
compone por los miembros a y b; ambos del tipo int.
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Ahora bien, la sintaxis mostrada no es tan común ni conveniente,
ya que con la misma solamente se esta creando una variable
estructurada pero no un nuevo tipo. Es decir, si deseáramos tener
otra variable que tuviera las mismas caracterı́sticas que posee la
variable p1, necesitarı́amos escribir exactamente la misma
instrucción, salvo que cambiando el nombre de la variable. Por
ejemplo:
struct { int a, b; } p2;
Por supuesto, en una misma lı́nea de instrucción podemos definir
más de una variable. Ejemplo:
struct { int a, b; } p1, p2;
Entonces, para crear nuevos tipos con struct deberemos de
modificar la sintaxis mostrada en los ejemplos anteriores.
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Sintaxis: Caso dos, estructura con nombre
Observe que, la sintaxis para declarar estructuras con nombre es
bastante parecida a la sintaxis para declarar estructuras anónimas;
salvo que una declaración de estructura con nombre se debe
especificar el nombre deseado para la misma. Además, en una
declaración de estructura con nombre la o las variables definidas al
final de la misma son opcionales.
struct pareja { int a, b; } p1;
Observación
En el fragmento de código anterior se declara la estructura
identificada como pareja, misma que se compone de los miembros
a y b, ambos de tipo int. En el mismo ejemplo, se define la variable
p1; la cual es una variable estructurada de tipo pareja.
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Uso del nombre
Una vez que una estructura con nombre ha sido creada, la misma
puede ser usada para declarar cualquier número de variables. Por
ejemplo, en el siguiente fragmento de código se crea la estructura
tiempo compuesta por los miembros hora, minuto y segundo; todos
del tipo int. En el mismo ejemplo, se declaran las variables t1 y t2.
/* declaración de estructura tiempo */
struct tiempo { int hora, minuto, segundo; };
/* declaración de variables de tipo tiempo */
struct tiempo t1, t2;
Nota
En C++ puede obviarse la palabra struct a la hora de declarar
variables. Ası́, en C++ la lı́nea de instrucción struct tiempo t1, t2;
( del ejemplo anterior) puede escribirse como: tiempo t1, t2;
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Acceso a los miembros de una estructura
En orden de poder leer o escribir uno de los miembros de una
variable estructurada se debe usar el operador de acceso ( . ), o
sea, el nombre de la variable seguida por un punto seguido por el
nombre del miembro o componente deseado de la estructura. Por
ejemplo, para acceder a los miembros de la variable t1 (mostrada
arriba) podemos hacerlo de la siguiente manera:
Ejemplo
t1.hora = 12;
t1.minuto = 0;
t1.segundo = 0;
printf ("%in", t1.hora);
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Estructuras anidadas
Los miembros de una estructura pueden ser ellos mismos otra
estructura previamente identificada o bien una estructura anónima.
Por ejemplo, en el siguiente fragmento de código se crean las
estructuras pareja y pareja2. Obsérvese cómo dentro de los
miembros de pareja2 se declara el miembro X, mismo que es una
estructura del tipo pareja. Luego, las variables declaradas a raı́z de
la estructura pareja2 poseerán los miembros variables a y b
heredados de pareja, y c.
struct pareja { int a, b ; };
struct pareja2 { struct pareja X; int c; } P3;
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Acceso en este caso
Ahora bien, para acceder a los miembros de una estructura dentro
de otra estructura se emplea el mismo mecanismo de acceso (el
punto). Por ejemplo, para desplegar el miembro a de la variable P3
declarada en el ejemplo anterior, lo haremos más o menos ası́:
printf( "%in", P3.X.a );
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Declaración de una estructura
#include <stdio.h>
using namespace std;
struct punto{
int x;
int y;
};
struct linea{
punto p1;
punto p2;
};
int main(){
return 0;
}
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Ejemplo de uso de las estructuras descritas
int main(){
linea l1;
l1.p1.x=1;
l1.p1.y=1;
l1.p2.x=2;
l1.p2.y=2;
printf("La linea l1 pasa por los puntos (%d,%d),
(%d,%d)n",l1.p1.x,l1.p1.y,l1.p2.x,l1.p2.y);
return 0;
}
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
C++ Estructuras
Programming Principles and Practice Using C++, Bjarne
Stroustrup.
http://www.codeblocks.org
http://www.wxwidgets.org
(O’Reilly) Practical C Programming (3rd Edition)
José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras

Más contenido relacionado

Similar a Diapositivs~Estruct Datos C++.pdf

Similar a Diapositivs~Estruct Datos C++.pdf (20)

Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
GuíA De PráCtica 2
GuíA De PráCtica 2GuíA De PráCtica 2
GuíA De PráCtica 2
 
Tema-estructuras-c++.pdf
Tema-estructuras-c++.pdfTema-estructuras-c++.pdf
Tema-estructuras-c++.pdf
 
Lenguajes de Programación: Tutorial csharp
Lenguajes de Programación: Tutorial csharpLenguajes de Programación: Tutorial csharp
Lenguajes de Programación: Tutorial csharp
 
Estructura de registros
Estructura de registrosEstructura de registros
Estructura de registros
 
Estructuras 1
Estructuras 1Estructuras 1
Estructuras 1
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
colas de prioridad
colas de prioridad colas de prioridad
colas de prioridad
 
Unidad%2 bxii estructuras
Unidad%2 bxii estructurasUnidad%2 bxii estructuras
Unidad%2 bxii estructuras
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
Estructuras basicas de_c_
Estructuras basicas de_c_Estructuras basicas de_c_
Estructuras basicas de_c_
 
Tutorial jared
Tutorial jaredTutorial jared
Tutorial jared
 
Enums, constantes, listas e interfaces
Enums, constantes, listas e interfacesEnums, constantes, listas e interfaces
Enums, constantes, listas e interfaces
 
Tipos de datos para C++
Tipos de datos para C++Tipos de datos para C++
Tipos de datos para C++
 
Tipos de datos_para_c_
Tipos de datos_para_c_Tipos de datos_para_c_
Tipos de datos_para_c_
 
Cplus
CplusCplus
Cplus
 
C++
C++C++
C++
 

Último

6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 

Último (20)

PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
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
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 

Diapositivs~Estruct Datos C++.pdf

  • 1. C++ UG Lenguaje de Programación: C++ Estructuras José Luis Alonzo Velázquez Universidad de Guanajuato Octubre 2010 José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 2. C++ Estructuras Estructuras Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad. La unidad es la estructura. Las estructuras de datos se emplean con el objetivo principal de organizar los datos contenidos dentro de la memoria de la PC. Ası́, nuestra primera experiencia con estructuras comienza desde el momento mismo en que usamos en nuestros programas variables de tipos primitivos (char, short, int, float, etc). José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 3. C++ Estructuras Sintaxis En C/C++ se forma una estructura utilizando la palabra reservada struct, seguida por un campo etiqueta opcional, y luego una lista de miembros dentro de la estructura. La etiqueta opcional se utiliza para crear otras variables del tipo particular de la estructura: struct [ <nombre tipo de estructura > ] { [<tipo> <nombre-variable[,nombre-variable,...]>]; [<tipo> <nombre-variable[,nombre-variable,...]>]; ... } [ <variables de estructura> ] ; Un punto y coma finaliza la definición de una estructura puesto que ésta es realmente una sentencia C/C++. José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 4. C++ Estructuras Sintaxis: Caso uno, estructura anónima De acuerdo con la sintaxis general de la orden struct es posible crear estructuras de datos anónimas. Solamente hay que tener en cuenta que en una declaración anónima se debe definir al menos una variable al final de la declaración. Por ejemplo, con el siguiente fragmento de código: struct { int a; int b; } p1; se declara y define la variable estructurada p1, misma que se compone por los miembros a y b; ambos del tipo int. José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 5. C++ Estructuras Ahora bien, la sintaxis mostrada no es tan común ni conveniente, ya que con la misma solamente se esta creando una variable estructurada pero no un nuevo tipo. Es decir, si deseáramos tener otra variable que tuviera las mismas caracterı́sticas que posee la variable p1, necesitarı́amos escribir exactamente la misma instrucción, salvo que cambiando el nombre de la variable. Por ejemplo: struct { int a, b; } p2; Por supuesto, en una misma lı́nea de instrucción podemos definir más de una variable. Ejemplo: struct { int a, b; } p1, p2; Entonces, para crear nuevos tipos con struct deberemos de modificar la sintaxis mostrada en los ejemplos anteriores. José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 6. C++ Estructuras Sintaxis: Caso dos, estructura con nombre Observe que, la sintaxis para declarar estructuras con nombre es bastante parecida a la sintaxis para declarar estructuras anónimas; salvo que una declaración de estructura con nombre se debe especificar el nombre deseado para la misma. Además, en una declaración de estructura con nombre la o las variables definidas al final de la misma son opcionales. struct pareja { int a, b; } p1; Observación En el fragmento de código anterior se declara la estructura identificada como pareja, misma que se compone de los miembros a y b, ambos de tipo int. En el mismo ejemplo, se define la variable p1; la cual es una variable estructurada de tipo pareja. José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 7. C++ Estructuras Uso del nombre Una vez que una estructura con nombre ha sido creada, la misma puede ser usada para declarar cualquier número de variables. Por ejemplo, en el siguiente fragmento de código se crea la estructura tiempo compuesta por los miembros hora, minuto y segundo; todos del tipo int. En el mismo ejemplo, se declaran las variables t1 y t2. /* declaración de estructura tiempo */ struct tiempo { int hora, minuto, segundo; }; /* declaración de variables de tipo tiempo */ struct tiempo t1, t2; Nota En C++ puede obviarse la palabra struct a la hora de declarar variables. Ası́, en C++ la lı́nea de instrucción struct tiempo t1, t2; ( del ejemplo anterior) puede escribirse como: tiempo t1, t2; José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 8. C++ Estructuras Acceso a los miembros de una estructura En orden de poder leer o escribir uno de los miembros de una variable estructurada se debe usar el operador de acceso ( . ), o sea, el nombre de la variable seguida por un punto seguido por el nombre del miembro o componente deseado de la estructura. Por ejemplo, para acceder a los miembros de la variable t1 (mostrada arriba) podemos hacerlo de la siguiente manera: Ejemplo t1.hora = 12; t1.minuto = 0; t1.segundo = 0; printf ("%in", t1.hora); José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 9. C++ Estructuras Estructuras anidadas Los miembros de una estructura pueden ser ellos mismos otra estructura previamente identificada o bien una estructura anónima. Por ejemplo, en el siguiente fragmento de código se crean las estructuras pareja y pareja2. Obsérvese cómo dentro de los miembros de pareja2 se declara el miembro X, mismo que es una estructura del tipo pareja. Luego, las variables declaradas a raı́z de la estructura pareja2 poseerán los miembros variables a y b heredados de pareja, y c. struct pareja { int a, b ; }; struct pareja2 { struct pareja X; int c; } P3; José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 10. C++ Estructuras Acceso en este caso Ahora bien, para acceder a los miembros de una estructura dentro de otra estructura se emplea el mismo mecanismo de acceso (el punto). Por ejemplo, para desplegar el miembro a de la variable P3 declarada en el ejemplo anterior, lo haremos más o menos ası́: printf( "%in", P3.X.a ); José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 11. C++ Estructuras Declaración de una estructura #include <stdio.h> using namespace std; struct punto{ int x; int y; }; struct linea{ punto p1; punto p2; }; int main(){ return 0; } José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 12. C++ Estructuras Ejemplo de uso de las estructuras descritas int main(){ linea l1; l1.p1.x=1; l1.p1.y=1; l1.p2.x=2; l1.p2.y=2; printf("La linea l1 pasa por los puntos (%d,%d), (%d,%d)n",l1.p1.x,l1.p1.y,l1.p2.x,l1.p2.y); return 0; } José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras
  • 13. C++ Estructuras Programming Principles and Practice Using C++, Bjarne Stroustrup. http://www.codeblocks.org http://www.wxwidgets.org (O’Reilly) Practical C Programming (3rd Edition) José Luis Alonzo Velázquez Lenguaje de Programación: C++ Estructuras