Вы находитесь на странице: 1из 12

Fecha de efectividad: _______________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


CARRERA
LSC

PLAN DE ESTUDIO
2003-1

CLAVE ASIGNATURA
5032

NOMBRE DE LA ASIGNATURA
L !"#$% & P'("'$)$*+,! E-.'#*.#'$&$

PR/CTICA N(0

LABORATORIO DE NOMBRE DE LA PR/CTICA

L+* !*+$&(- E! S+-. )$- C()1#.$*+(!$2 -

DURACIN (3ORA)
5

A'' "2(- & E-.'#*.#'$-

10 INTRODUCCIN
La capacidad para crear nuevos tipos de dato es una caracterstica importante y potente de C y libera a un programador de restringirse al uso de los tipos ofrecidos por el lenguaje. Una estructura contiene mltiples variables !ue pueden ser de tipos diferentes. La estructura es importante para la creaci"n de programas potentes tales como bases de datos u otras aplicaciones !ue re!uieran grandes cantidades de datos.

20 OBJETIVO (COMPETENCIA)
#plicar el uso de estructuras para el desarrollo de nuevos tipos de datos estructurados con las cuales se crearan programas utili$ando estructuras definidas por el usuario

30 FUNDAMENTO
Una estructura es una colecci"n de una o m%s tipos de elementos denominados miembros cada uno de los cuales pueden ser un tipo de dato diferente. Una estructura puede contener cual!uier nmero de miembros cada uno de los cuales tiene un nombre nico denominado nombre del miembro. &upongamos !ue se desea almacenar los datos de una colecci"n de discos compactos 'C() de msica. Nombre Tipo de dato #rtista #rray de caracteres de tama*o +, -tulo #rray de caracteres de tama*o +, .mero de canci"n /ntero 0recio Flotante Fecha de compra #rray de caracteres de tama*o 1 la declaraci"n de la estructura C( es:

Formul"
I!"0 E6$ 3 '' '$ R$)7' 89 I!"0 G0 A!":2+*$ F2(' R+6 '$9 I!"0 P$;2( M$'.7! N$6$''( /26$' 89 I!"0 A2+*+$ L,1 8 A"#+''

2evis"

#prob"

#utori$"

L0S0C0 M,!+*$ C'+-.+!$ L$) M('$

M0C0 M+"# 2 /!" 2 M$'.7! 8 R() '(

3aestro

Coordinador de 0rograma /ducativo

4esti"n de Calidad

(irector de la Facultad
C"digo 4C5.65,78 2evisi"n 7

0%gina 1

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


struct coleccion_CD { char titulo[30]; char artista[30]; int num_canciones; float precio; char fecha_compra[8]; }; /n este otro la declaraci"n de una estructura de ventas: struct venta { char vendedor[30]; unsigned int codigo; int inids_articulos; float precio_unit; }; DEFINICIN DE VARIABLES DE ESTRUCTURAS #l igual !ue los tipos de datos enumerados a una estructura se accede utili$ando una variable o variables !ue se definen despu9s de la declaraci"n de la estructura. Una declaraci"n especifica simplemente el nombre y el formato de la estructura de datos pero no reservaalmacenamiento en memoria: la declaraci"n especifica un nuevo tipo de dato: struct <nombre_estructura>. Las variables de estructuras se pueden definir de las siguientes formas: 7) List%ndolos inmediatamente despu9s de la llave de cierre de la declaraci"n de la estructura. struct coleccion_CD { char titulo[30]; char artista[30]; int num_canciones; float precio; char fecha_compra[30]; } cd1, cd2, cd3; ;) Listando el tipo de estructura creado seguido de las variables correspondientes en cual!uier lugar del programa antes de utili$arlas. struct coleccion_CD cd1, cd2, cd3; USO DE ESTRUCTURAS EN ASIGNACIN Como una estructura es un tipo de dato similar a un int o un char se puede asignar una estructura a otra. 0or ejemplo se puede hacer !ue cd; y cd+ tengan los mismos valores en sus miembros !ue cd7. 0or lo consiguiente seria necesario reali$ar las siguientes sentencias: cd2=cd1; C"digo 4C5.65,78 2evisi"n 7 0%gina 2

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


cd3=cd1; (e modo alternativo se puede escribir cd3=cd2=cd1; INICIALI<ACIN DE ESTRUCTURAS &e puede iniciali$ar la estructura de ; formas: 7. (entro de la secci"n de c"digo de su programa ;. Como parte de la definici"n Formato general:
struct <tipo><nombre variable estructura>={ valor miembro1,valor miembro2,........valor miembro n};

/jemplo: struct info_libro { char titulo[60]; char auto[30]; char editorial[30]; int anyo; }libro1={"Maravilla del saber","Lucas Garcia","Mc Graw-Hill",1999}; ACCESO A ESTRUCTURAS Cuando se accede a una estructura o bien se almacena informaci"n en la estructura o se recupera la informaci"n de la estructura. &e puede acceder a los miembros de una estructura de una de estas ; formas: 7. Utili$ando el operador punto'.) ;. Utili$ando el operador puntero 55< A2)$* !$)+ !.( & 2$ +!=(')$*+,! &e puede almacenar informaci"n en una estructura mediante iniciali$aci"n asignaci"n directa o lectura del teclado. /l proceso de iniciali$aci"n ya se ha e=aminado veamos ahora la asignaci"n directa y la lectura del teclado. A** -( ) &+$!. (1 '$&(' 1#!.( La asignaci"n de datos a los miembros de una variable estructura se hace mediante el operador punto. La sinta=is es: <nombre variable estructura> . <nombre miembro> = datos; /jemplo: strcpy(cd1.titulo,"Granada"); cd1.precio=3450.75; cd1.num_cancion=7; otro ejemplo: struct coleccion_CD cd1; printf("Titulo:"); gets(cd1.titulo); printf("Precio:"); scanf("%f",&cd1.precio); printf("Numero de cancines:"); scanf("%d",&cd1.num_canciones);

C"digo 4C5.65,78 2evisi"n 7 0%gina 3

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


A** -( $ #!$ -.'#*.#'$ & &$.(- ) &+$!. 2 (1 '$&(' 1#!. '(

/l operador puntero 55< sirve para acceder a los datos de la estructura a partir de un puntero. 0ara utili$ar este operador se debe definir primero una variable puntero para apuntar a la estructura. # continuaci"n utilice simplemente el operador puntero para apuntar a un miembro dado. La asignaci"n de datos a estructuras utili$ando el operador puntero tiene el formato: <puntero estructura> -> <nombre miembro>=datos; 0or ejemplo una estructura estudiante: struct estudiante { char nombre[40]; int matricula; float nota; } &e puede definir ptr_est como un puntero a la estructura struct estudiante *ptr_est; struct estudiante mejor; # los miembros de la estructura estudiantes se pueden asignar datos como sigue ' siempre y cuando la estructura ya tenga su espacio de almacenamiento por ejemplo con malloc'): > bien tenga la direcci"n de una variable estructura ). ptr_est=&mejor; /* ptr_est obtiene la direccin de mejor */ strcpy( ptr_est->nombre,"Francisco Meraz"); ptr_est->matricula=60007; ptr_est->nota=8.5; L *.#'$ & +!=(')$*+,! & #!$ -.'#*.#'$ &i ahora desea introducir la informaci"n en la estructura basta con acceder a los miembros de la estructura con el operador punto o flecha ' puntero ). &e puede introducir la informaci"n desde el teclado o desde un archivo o asignar valores de calculos. #s si z es una variable de tipo estructura complejo se lee parte real parte imaginaria y se calcula el modulo: struct complejo { float pr; float pi; float modulo; }; struct complejo z; printf(" Parte real:"); scanf("%f",&z.pr); printf(" Parte imaginaria:"); scanf("%f",&z.pi); z.modulo=sqrt(z.pr*z.pr + z.pi*z.pi); R *#1 '$' +!=(')$*+,! &e recupera informaci"n de una estructura utili$ando el operador de asignaci"n o una sentencia de salida ' printf( ) , puts( ),...). ?gual !ue antes se puede emplear el operador punto y el operador flecha' puntero ). /l formato general C"digo 4C5.65,78 2evisi"n 7 0%gina 4

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


toma uno de estos formatos: <nombre variable>=<nombre variable estructura>.<nombre miembro> o bien <nombre variable>=<puntero de estructura> -> <nombre miembro> printf(" ",<nombre variable estructura>.<nombre miembro>); L *.#'$ & +!=(')$*+,! & #!$ -.'#*.#'$ &i ahora desea introducir la informaci"n en la estructura basta con acceder a los miembros de la estructura con el operador punto o flecha ' puntero ). &e puede introducir la informaci"n desde el teclado o desde un archivo o asignar valores de calculos. #s si z es una variable de tipo estructura complejo se lee parte real parte imaginaria y se calcula el modulo: struct complejo { float pr; float pi; float modulo; }; struct complejo z; printf(" Parte real:"); scanf("%f",&z.pr); printf(" Parte imaginaria:"); scanf("%f",&z.pi); z.modulo=sqrt(z.pr*z.pr + z.pi*z.pi); R *#1 '$' +!=(')$*+,! &e recupera informaci"n de una estructura utili$ando el operador de asignaci"n o una sentencia de salida ' printf( ) , puts( ),...). ?gual !ue antes se puede emplear el operador punto y el operador flecha' puntero ). /l formato general toma uno de estos formatos: <nombre variable>=<nombre variable estructura>.<nombre miembro> o bien <nombre variable>=<puntero de estructura> -> <nombre miembro> printf(" ",<nombre variable estructura>.<nombre miembro>); struct clientes { char nombre_cliente[30]; char direccion[40]; char telefono[15]; double saldo; }; /stas estructuras contiene muchos datos diferentes aun!ue hay datos !ue est%n solapados. #s se podra disponer de una estructura info_dir !ue contuviera los miembros comunes. struct info_dir { char direccion[40]; char telefono[15]; C"digo 4C5.65,78 2evisi"n 7 0%gina 5

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


};

struct empleados { char nombre_emp[30]; struct info_dir direccion_emp; double salario; }; struct clientes { char nombre_cliente[30]; struct info_dir direccion_clien; double saldo; }; /jemplo de estructuras anidadas #include<stdio.h> struct registro_operaciones entrada( ); struct fecha { unsigned int mes, dia, anyo; }; struct tiempo { unsigned int horas, minutos; }; struct registro_operaciones { long nuemro_cuenta; float cantidad; int tipo_operacion; struct fecha f; struct tiempo t; }; int main( ) { struct registro_operacion w; w=entrada( ); printf(" Operacion relacionada "); printf(" %1d ",w.numero_cuenta); printf(" %d / %d / %d ",w.f.dia,w.f.mes,w.f.anyo); printf(" %d : %d ",w.t.horas,w.t.minutos); return 0; } struct registro_operaciones entrada( ) { struct time t; struct date d; struct registro_operaciones una; printf(" Numero de cuenta: "); C"digo 4C5.65,78 2evisi"n 7 0%gina 6

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


scanf("%1d",&una.numero_cuenta); puts(" Tipo de operacion"); puts("Deposito(0)"); puts("Retiro de fondos(1)"); puts("Puesta al dia(2)"); puts("Estado de cuenta(3)"); scanf("%d",&una.tipo_operacion); /* Fecha y tiempo del sistema */ gettime(&t); // esto no existe una.t.horas=t.ti.hour; una.t.minutos=t.ti.min; getdata(&d); // esto no existe una.f.anyo=d.da.year; una.f.mes=d.da.mon; una.f.dia=d.da.day; return una; } ARRA>S ESTRUCTURADOS &e pueden crear array de estructuras tal como se crea un array de otro tipo. La declaraci"n del array de structuras info_libro de un modo similar a cual!uier array es decir: struct info_libro libros[100]; asigna un array de 7,, elementos denominado libros. 0ara acceder a los miembros de cada uno de los elementos estructurados se utili$a una notaci"n de array. 0ara iniciali$ar el primer elemento de libros por ejemplo su c"digo debe hacer referencia a los miembros de libros@,A de la forma siguiente: strcpy(libros[0].titulo,"C++ aqui"); strcpy(libros[0].autor,"Pablo"); strcpy(libros[0].editorial,"McGraw-Hill"); libros[0].anyo=1999; -ambi9n puede iniciali$arse un array de estructuras en el punto de la declaraci"n encerrando la lista de iniciali$adores entre llaves B C. 0or ejemplo struct info_libro libros[3]={ ???????????????????????????? "C++ aqui","Pablo","McGraw -Hill",1999 "VisualC++","Jesus","Pirata",2001 "J++","Joaquin","McGraw -Hill",1999 }; /n el siguiente ejemplo se declara una estructura !ue representa a un numero racional un array de nmeros racionales es iniciali$ado con valores al a$ar. struct racional B int .: int (: C: struct racional rs@6ADB7 ; ; + 6 8 , 7C: A''$?- *()( )+ );'(Los miembros de las estructuras pueden ser asimismo arrays. /n este caso ser% preciso e=tremar las precauciones cuando se accede a los elementos individuales del array. Considerese la siguiente definici"n de estructura. /sta sentencia declara un array de 7,, estructuras cada estructura contiene informaci"n de datos de empleados de una compa*a. C"digo 4C5.65,78 2evisi"n 7 0%gina 7

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio

struct nomina { char nombre[30]; int dependientes; char departamento[10]; float horas_dias[7]; float salario; }empleado[100]; /* Un array de 100 empleados */

50 PROCEDIMIENTO (DESCRIPCIN) A) E@UIPO NECESARIO


Computadoras con Linu= instalado.

MATERIAL DE APO>O
0uedes consultar las siguientes direcciones electr"nicas para encontrar m%s informaci"n: http:EEFebpages.ull.esEusersEfsandeEtalfEcursocE http:EEabsopa.dis.ulpgc.esEcppEintro_cE

B)
D7$ L#! -0 E% '*+*+( 10

DESARROLLO DE LA PR/CTICA

Una compa*a almacena la informaci"n relacionada a sus proveedores: .mero de control del proveedor. .ombre del proveedor Ciudad en la !ue reside el proveedor. .mero de artculos diferentes !ue provee. /scriba un programa !ue pueda llevar a cabo las siguientes transacciones: a) b) c) d) #ltas de los proveedores. 3odificaciones por nmero de control del proveedor. Gajas por nmero de control del proveedor. Consultas. a. (ado el nombre del proveedor informar la ciudad en la !ue reside y el nmero de artculos !ue provee. b. (ada la clave del proveedor informar todos sus datos. c. (esplegar los datos de todos los proveedores ordenados por nombre de # a H as como el total de artculos !ue proveen entre todos y cuales son los + proveedores m%s importantes es decir los !ue proveen mayor cantidad de artculos. d. 2egresar al men principal. -erminar. C"digo 4C5.65,78 2evisi"n 7 0%gina 8

e)

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


NOTAA EL PROGRAMA SERA PARA UN M/XIMO DE 50 PROVEEDORES9 > DEBERA 3ACER LA VALIDACIN PARA NO ACEPTAR UN NUMERO DE CONTROL DE PROVEEDOR REPETIDO0 D7$ M$'. E% '*+*+( 2 Una agencia de viajes re!uiere de un programa para el registro de los centros tursticos del pas. Los datos !ue se consideran para cada centro turstico son: .ombre del centro turstico .mero de habitaciones sencillas y dobles de cada centro turstico -otal de restaurantes por centro turstico. Ciudad en la !ue se encuentra. /l programa contar% con las siguientes opciones: a) #ltas b) Consultas a. 4eneral a!u desplegara todos los datos de los centros tursticos dados de alta ordenados de # a H por nombre del centro as como: i. .ombre del centro turstico con m%s restaurantes ii. .ombre del centro turstico con m%s habitaciones b. (ado el nombre del centro turstico informar el nmero de habitaciones dobles sencillas y en total !ue tiene ese centro as como el nmero de restaurantes con el !ue cuenta. c. 2egreso al men principal. c) 3odificaciones por nombre del hotel. d) Gajas por nombre del hotel. e) &alir. NOTAA SERA PARA UN M/XIMO DE 45 CENTROS TURSTICOS0 D7$ M+:'*(2 E% '*+*+( 30 &e re!uiere hacer un programa para llevar el registro de los pacientes de una clnica del seguro social para cada paciente se re!uieren los siguientes datos: .umero de seguro social. .ombre del paciente /dad. &e=o >cupaci"n -ipo de sangre /l programa contara con las siguientes opciones: a) #ltas. b) Consulta a. 4eneral ordenada alfab9ticamente por nombre del paciente adem%s debera desplegar el porcentaje de pacientes hombres y porcentaje de pacientes mujeres !ue estan registrados. b. 0or nmero de seguro social. c. 0or tipo de sangre. d. 2egreso al men principal. C"digo 4C5.65,78 2evisi"n 7 0%gina 9

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


c) d) e) 3odificaciones por nmero de seguro. Gajas por nmero de seguro. &alir.

NOTAA SERA PARA UN M/XIMO DE 100 PACIENTES9 > NO DEBERA ACEPTAR DOS NUMERO DE SEGURO IGUALES0

D7$ J# 6 E% '*+*+( 5 &e re!uiere hacer un programa para llevar el registro de los clientes de un banco para cada cliente se pedir%n los siguientes datos: .umero de cuenta .ombre del cliente (irecci"n -el9fono CU20 Cantidad con la !ue abrir% la cuenta /l programa presentara las siguientes opciones: a) #pertura de la cuenta. b) Consultas a. 0or nmero de cuenta b. 4eneral ordenada alfab9ticamente por nombre del cliente c. 2egreso al men principal. c) Gajas del cliente. d) 2etiro por nmero de cuenta solo si e=iste. e) (ep"sito por nmero de cuenta solo si e=iste. f) -erminar. D7$ V+ '! E% '*+*+( 5 &e re!uiere de un programa para llevar el registro de los miembros de un club deportivo para cada socio del club se pedir%n los siguientes datos. .umero de credencial. .ombre del socio. (irecci"n /dad -el9fono &e=o

/l programa deber% contar con las siguientes opciones: $) #ltas

C"digo 4C5.65,78 2evisi"n 7 0%gina 10

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio


;) Consultas. a. 4eneral ordenada alfab9ticamente por nombre del cliente adem%s del porcentaje de hombres y de mujeres !ue hay en el club. b. 0or nmero de credencial c. 0or nombre del socio d. 2egreso al men 3odificaciones por nmero de credencial. Gajas por nmero de credencial. -erminar.

*) &) )

NOTAA SERA PARA UN M/XIMO DE 100 SOCIOS > NO DEBERA DE ACEPTAR 2 NUMEROS DE CREDENCIAL IGUALES0

C"digo 4C5.65,78 2evisi"n 7 0%gina 11

de 12

Fecha de efectividad: ______________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formatos para prcticas de laboratorio

C) 50 RESULTADOS > CONCLUSIONES

C/LCULOS > REPORTE

0reguntas sobre la pr%ctica de forma ?.(?I?(U#L !ue har% el maestro al finali$ar la pr%ctica a cada alumno.

Los resultados ser%n solo a nivel visuali$aci"n no ser%n impresos 9stos podr%n variar dependiendo de los ejercicios !ue el alumno realice.

B0 ANEXOS
&i deseas informaci"n de como hacerle para !ue los resultados de tus programas tengan una mejor presentaci"n en la pantalla: http:Eya!ui.m=l.uabc.m=EJpnavarroEejemplo5ncurses.html para un ejemplo sencillo.

40 REFERENCIAS

C"digo 4C5.65,78 2evisi"n 7 0%gina 12

de 12

Вам также может понравиться