SlideShare una empresa de Scribd logo
1 de 5
Equipo 8                                                                 Grupo: 5A

Estructuras                                                         Fecha: 12-11-10

                                    Estructuras
Los arrays, son un ejemplo de estructuras (de tipo homogéneo), sin embargo, éste
tipo de estructuras posee una gran limitante, puesto que, sólo admite datos del
mismo tipo (entero, flotante, carácter); las estructuras que vamos a estudiar, están
compuestas por un grupo de variables, no necesariamente del mismo tipo, en las
cuales, podemos almacenar diferente información (en cuanto a tipo), pero
referente a un mismo tópico.

Una estructura es una colección de una o más tipos de elementos denominados
miembros, cada uno de los cuales puede ser de un tipo de dato diferente.




Declaración de una Estructura
Como toda variable, en C, debemos declarar una estructura para poder hacer uso
de ella, y la forma de hacerlo es la siguiente:
strcuct <nombre de la estructura>
{
       <tipo de dato del miembro1> <nombre del miembro 1>;
       <tipo de dato del miembro 2> <nombre de miembro 2>:
       ...
       <tipo de dato del miembro n> <nombre del miembro n>;
}


Definición de variables del tipo estructura
Al igual que las funciones, las estructuras son declaradas y definidas; en la
declaración es que, le estamos indicando al compilador que las variables de tipo
datos estarán compuestas por los elementos, tales como nombre, apellido etc.;
pero además, debemos definir variables que, serán de ese tipo. Así como en
alguna parte de C, están declarados los tipos de datos char, int, float; así también
nosotros debemos definir las estructuras. Y cuando en el main, definimos las
variables que serán del tipo int, del tipo float o del tipo char, de igual manera,

                                                                      Página 1 de 5
                                                     Montesinos Hernández Fernando
                                                                 García Pérez Yako
                                                       Ramírez Pérez Carlos Ignacio
                                                                    Velázquez Iván
Equipo 8                                                                 Grupo: 5A

Estructuras                                                        Fecha: 12-11-10

debemos definir que variables serán del tipo de la estructura que hemos creado.
Para ello existen dos procedimientos:
   1. listar las variables inmediatamente después de cerrar la llave de la
      estructura
   2. Listar las variables que serán del tipo estructura creadas, inmediatamente
      después del identificador de la estructura; en la zona de declaraciones del
      programa.

Una estructura la podemos inicializar así:
struct datos
{
       char nombre[30];
       char apellido[20];
       int edad;
       char dirección[100];
       char fecha_nac[8];
}alumno1 = {“Manuel”,
               “Ortez”,
               20,
               “San Salvador, El Salvador”,
               “27/04/86”,
              };

El tamaño de una estructura es determinado de forma muy simple, consiste en
sumar, el tamaño de todos los miembros, para nuestro caso particular, el tamaño
(en bytes) de la estructura datos sería:

Ciertamente que, este proceso, lo podemos simplificar utilizando la sentencia:




Sizeof(datos);
Cuyo resultado será: 160.

                                                                      Página 2 de 5
                                                     Montesinos Hernández Fernando
                                                                 García Pérez Yako
                                                       Ramírez Pérez Carlos Ignacio
                                                                    Velázquez Iván
Equipo 8                                                               Grupo: 5A

Estructuras                                                       Fecha: 12-11-10

Acceso a una estructura.

Para acceder a una estructura, o bien a la información guardada en ella, podemos
hacer uso de dos nuevos amigos:
   1. El operador punto (.)
   2. El operador puntero –flecha- (->)

Para utilizar el operador flecha, debemos hacer uso de punteros (y creíste que ya
nos habíamos olvidado de los punteros verdad?).


Estructuras Anidadas

Al igual que los ciclos, las decisiones, las expresiones, etc., las estructuras
también pueden estar dentro de otras, a esto es que se le llama estructuras
anidadas.
Supongamos que tenemos dos estructuras siguientes:
stuct empleado
{
       char nom[30];
       char puesto[10];
       int edad;
       float sueldo;
       char municipio[20];
       char ciudad[10];
       char dirección[50];
};

struct cliente
{
       char nom[30];
       char fecha_deuda[8];
       float saldo;
       char municipio[20];
       char ciudad[10];
       char dirección[50];
};

En C, podemos definir una estructura dentro de otra estructura, claro siempre y
cuando la declaración de ésta, haya sido previo.

                                                                    Página 3 de 5
                                                   Montesinos Hernández Fernando
                                                               García Pérez Yako
                                                     Ramírez Pérez Carlos Ignacio
                                                                  Velázquez Iván
Equipo 8                                                               Grupo: 5A

Estructuras                                                       Fecha: 12-11-10

Explicación

A fin de realizar el acceso correcto a los campos día, mes y año, así como el
tiempo (la hora y los minutos) en que se efectuó la operación, se define una
estructura fecha y una estructura tiempo. La estructura registro_operación tiene
como miembro una variable (un campo) de tipo fecha, otra variable de tipo tiempo
y otras variables para representar los otros campos. La estructura de tipo
operación se hace con una variable entera.


Arrays de Estructuras

Al igual que los tipos int, float... en c, podemos crear arrays con estructuras.
Por ejemplo, supongamos que ya tenemos declarada una estructura llamada
datos, que contiene los datos personales de alumnos de cierta institución, y
queremos guardar los datos de 100 alumnos, no necesitamos de crear 100
variables de tipo estructura, sino que hacemos esta declaratoria:
strcut datos alumnos[100];


Estructuras y Funciones

Cuando hacemos uso de funciones y de estructuras, debemos tener en cuenta la
forma correcta, de cómo enviarle a la función el parámetro deseado, y con las
estructuras, no es la excepción.


Uso del typedef

Un operador typedef permite al programador crear un sinónimo de tipo definido por
el usuario o de un tipo ya existente. La sintaxis es la siguiente:

typedef tipo_de_dato nuevotipodedato;

Uniones

Las uniones tienen un aspecto similar en cuanto a cómo se definen, pero tienen
una diferencia fundamental con respecto a las estructuras: los miembros
comparten el mismo trozo de memoria. El espacio que ocupa en memoria una
unión es el espacio que ocupa el campo más grande.


                                                                    Página 4 de 5
                                                   Montesinos Hernández Fernando
                                                               García Pérez Yako
                                                     Ramírez Pérez Carlos Ignacio
                                                                  Velázquez Iván
Equipo 8                                                                 Grupo: 5A

Estructuras                                                        Fecha: 12-11-10

El tamaño de la unión corresponde, a la variable de mayor tamaño, por ejemplo, si
en una unión tenemos una variable tipo int (2 bytes), uno de tipo float (4 bytes) y
un arreglo de 10 elementos (10 bytes), entonces el tamaño de la unión será de 10
bytes.
Ejemplo 9.5
Diseñe un programa que lea el nombre y la inicial de una persona y luego lo
imprima:

#include <stdio.h>
#include <conio.h>

union _persona
    {
    char nombre[10];
    char inicial;
    } pers;

main()
  {
  printf("Escribe tu nombre: ");
  gets(pers.nombre);
  printf("nTu nombre es: %sn", pers.nombre);
  printf("Tu inicial es: %cn", pers.inicial);
  getch();
  return 0;
  }




                                                                      Página 5 de 5
                                                     Montesinos Hernández Fernando
                                                                 García Pérez Yako
                                                       Ramírez Pérez Carlos Ignacio
                                                                    Velázquez Iván

Más contenido relacionado

Destacado

Ed presentacion
Ed presentacionEd presentacion
Ed presentacion
ed colcha
 
Tot plegat quaranta setmana
Tot plegat quaranta setmanaTot plegat quaranta setmana
Tot plegat quaranta setmana
lclaramunt
 
Ost 1 12655 76
Ost 1 12655 76Ost 1 12655 76
Ost 1 12655 76
Van Powers
 

Destacado (19)

MSC-Zeitung Aktionswoche 2016
MSC-Zeitung Aktionswoche 2016MSC-Zeitung Aktionswoche 2016
MSC-Zeitung Aktionswoche 2016
 
Ed presentacion
Ed presentacionEd presentacion
Ed presentacion
 
Tot plegat quaranta setmana
Tot plegat quaranta setmanaTot plegat quaranta setmana
Tot plegat quaranta setmana
 
Comienza la cuenta atrás
Comienza la cuenta atrásComienza la cuenta atrás
Comienza la cuenta atrás
 
La madre
La madreLa madre
La madre
 
Ost 1 12655 76
Ost 1 12655 76Ost 1 12655 76
Ost 1 12655 76
 
Práctica 1
Práctica 1Práctica 1
Práctica 1
 
El tenis
El tenisEl tenis
El tenis
 
Diapositivas ntic´s
Diapositivas ntic´sDiapositivas ntic´s
Diapositivas ntic´s
 
10 frases sobre economía
10 frases sobre economía10 frases sobre economía
10 frases sobre economía
 
estructura
estructuraestructura
estructura
 
Propuesta colaboracion foro de los camioneros
Propuesta colaboracion foro de los camionerosPropuesta colaboracion foro de los camioneros
Propuesta colaboracion foro de los camioneros
 
Gallup Strengthsfinder - Personal Strengths
Gallup Strengthsfinder - Personal StrengthsGallup Strengthsfinder - Personal Strengths
Gallup Strengthsfinder - Personal Strengths
 
Mediennutzung
MediennutzungMediennutzung
Mediennutzung
 
Normas educativas
Normas educativasNormas educativas
Normas educativas
 
Eco y pol
Eco y polEco y pol
Eco y pol
 
Chave 1: Sistema de controlo e monitorização de instalações fotovoltaicas: So...
Chave 1: Sistema de controlo e monitorização de instalações fotovoltaicas: So...Chave 1: Sistema de controlo e monitorização de instalações fotovoltaicas: So...
Chave 1: Sistema de controlo e monitorização de instalações fotovoltaicas: So...
 
Autoconsumo com e sem baterias
Autoconsumo com e sem bateriasAutoconsumo com e sem baterias
Autoconsumo com e sem baterias
 
Top 20 países y ciudades en Twitter
Top 20 países y ciudades en TwitterTop 20 países y ciudades en Twitter
Top 20 países y ciudades en Twitter
 

Similar a Estructuras (10)

Estructura de registros
Estructura de registrosEstructura de registros
Estructura de registros
 
Sesion01EDx.pptx
Sesion01EDx.pptxSesion01EDx.pptx
Sesion01EDx.pptx
 
Programación II_modulo1lolololololo9oo.pptx
Programación II_modulo1lolololololo9oo.pptxProgramación II_modulo1lolololololo9oo.pptx
Programación II_modulo1lolololololo9oo.pptx
 
Estructura de datos año 2013
Estructura de datos año 2013Estructura de datos año 2013
Estructura de datos año 2013
 
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
 
Trabajo de base de datos
Trabajo de base de datosTrabajo de base de datos
Trabajo de base de datos
 
Unidad II.pdf
Unidad II.pdfUnidad II.pdf
Unidad II.pdf
 
Estructuras de archivos
Estructuras de archivosEstructuras de archivos
Estructuras de archivos
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 

Estructuras

  • 1. Equipo 8 Grupo: 5A Estructuras Fecha: 12-11-10 Estructuras Los arrays, son un ejemplo de estructuras (de tipo homogéneo), sin embargo, éste tipo de estructuras posee una gran limitante, puesto que, sólo admite datos del mismo tipo (entero, flotante, carácter); las estructuras que vamos a estudiar, están compuestas por un grupo de variables, no necesariamente del mismo tipo, en las cuales, podemos almacenar diferente información (en cuanto a tipo), pero referente a un mismo tópico. Una estructura es una colección de una o más tipos de elementos denominados miembros, cada uno de los cuales puede ser de un tipo de dato diferente. Declaración de una Estructura Como toda variable, en C, debemos declarar una estructura para poder hacer uso de ella, y la forma de hacerlo es la siguiente: strcuct <nombre de la estructura> { <tipo de dato del miembro1> <nombre del miembro 1>; <tipo de dato del miembro 2> <nombre de miembro 2>: ... <tipo de dato del miembro n> <nombre del miembro n>; } Definición de variables del tipo estructura Al igual que las funciones, las estructuras son declaradas y definidas; en la declaración es que, le estamos indicando al compilador que las variables de tipo datos estarán compuestas por los elementos, tales como nombre, apellido etc.; pero además, debemos definir variables que, serán de ese tipo. Así como en alguna parte de C, están declarados los tipos de datos char, int, float; así también nosotros debemos definir las estructuras. Y cuando en el main, definimos las variables que serán del tipo int, del tipo float o del tipo char, de igual manera, Página 1 de 5 Montesinos Hernández Fernando García Pérez Yako Ramírez Pérez Carlos Ignacio Velázquez Iván
  • 2. Equipo 8 Grupo: 5A Estructuras Fecha: 12-11-10 debemos definir que variables serán del tipo de la estructura que hemos creado. Para ello existen dos procedimientos: 1. listar las variables inmediatamente después de cerrar la llave de la estructura 2. Listar las variables que serán del tipo estructura creadas, inmediatamente después del identificador de la estructura; en la zona de declaraciones del programa. Una estructura la podemos inicializar así: struct datos { char nombre[30]; char apellido[20]; int edad; char dirección[100]; char fecha_nac[8]; }alumno1 = {“Manuel”, “Ortez”, 20, “San Salvador, El Salvador”, “27/04/86”, }; El tamaño de una estructura es determinado de forma muy simple, consiste en sumar, el tamaño de todos los miembros, para nuestro caso particular, el tamaño (en bytes) de la estructura datos sería: Ciertamente que, este proceso, lo podemos simplificar utilizando la sentencia: Sizeof(datos); Cuyo resultado será: 160. Página 2 de 5 Montesinos Hernández Fernando García Pérez Yako Ramírez Pérez Carlos Ignacio Velázquez Iván
  • 3. Equipo 8 Grupo: 5A Estructuras Fecha: 12-11-10 Acceso a una estructura. Para acceder a una estructura, o bien a la información guardada en ella, podemos hacer uso de dos nuevos amigos: 1. El operador punto (.) 2. El operador puntero –flecha- (->) Para utilizar el operador flecha, debemos hacer uso de punteros (y creíste que ya nos habíamos olvidado de los punteros verdad?). Estructuras Anidadas Al igual que los ciclos, las decisiones, las expresiones, etc., las estructuras también pueden estar dentro de otras, a esto es que se le llama estructuras anidadas. Supongamos que tenemos dos estructuras siguientes: stuct empleado { char nom[30]; char puesto[10]; int edad; float sueldo; char municipio[20]; char ciudad[10]; char dirección[50]; }; struct cliente { char nom[30]; char fecha_deuda[8]; float saldo; char municipio[20]; char ciudad[10]; char dirección[50]; }; En C, podemos definir una estructura dentro de otra estructura, claro siempre y cuando la declaración de ésta, haya sido previo. Página 3 de 5 Montesinos Hernández Fernando García Pérez Yako Ramírez Pérez Carlos Ignacio Velázquez Iván
  • 4. Equipo 8 Grupo: 5A Estructuras Fecha: 12-11-10 Explicación A fin de realizar el acceso correcto a los campos día, mes y año, así como el tiempo (la hora y los minutos) en que se efectuó la operación, se define una estructura fecha y una estructura tiempo. La estructura registro_operación tiene como miembro una variable (un campo) de tipo fecha, otra variable de tipo tiempo y otras variables para representar los otros campos. La estructura de tipo operación se hace con una variable entera. Arrays de Estructuras Al igual que los tipos int, float... en c, podemos crear arrays con estructuras. Por ejemplo, supongamos que ya tenemos declarada una estructura llamada datos, que contiene los datos personales de alumnos de cierta institución, y queremos guardar los datos de 100 alumnos, no necesitamos de crear 100 variables de tipo estructura, sino que hacemos esta declaratoria: strcut datos alumnos[100]; Estructuras y Funciones Cuando hacemos uso de funciones y de estructuras, debemos tener en cuenta la forma correcta, de cómo enviarle a la función el parámetro deseado, y con las estructuras, no es la excepción. Uso del typedef Un operador typedef permite al programador crear un sinónimo de tipo definido por el usuario o de un tipo ya existente. La sintaxis es la siguiente: typedef tipo_de_dato nuevotipodedato; Uniones Las uniones tienen un aspecto similar en cuanto a cómo se definen, pero tienen una diferencia fundamental con respecto a las estructuras: los miembros comparten el mismo trozo de memoria. El espacio que ocupa en memoria una unión es el espacio que ocupa el campo más grande. Página 4 de 5 Montesinos Hernández Fernando García Pérez Yako Ramírez Pérez Carlos Ignacio Velázquez Iván
  • 5. Equipo 8 Grupo: 5A Estructuras Fecha: 12-11-10 El tamaño de la unión corresponde, a la variable de mayor tamaño, por ejemplo, si en una unión tenemos una variable tipo int (2 bytes), uno de tipo float (4 bytes) y un arreglo de 10 elementos (10 bytes), entonces el tamaño de la unión será de 10 bytes. Ejemplo 9.5 Diseñe un programa que lea el nombre y la inicial de una persona y luego lo imprima: #include <stdio.h> #include <conio.h> union _persona { char nombre[10]; char inicial; } pers; main() { printf("Escribe tu nombre: "); gets(pers.nombre); printf("nTu nombre es: %sn", pers.nombre); printf("Tu inicial es: %cn", pers.inicial); getch(); return 0; } Página 5 de 5 Montesinos Hernández Fernando García Pérez Yako Ramírez Pérez Carlos Ignacio Velázquez Iván