Equipo 8                                                                 Grupo: 5AEstructuras                             ...
Equipo 8                                                                 Grupo: 5AEstructuras                             ...
Equipo 8                                                               Grupo: 5AEstructuras                               ...
Equipo 8                                                               Grupo: 5AEstructuras                               ...
Equipo 8                                                                 Grupo: 5AEstructuras                             ...
Próxima SlideShare
Cargando en…5
×

Estructuras

255 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
255
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Estructuras

  1. 1. Equipo 8 Grupo: 5AEstructuras Fecha: 12-11-10 EstructurasLos arrays, son un ejemplo de estructuras (de tipo homogéneo), sin embargo, éstetipo de estructuras posee una gran limitante, puesto que, sólo admite datos delmismo tipo (entero, flotante, carácter); las estructuras que vamos a estudiar, estáncompuestas por un grupo de variables, no necesariamente del mismo tipo, en lascuales, podemos almacenar diferente información (en cuanto a tipo), peroreferente a un mismo tópico.Una estructura es una colección de una o más tipos de elementos denominadosmiembros, cada uno de los cuales puede ser de un tipo de dato diferente.Declaración de una EstructuraComo toda variable, en C, debemos declarar una estructura para poder hacer usode 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 estructuraAl igual que las funciones, las estructuras son declaradas y definidas; en ladeclaración es que, le estamos indicando al compilador que las variables de tipodatos 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 enalguna parte de C, están declarados los tipos de datos char, int, float; así tambiénnosotros debemos definir las estructuras. Y cuando en el main, definimos lasvariables 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. 2. Equipo 8 Grupo: 5AEstructuras Fecha: 12-11-10debemos 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 ensumar, 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. 3. Equipo 8 Grupo: 5AEstructuras Fecha: 12-11-10Acceso a una estructura.Para acceder a una estructura, o bien a la información guardada en ella, podemoshacer 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 yanos habíamos olvidado de los punteros verdad?).Estructuras AnidadasAl igual que los ciclos, las decisiones, las expresiones, etc., las estructurastambién pueden estar dentro de otras, a esto es que se le llama estructurasanidadas.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 ycuando 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. 4. Equipo 8 Grupo: 5AEstructuras Fecha: 12-11-10ExplicaciónA fin de realizar el acceso correcto a los campos día, mes y año, así como eltiempo (la hora y los minutos) en que se efectuó la operación, se define unaestructura fecha y una estructura tiempo. La estructura registro_operación tienecomo miembro una variable (un campo) de tipo fecha, otra variable de tipo tiempoy otras variables para representar los otros campos. La estructura de tipooperación se hace con una variable entera.Arrays de EstructurasAl igual que los tipos int, float... en c, podemos crear arrays con estructuras.Por ejemplo, supongamos que ya tenemos declarada una estructura llamadadatos, que contiene los datos personales de alumnos de cierta institución, yqueremos guardar los datos de 100 alumnos, no necesitamos de crear 100variables de tipo estructura, sino que hacemos esta declaratoria:strcut datos alumnos[100];Estructuras y FuncionesCuando hacemos uso de funciones y de estructuras, debemos tener en cuenta laforma correcta, de cómo enviarle a la función el parámetro deseado, y con lasestructuras, no es la excepción.Uso del typedefUn operador typedef permite al programador crear un sinónimo de tipo definido porel usuario o de un tipo ya existente. La sintaxis es la siguiente:typedef tipo_de_dato nuevotipodedato;UnionesLas uniones tienen un aspecto similar en cuanto a cómo se definen, pero tienenuna diferencia fundamental con respecto a las estructuras: los miembroscomparten el mismo trozo de memoria. El espacio que ocupa en memoria unaunió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. 5. Equipo 8 Grupo: 5AEstructuras Fecha: 12-11-10El tamaño de la unión corresponde, a la variable de mayor tamaño, por ejemplo, sien una unión tenemos una variable tipo int (2 bytes), uno de tipo float (4 bytes) yun arreglo de 10 elementos (10 bytes), entonces el tamaño de la unión será de 10bytes.Ejemplo 9.5Diseñe un programa que lea el nombre y la inicial de una persona y luego loimprima:#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

×