Topicos selectos de programacion
SCM-0435
Objetivo
• El alumno integrara tópicos avanzados de programación al desarrollo de aplicaciones que requieran multihilo, multimedia, interfaz
grafica de usuario y comunicación con puertos.
Tipos de datos definidos por el usuario
Unidad I
Obetivo
El estudiante creará tipos de datos complejos utilizando estructuras de datos definidas porel usuario
Unidad I Tipos de Datos Definidos por el Usuario
1.1 1.2 1.3 1.4 1.5 1.6 1.7 Agregación de datos (struct) Uniones de datos Registros variantes Tipos de datos enumerados Manejo de bits Campos de bits Operaciones con Bits (AND, OR, NOT, XOR)
1.1 Agregación de datos “Estructuras” (struct)
• Una estructura es un tipo de dato definido por el usuario que se debe declarar antes de quese pueda utilizar. • Una estructura es una colección de uno o más tipos de elementos denominados miembros, cada uno de los cuales puede ser de un tipo de dato diferente.
– Puede contener cualquier número de miembros – Cada uno de los cuales tiene un nombre único – Los miembros pueden ser arrays
• Declaración de una Estructura.- aquí se especifica el nombre y el formato de la estructura dedatos
Struct nombre de la estructura { tipo de dato miembro nombre del miembro; tipo de dato miembro nombre del miembro; … tipo de dato miembro nombre del miembro; } struct libro { char titulo [30]; char autor [25]; char editorial [30]; int anyo; float precio; char fecha_compra [8]; }
Nota (no se reserva almacenamiento en memoria)
Definición
• Definición de variables de estructura, se creaun área en memoria en donde los datos se almacenan de acuerdo al formato declarado en la definición de la estructura. – Se pueden definir de dos formas
• inmediatamente después de la llave de cierre de la declaración de la estructura. • En cualquier lugar del programa antes de usarla
struct libro L4, L5, L6;
variables tipo
struct libro { char titulo[30]; char autor[25]; chareditorial[30]; int anyo; float precio; char fecha_compra[8]; } l1,l2,l3; // Definición de variables
libro l4,l5,l6; //Definición de variables
int main (int argc, char *argv[]) { … l1=l2=l3; //se asigna una variable tipo registro a otra variable tipo registro system (“PAUSE”); return EXIT_SUCCESS; }
Inicialización de una estructura
• Hay dos formas:
– Como parte de la sección de código de suprograma. //dada la declaración de libro se procede a declarar la variable //e inicializarla libro l7 = { “Programación en C”, “Joyanes Luis”, “McGrawHill”, 2002, 20, “02/6/05”}; – Como parte de la definición, especificando los valores iniciales entre llaves y separados por comas. struct complejo { float numeroReal; int numeroEntero; }c1 = {23.2, 10}
Tamaño de una estructura: sizeof
• Aplica paradeterminar el tamaño que ocupa en memoria una estructura (nº de bytes). sizeof (nombre de la estructura);
Acceso a estructuras
• Se realiza cuando:
– Se accede a una estructura; se almacena información, se recupera información en la estructura.
• Se puede acceder a los miembros de una de estas dos formas:
– Utilizando el operador punto – Utilizando el operador flecha ->
Ej: . = dato; Obien -> = dato;
nombre_estructura.nombre_miembro ASIGNACION variable.miembro = un_valor;
ACCESO
una_variable = variable.otro_miembro
Ej: libro l, *l1; Strcpy (l.titulo,”Programación en C”); l.anyo = 2002; l.precio = 20; //**** Este es el mismo ejemplo pero utilizando el operador -> Strcpy (l1->titulo,”Programación en C”); l1->anyo = 2002; l1->precio = 20;
Estructuras Anidadas
•Se definen los miembros comunes, solo una vez en su propia estructura y a continuación, se utiliza esa estructura como un miembro de otra estructura • El acceso a estas estructuras anidadas requiere de múltiples operadores punto.
Estructuras Anidadas
struct int int int }; fecha { dia; mes; anyo;
struct cuenta { int cuen_num; char cuen_tipo; char nombre[80]; float saldo; struct fecha...
Regístrate para leer el documento completo.