You are on page 1of 9

CARRERA DE INGENIERIA MECANICA

PROGRAMACIÓN

NRC : 2965.

“EJERCICIOS DE ESTRUCTURAS CON MEMÓRIA DINÁMICA”

AUTORES: ROBERTO CHICAIZA CARLOS MORALES

DOCENTE: Ing. Ana Lucia Pérez

Sangolquí: 21 DE OCTUBRE 2013

punt=(Punto_flotante*)calloc(n. scanf("%lf". un double y un long double. printf("\nIngrese el numero float: "). double d.h> #include <stdio.d). Cada variable de la unión deberá imprimirse como un flotat. float f.8lf". if(punt==NULL) { printf("Memoria insuficiente\n"). }.8Lf".num.h> #include <conio.*punt.&n). printf("\nIngrese el numero double: "). int n. void main() { Punto_flotante num. printf("Ingrese el numero long double : ").i<n. getch().h> struct Punto_flotante { long double l. do { printf("# numeros a ingresar: ").LIBRO DE EVELIO GRANIZO 10) Escribir un programa que introduzca un valor tipo flota.l). scanf("%f". double d y long double l. double y long double y que almacene los valores en variables unión de tipo unión Punto _ flotante que tenga como miembros flota f.d). #include <iostream. exit(1).&num. printf("VALOR DEL DOUBLE ES: %. } else { for(int i=0.PROGRAMACIÓN EJERCICIO 10 DEL CAPITULO 10.i++) { clrscr(). printf("VALOR DEL LONG DOUBLE ES: %. ESPE Página 2 .sizeof(Punto_flotante)).num.&num.&num. }while(n<0 || n>5). scanf("%Lf".f). scanf("%d".l).h> #include <stdlib.

PROGRAMACIÓN printf("VALOR FLOAT: %f".LIBRO DE EVELIO GRANIZO Una compañía de seguros ofrece tres tipos de pólizas: vida. Para los tres tipos de pólizas es necesario tener el nombre del asegurado. Considere el siguiente cuadro para cada póliza: Realizar un programa que lea la información para cada cliente y almacene en un array hasta digital N cuando aparezca la pregunta “Desea continuar S/N”. el pago de la póliza mensual que es del 3% de la cantidad asegurada y un numero de póliza.f). la cantidad asegurada. } } } CORRRIDA EJERCICIO 11 DEL CAPITULO 10. su dirección. El programa también debe realizar un reporte de todos los clientes.num. ESPE Página 3 . automóvil y casa.

i<n.beneficiario). } ESPE Página 4 . punt=(datosvida*)malloc(n*sizeof(datosvida)).dia).PROGRAMACIÓN Notas:   Usar uniones como estructuras de datos Validar el ingreso donde sea necesario Tema: Estructuras – Memoria Dinámica Ejercicio 11 #include <stdio.h> #include <stdlib. do { printf("Numero de clientes a ingresar:\t"). void polizavida() { datosvida vida[TAM].&n). scanf("%d". } else { printf(" ***** POLIZA VIDA ****** "). printf("Mes de nacimiento:\t"). char beneficiario[25].&vida[i]. exit(1). printf("Año de nacimiento:\t").convierte a mayuscula #define TAM 5 struct datosvida { int anio.h> #include <conio. scanf("%d". int dia. scanf("%d". scanf("%s". for(int i=0...h> // para usar toupper .i++) { printf("Dia de nacimiento:\t").*punt.\n").vida[i]. }while(n<=0 || n>TAM).&vida[i]. scanf("%d".anio).. printf("Nombre Beneficiario:\t").h> #include <ctype. if(punt==NULL) { printf("Memoria insuficiente. int n.mes).. }. int mes.&vida[i].

scanf("%d".aut[i]. printf("Año del auto: ").vida[i].\tFecha de nacimiento del asegurado.&n). }.mes.dia).aut[i].(i+1)). scanf("%s".&aut[i]. int anioauto..modelo).. int n. }while(n<=0 || n>TAM).\tNombre del beneficiario\n").i++) { printf("%d\t".i++) { printf("Numero de placa: ").aut[i].placa). do { printf("Numero de clientes a ingresar:\t").vida[i]. printf("Provincia: ").anio.i<n. while (toupper(aut[i]. } else { printf(" ***** POLIZA AUTOMOVIL ***** ").PROGRAMACIÓN printf("\n").vida[i]. if(punt==NULL) { printf("Memoria insuficiente. scanf("%s". printf("No. } } struct datosautomovil { char placa[8]. punt=(datosautomovil*)malloc(n*sizeof(datosautomovil)). char provincia[20]. } printf("\n").beneficiario). for(i=0.alarma) !='S' && toupper(aut[i].vida[i].. char alarma. printf("Modelo de auto: "). printf("%s\n". printf(" *****POLIZA VIDA***** ").*punt. printf("===\t=============================\t====================\n"). char modelo[20].. exit(1). for(int i=0.\n").alarma)!='N') ESPE Página 5 . printf("%d//%d//%d\t". scanf("%d".provincia).anioauto).i<n. scanf("%s". void polizacar() { datosautomovil aut[TAM].

\tNo placa.aut[i].placa).i<n. char vigilante. printf("%s\t". void polizahouse() { home casa[TAM].. } } printf("\n")..i++) { printf("%d\t".PROGRAMACIÓN { printf("Alarma: ")..aut[i]. }.aut[i]. } else { printf(" ***** POLIZA CASA ***** "). printf("%c\n". printf("%s\t". printf(" *****POLIZA AUTOMOVIL***** ").anioauto).provincia). for(i=0.alarma).modelo). *punt. ESPE Página 6 .(i+1)). char rejas. do { printf("Numero de clientes a ingresar:\t"). printf("%s\t".alarma). scanf("%d".\n"). exit(1). punt=(home*)malloc(n*sizeof(home)).&aut[i].aut[i].aut[i]. } printf("\n").i++) { printf("Año de construccion: "). printf("%d\t".\tAño_auto. }while(n<=0 || n>TAM). } } struct home { int aniocasa..\tAlarma\n").\tProvincia. int n. if(punt==NULL) { printf("Memoria insuficiente. scanf("%c".&n). char perro. char alarmas. printf("===\t=========\t==========\t=======\t=========\t======\n"). printf("No. for(int i=0.i<n.\tModelo.

aniocasa). } printf("\n"). } while (toupper(casa[i].perro)!='N') { printf("Seguridad perro (S/N)): ").rejas=' '. printf("%c\t". casa[i]. float cantidad. } while (toupper(casa[i].alarmas). printf("%c\t". char direccion[35]. casa[i].vigilante) !='S' && toupper(casa[i]. for(i=0. int nro.vigilante=' '.rejas).perro) !='S' && toupper(casa[i].&casa[i].vigilante). printf("%c\t". casa[i]. printf("===\t==================================\t=========\n").i<n.rejas). } struct datos { char nombre[35].rejas)!='N') { printf("Seguridad de rejas (S/N): "). printf(" *****POLIZA CASA***** ").PROGRAMACIÓN scanf("%d". float pago. char tipopoliza.casa[i].perro=' '. while (toupper(casa[i].\tVigilante\n").&casa[i].\tAlarm. // para guardar 'V'-vida 'A'-auto 'C'-casa }.alarmas).alarmas=' '.casa[i].aniocasa).&casa[i]. printf("%d\t".&casa[i].perro). } } printf("\n"). scanf("%c".\tAño_const. printf("No.(i+1)).alarmas) !='S' && toupper(casa[i]. scanf("%c".vigilante). casa[i].vigilante)!='N') { printf("Seguridad vigilante (S/N)): ").rejas) !='S' && toupper(casa[i].\tPerro.\tRejas.casa[i].alarmas)!='N') { printf("Seguridad alarmas (S/N)): "). printf("%c\n".&casa[i].casa[i]. scanf("%c". } while (toupper(casa[i].perro).casa[i]. scanf("%c".i++) { printf("%d\t". ESPE Página 7 .

&asegurado[i]. }while(n<=0 || n>TAM). printf(" *****DATOS DEL ASEGURADO***** ").&n). } j=' '. do { printf("Numero de clientes a ingresar:\t").asegurado[i].pago=asegurado[i].asegurado[i].i<n.cantidad=0.i<n.. char respuesta. } else { printf(" *****DATOS ASEGURADO***** \n").nro).asegurado[i]. printf("Cantidad asegurada: %f".nro=0. asegurado[i].\n").asegurado[i].nro). printf("Nombre del asegurado: %s".asegurado[i]. while(asegurado[i]. printf("No de poliza: %d"..asegurado[i]. } printf("\n") for (int i=0.*punt.pago)..PROGRAMACIÓN void menu() { datos asegurado[TAM].i++) { printf("Nombre asegurado: ").nombre).cantidad). for(int i=0. scanf("%d". char j. scanf("%s". printf("Valor a pagar: %f". printf(" VALOR A PAGAR: %f". scanf("%s". scanf("%d". if(punt==NULL) { printf("Memoria insuficiente. } asegurado[i]. while(asegurado[i]. int n.pago).. punt=(datos*)malloc(n*sizeof(datos)).asegurado[i]. while (toupper(j)!='V' && toupper(j)!='A' && toupper(j)!='C') { ESPE Página 8 .cantidad). exit(1).i++) { clrscr(). scanf("%f". asegurado[i]. printf("Direccion: %s".nombre).&asegurado[i]. printf("Direccion: ").asegurado[i].cantidad*3/100.direccion).nro<1){ printf("Numero de poliza: ").cantidad<1){ printf("Cantidad asegurada: ").direccion).

} asegurado[i]. scanf("%c".break.&decide). printf(" V vida A automovil C casa "). clrscr().&j).PROGRAMACIÓN printf(" Poliza a ingresar: "). }while(decide!='S' && decide!='s' && decide!='N' && decide!='n'). printf("Opcion de Poliza: "). case 'C': polizahouse(). scanf("%d".break. switch (toupper(j)) { case 'V': polizavida(). } void main() { char decide. scanf("%c".break.tipopoliza=toupper(j). int n. do{ fflush(stdin).&n). menu(n). } ESPE Página 9 . }while(decide=='S' || decide=='s' ). case 'A': polizacar(). do{ printf("Clientes a ingresar:\t"). printf("Desea continuar:"). } } getch().