Sie sind auf Seite 1von 9

CARRERA DE INGENIERIA MECANICA

PROGRAMACIN

NRC : 2965.

EJERCICIOS DE ESTRUCTURAS CON MEMRIA DINMICA

AUTORES: ROBERTO CHICAIZA CARLOS MORALES

DOCENTE: Ing. Ana Lucia Prez

Sangolqu: 21 DE OCTUBRE 2013

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

PROGRAMACIN printf("VALOR FLOAT: %f",num.f); } } }

CORRRIDA

EJERCICIO 11 DEL CAPITULO 10- LIBRO DE EVELIO GRANIZO Una compaa de seguros ofrece tres tipos de plizas: vida, automvil y casa. Para los tres tipos de plizas es necesario tener el nombre del asegurado, su direccin, la cantidad asegurada, el pago de la pliza mensual que es del 3% de la cantidad asegurada y un numero de pliza. Considere el siguiente cuadro para cada pliza:

Realizar un programa que lea la informacin para cada cliente y almacene en un array hasta digital N cuando aparezca la pregunta Desea continuar S/N. El programa tambin debe realizar un reporte de todos los clientes.

ESPE

Pgina 3

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

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

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

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

PROGRAMACIN

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

PROGRAMACIN printf(" Poliza a ingresar: "); printf(" V vida A automovil C casa "); printf("Opcion de Poliza: "); scanf("%c",&j); } asegurado[i].tipopoliza=toupper(j); switch (toupper(j)) { case 'V': polizavida();break; case 'A': polizacar();break; case 'C': polizahouse();break; }

getch(); } void main() { char decide; int n; do{ printf("Clientes a ingresar:\t"); scanf("%d",&n); menu(n); do{ fflush(stdin); printf("Desea continuar:"); scanf("%c",&decide); }while(decide!='S' && decide!='s' && decide!='N' && decide!='n'); clrscr(); }while(decide=='S' || decide=='s' ); }

ESPE

Pgina 9

Das könnte Ihnen auch gefallen