14 Tipos De Datos Estructurados En Lenguaje C - Eafranco

7m ago
31 Views
1 Downloads
1.24 MB
27 Pages
Last View : 4d ago
Last Download : 5m ago
Upload by : Adalynn Cowell
Transcription

Tema 14: Tipos de datos estructuradosen lenguaje C1M. en C. Edgardo Adrián Franco dfrancomedgardoadrianfrancomEstructuras de datos (Prof. Edgardo A. Franco)

Introducción Estructuras Declaración de una estructura Definición de variables de una estructura Inicialización de una estructura Crear una referencia a una estructura desde elmétodo main Acceso a una estructura Estructuras anidadas Sinónimo de un tipo de dato14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezContenido2

C proporciona cinco diferentes elementos paracreación de tipos de datos propios, es decir, tiposde datos que permiten al programador crearaplicaciones más potentes: Estructuras: es la agrupación de variables deldiferente tipo, bajo un mismo nombre. Unión: permite que la misma parte de memoria seadefinida como dos o más tipos de variablesdiferentes. Campo de bits: es un tipo especial de estructura ounión que permite el fácil acceso a bits individuales. Enumeración: es una lista de constantes enteras connombre.NOTA: typedef: ayuda a definir un sinónimo para un tipo de dato ya existente.14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezIntroducción3

El uso de las estructuras o tipos de datosestructurados, permiten al usuario crear nuevostipos de datos más versátiles y específicos, paracrear aplicaciones más potentes y resolverproblemas aun más complejos. E.g., diseñarelementos que contengan registros para unabase de datos, creación de datos como: pilas,colas, árboles, etc.14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezEstructuras4

La potencia de las estructuras radica en que estánconstituidas por múltiples variables, que pueden serde diferentes tipos de datos e incluso una estructurapuede contener a otras estructuras como tipos dedato. Un arreglo es un tipo de dato estructurado, ladiferencia entre un arreglo y una estructura radicaen que: un arreglo está constituido por undeterminado numero de elementos, todos del mismotipo, sin embargo, como ya se menciono, unaestructura es homogénea, es decir, puede estarconstituida por diferentes tipos de datos (datossimples, arreglos, estructuras, etc).14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezEstructuras5

Definición de estructura: Una estructura es unacolección de variables que se referencian bajo unúnico nombre, proporcionando un medioconveniente de mantener junta informaciónrelacionada. La declaración de una estructura forma unaplantilla que puede utilizarse para crear objetosestructuras, es decir, generar múltiples variablesque tengan el cuerpo de la estructura ya definida. A las variables que componen o se encuentrandentro de una estructura se les llama miembros,elementos o campos de la estructura.14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezEstructuras6

Como ya se menciono, un estructura es un tipo dedato definido por el programador y al igual que lasdemás variables se debe declarar antes de utilizarla.La firma de una estructura es:struct identificador de la estructura { tipo de dato miembro1 identificador1 tipo de dato miembro2 identificador2 . . . tipo de dato miembron identificadorn };El fin de la declaración dela estructura debeterminar con punto ycoma (;)14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezDeclaración de una estructura7

Por ejemplo si quisiéramos declarar una estructuraque almacene los datos de una persona, en estecaso seria:struct persona{char nombre[20];char domicilio[100];int edad;char CURP[18];long int telefono;. . .};14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezDeclaración de una estructura8

Hasta el momento se ha declarado el cuerpo o laplantilla de una estructura, para poder utilizarla sedebe definir una variable que haga referencia a loselementos de la estructura. Para declarar unavariable de la estructura siguen los mismos pasosque cuando se declaran variables de tipos de datossimples, es decir:14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezDefinición de variables de unaestructurastruct identificador de la estructura identificadorde la variable de la estructura ;9

Para definir una o varias variables de la estructura de tipo persona:struct persona per1, per2, per3;Donde:per1, per2, per3 son diferentes variables que contienen los mismos elementosdefinidos en la estructura persona.Otro ejemplo:struct libro{char titulo[200];char autor[100];char editorial[100];char ISBN[100];int numPaginas;. . .};struct libro book1, book2, book3;14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezDefinición de variables de unaestructura10

Se puede inicializar una estructura de dos formas:1. Al momento de definir la plantilla de la estructura, se especifican losvalores iniciales entre llaves, por ejemplo:struct libro{char titulo[200];char autor[100];char editorial[100];char ISBN[100];int numPaginas;} book1 {"Manual de referencia en C","Herbert Schildt","Mc Graw Hill","84-481-2895-8",709};2. Dentro de la sección donde se va a utilizar la estructura, es decir, porasignación.14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezInicialización de una estructura11

Otros ejemplos para inicializar una estructura seria:Ejemplo 2:struct info libro{char titulo[200];char autor[100];char editorial[100];int anio;} book1 {"Maravilla del saber", "Lucas Garcia", "McGraw Hill", 1999};14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezInicialización de una estructura12

Ejemplo 3:struct corredor{char nombre[200];int edad;char sexo;char categoria[100];char club[100];float tiempoPromedio;};struct corredor v1 {"Salvador ién con terminación};punto y coma (;)14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezInicialización de una estructura13

#include stdio.h struct persona{char nombre[30];int edad;float altura;float peso;};Se define la variable de laestructura persona dentro demain. Para este caso p1 seráuna variable local a main14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezCrear una referencia a una estructuradesde el método mainint main( void ){struct persona p1;printf( "El tamanio de la estructura persona es: %d", sizeof(p1) );return 0;}14

Para tener acceso a los elementos de una estructura,bien para modificar o recuperar su valor se utilizan dosoperadores:1. El operador punto (.)2. Y el operador flecha (- )14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezAcceso a una estructura15

El operador punto es la forma más sencilla de tener accesoa los elementos de una estructura, para utilizarlo basta condefinir una variable al tipo de estructura y utilizar estavariable para referirnos a los miembros de la estructuraanteponiendo el operador punto. La sintaxis de acceso es: identificador variable a la estructura . nombreMiembro dato;14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezOperador punto ( . )odato identificador variable a la estructura . nombreMiembro ;El operador punto proporciona el camino directo almiembro correspondiente y los datos que se almacenan encada miembro deben ser del mismo tipo con el que sedeclaro cada miembro.16

Refiriéndonos nuevamente a la estructura persona#include stdio.h struct persona{char nombre[30];int edad;float altura;float peso;};int main( void ){Se está teniendo acceso ó haciendostruct persona p1;referencia a los elementos de lastrcpy(p1.nombre,"Jacinto Dominguez");estructura persona a través delp1.edad 25;p1.altura 1.82;operador puntop1.peso 76.3;printf( "El tamanio de la estructura persona es: %d", sizeof(p1) );return 0;}14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezOperador punto ( . )17

14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezOperador flecha ( - )El operador flecha se utiliza cuando se estánmanejando apuntadores a una estructura.Hay que recordar que un apuntador puedehacer referencia a cualquier tipo de dato yuna estructura no es la excepción.Para definir un apuntador a una estructura,la sintaxis es la siguiente:struct identificador de la estructura * identificador del apuntador ;18

#include stdio.h struct estudiante{char nombre[30];long int matricula;float promedio;short int numMaterias;};int main( void ){struct estudiante e1;struct estudiante *ptr e &e1;Se declara el apuntador a laestructura estudiante14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezOperador flecha ( - )strcpy(ptr e- nombre,"Julian Arreaga");ptr e- matricula 2010568912;Se hace referencia a los elementosptr e- promedio 9.06;de la estructura estudiante aptr e- numMaterias 6;return 0;través del apuntador ptr e con el}operador flecha19

14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezOperador flecha ( - ) El operador flecha sirve para tener acceso alos elementos de una estructura a partir deun apuntador. El uso más general para utilizar apuntadoresa estructuras es cuando se requiere pasarpor referencia una estructura a una funcióno cuando se están trabajando listas, colas ogeneración de estructuras dinámicas, esdecir, uso de memoria dinámica.20

14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco Martínez Otro aspecto muy importante para pasar porreferencia una estructura a una función radicaen que si una estructura se pasa por valor (porcopia) a una función o el tipo de retorno dedicha función es la misma estructura y si estaestructura consta de muchísimos miembros,entonces, copiar todos estos elementos de iday de regreso en la llamada a la funcióndegradaría mucho la ejecución del programae incluso a niveles inaceptables, por lo tanto,es más conveniente pasar la referencia adicha estructura a través de apuntadores, estoconlleva a que la llamada a la función sea muyrápida.21

Cuando se utiliza el operador punto, quiere decir que seestán creando variables a estructuras de manera estática,es decir, cuando se declaran dichas variables elcompilador les asigna memoria como a cualquier otravariable y esta memoria se mantendrá asignada todo elciclo de vida de nuestra aplicación. El operador flecha se utilizará mayormente cuando seestén creando estructuras de manera dinámica o cuandose pase por referencia una estructura a una función.14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco Martínez La mayor diferencia de utilizar el operador punto (.) y eloperador flecha (- ) para tener acceso a los miembrosde una estructura radica en:22

Una estructura puede contener variables a otrasestructuras llamadas estructuras anidadas. Usarestructuras anidadas nos permite ahorrar tiempo en laescritura de programas que utilizan estructuras coninformación similar, por ejemplo:struct empleado{int ID;char nombre[30];char direccion[30];char ciudad[30];long int CP;double salario;};struct cliente{int ID;char nombre[30];char direccion[30];char ciudad[30];long int CP;double credito;};14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezEstructuras anidadas23

struct info persona{int ID;char nombre[30];char direccion[30];char ciudad[30];long int CP;};14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco Martínez Las dos estructuras anteriores contiene información quees muy similar, para ahorrarnos el código repetido, sepodría generar una estructura que contenga los datossimilares y anidarla dentro de las dos estructuras másgenerales, es decir:struct empleado{struct info persona info empleado;double salario;};struct cliente{struct info persona info cliente;double credito;};24

#include stdio.h int main( void ){struct empleado emp;struct cliente cli;//Para introducir los datos del empleadostrcpy(emp.info empleado.nombre,"Julian Arreaga");strcpy(emp.info empleado.direccion,"Bugambilias #48");strcpy(emp.info empleado.ciudad,"Tlalpan");emp.info empleado.CP 68643;emp.salario 20345.123;14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco Martínez Y para tener acceso a cada uno de los elementos decada estructura sería de la siguiente manera://Para introducir los datos del clientestrcpy(cli.info cliente.nombre,"Hernesto Juarez");strcpy(cli.info cliente.direccion,"Matamoros S/N");strcpy(cli.info cliente.ciudad,"Tlalpan");cli.info cliente.CP 68643;cli.credito 10000000.000;return 0;}25

Existe en C una palabra reservada que nos permite definirsinónimos de un tipo de dato ya definido, esta palabrareservada es typedef.La firma para utilizar typedef es:typedef identificador datoDefinido nuevoNombre ;Así por ejemplo si quisiéramos dar un nuevo nombre a losdatos dobles sería:14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco MartínezSinónimo de un tipo de datotypedef double dobles;y su uso seria:dobles a 3.13473;dobles b 0.47293764;dobles c 947282.43232;26

typedef char* String;typedef conts char* string "Adios a todos ";String nombre "Luis Joyanes Aguilar";typedef también se puede utilizar para definir nuevosnombres a una estructura, por ejemplo:struct complejo{float imaginario;float real;};typedef struct complejo complex;//definición de variables de estructuras complejo, ya no es necesario//colocar la palabra struct ya que va implícita en el nombre complex.complex c1, c2, c3;14 Tipos de datos estructurados en lenguaje CAlgoritmia y programación estructuradaProf. Edgardo Adrián Franco Martínez Otros ejemplos de typedef:27

Estructuras El uso de las estructuras o tipos de datos estructurados, permiten al usuario crear nuevos tipos de datos más versátiles y específicos, para crear aplicaciones más potentes y resolver problemas aun más complejos. E.g., diseñar elementos que contengan registros para una base de datos, creación de datos como: pilas, colas .

Related Documents:

relacional para capturar mejor el significado de los datos, para disponer de los conceptos de la orientación a objetos y para disponer de capacidad deductiva. El modelo relacional, como todo modelo de datos, tiene que ver con tres aspectos de los datos: o Estructura de datos. o Integridad de datos. o Manejo de datos.

SGBD. Modelo E-R 2 Durante el desarrollo de un sistema de información, se han de modelar tanto los datos empleados por el sistema como los procesos que realizan tareas sobre esos datos: Modelado de datos Representación gráfica del modelo de datos Diccionario de datos Modelado de procesos Diagramas de flujo de datos Diagramas de estados (automatas finitos)

1.7. Modelado de datos Modelo orientado a objetos zEl modelo de bases de datos orientado a objetos es una adaptación a los sistemas de bases de datos. Se basa en el concepto de encapsulamiento de datos y código que opera sobre estos en un objeto. Los objetos estructurados se agrupan en clases.

damos hablar sobre el procesamiento de datos, necesita comprender la naturaleza de los mismos. En es-te tema se analizan los diferentes tipos de datos y cómo se representan dentro de un ordenador. Bibliografía Forouzan, A. Introducción a la Ciencia de la Computación. Cap. 2 y 3. Ed. Thompson, 2003 CONTENIDOS 1. Tipos de datos 1 2.

2 Algunas de las facilidades que proporciona el sistema manejador de base de datos a los usuarios son: Agregar Nuevos Archivos a la Base de Datos. Agregar Nuevos Registros a los Archivos existentes. Recuperación de Datos. Actualización de Datos. Borrar registros. Borrar Archivos. Proporcionar los mecanismos para el control del acceso concurrente a los datos.

(SMBD) que no soportan algunos tipos de datos, por lo que, se hace necesario identificar cuáles son esos tipos de datos que no admite el SMBD de destino; por ejemplo, existen Arreglos en Oracle (VARRAY) que no son compatibles con un manejador Microsoft SQL Server, debido a que este último, no es un manejador relacional-orientado a objetos.

4. Una lista de flujos de datos de entrada, usando los nombres que están en el diagrama de flujo de datos. Los nombres de datos que se usan en la fórmula o lógica deben coincidir con los del diccionario de datos para garantizar la consistencia y una buena comunicación. 5. Los flujos de datos de salida, utilizando también los nombres del .

1 Advanced Engineering Mathematics C. Ray Wylie, Louis C. Barrett McGraw-Hill Book Co 6th Edition, 1995 2 Introductory Methods of Numerical Analysis S. S. Sastry Prentice Hall of India 4th Edition 2010 3 Higher Engineering Mathematics B.V. Ramana McGraw-Hill 11 th Edition,2010 4 A Text Book of Engineering Mathematics N. P. Bali and Manish Goyal Laxmi Publications 2014 5 Advanced Engineering .