Você está na página 1de 14

Actualizada: May-09-2015 Ing. Luis S.

Barrera GT 04 - 08
Formato Metodologa para Resolver Problemas (Centinela)
ENUNCIADO: Supngase que el importe del seguro obligatorio de un vehiculo depende se su modelo, del color del vehiculo y de la edad del
conductor. Sean los modelos del coche X y Y y los precios del seguro segn el color como sigue:
Modelo Color Precio
Dorado $240.41
X
Metalizado $330.00
Dorado $300.41
Y
Metalizado $360.00
Si el conductor tiene menos de 26 aos el precio se incrementa un 25%;
Si tiene entre 26 y 30 aos se incrementa un 10%;
Si tiene entre 31 y 65 aos se incrementara un 25% adicional;

Disee un programa que calcule para un grupo de personas:


a) Listado de los conductores junto con el importe del seguro y el modelo del vehiculo
b) El porcentaje de conductores que tienen menos de 26 aos y el porcentaje de conductores que tienen entre 31 y 65 aos.
c) Calcule el total de ingresos que percibir la aseguradora por el pago de seguro de todos los conductores
d) El conductor que paga el mayor importa (solo deber colocar el valor mayor, ya que para IAI115 no veremos las funciones de
cadenas de caracteres Ya que no podremos colocar el nombre a la par del valor).

S O L U C I N
I. Planteamiento del Problema
ENTRADA PROCESO SALIDA

- El nombre de cada uno de los conductores.


- El precio de cada uno de los seguros por el tipo de - Se desplegara el nombre de cada uno de
vehculo (ver tabla) los conductores juntos con el importe del
- El modelo de cada uno de los vehculos (X, Y) seguro y el modelo del vehculo
- El color de cada uno de los vehculos (1. Dorado - El porcentaje de conductores que tiene
2. Metalizado) menos de 26 aos
- La edad de cada uno de los conductores y variable de - El porcentaje de personas que tiene entre
control centinela (2. Detener) 31 y 65 aos
- Porcentajes del incremento del seguro (25% y 10%) - Importe total que deben de pagar entre
- El valor de 100 para el porcentaje todos los clientes
- Inicio del conteo(0); incremento de conteo 1 - El conductor que paga el mayor importa

II. Anlisis del problema


a. Definicin de Variables de Salida
Nombre Tipo Descripcin
ImporTot Real Representa el Total (Acumulador) a pagar por el seguro del vehculo de todos los
conductores. donde Vi=0, Vc=P1, Vf=?
PorMe Real Representa el porcentajes de conductores que tienen menos de 26 aos
PorMa Real Representa el porcentajes de conductores que tienen entre 31 y 65 aos
MaP Real Representa el conductor que paga el mayor importe
Se desplegar el nombre de cada uno de los conductores juntos con el importe del seguro y el modelo del vehculo

b. Definicin de Datos de Entrada

b.1) Definicin de Variables de Entrada


Nombre Tipo Descripcin
nom Alfanumrico Contiene en nombre del conductor
M Alfanumrico Contiene el Modelo del vehculo X. Modelo x Y. Modelo y
C Entero Representa el Color del vehculo 1. Dorado 2. Metalizado
Contiene la Edad del conductor. Adems Variable de control del ciclo (Centinela),
E Entero que permite detener el proceso de introduccin de los nmeros. 2 parar o
detenerlo.

b.2) Definicin de Constantes


Nombre Tipo Descripcin
Se utilizara el valor de incremento del seguro en base al modelo y color del vehculo de (0.10 o 0.25)
Se utilizara el valor de 100 para calcular los porcentajes

Actualizada: May-09-2015 Pgina 1 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
c. Restricciones
M == 'X' || M == 'Y'
C == 1 || C == 2
E >= 15 && E <= 65 || E == 2

d. Proceso
Cont = 0, PMe=0, PMa=0, PorMe=0, PorMa=0, P1=0, P=0, ImporTot=0, MaP=0, E=16;

E = 10; Mientras
Imprimir: "Digite la edad del conductor: (entre 15 y 65) o 2. Parar o Detener" (!((E >=15 && E<= 65)||(E==2)))
Leer E

Es E != 2 ?
Si:
Imprimir: "Digite el nombre del conductor: "
Leer nom

M='Z'; Mientras
Imprimir: "Digite el modelo del vehculo: X. Modelo x Y. Modelo y " (!(M == 'X' || M == 'Y'))
Leer M

C = -1;
Imprimir: "Digite el color del vehculo: 1. Dorado 2. Metalizado" Mientras
Leer C (!(C == 1 || C == 2))

En caso de:
'X' : Es C == 1?
Si: P = 240.41; Mientras
M= No: P = 330.00; (E != 2)
'Y': Es C == 1?
Si: P = 300.41
No: P = 360.00
Es la E < 26?
Si: P1 = P*0.25 + P;
PMe = PMe + 1 ;
No: Es E<= 30?
Si: P1 = P*0.10 + P;
No: P1 = P*0.25 + P;
PMa = PMa + 1;

Es P1 > MaP?
Si: MaP=P1;
Imprimir: "El Automovilista: ", nom, "paga el seguro ms alto de: ", MaP, "(US)"

ImporTot+=P1;
Imprimir: "El Automovilista: ", nom, "tiene un vehiculo modelo", M, "y deber pagar un total de: ", P1, "(US)"
Cont++

PorMe = PMe*100/Cont;
PorMa = PMa*100/Cont;
Imprimir: "El porcentaje de las personas menores de 26 aos es de :", PorMe
Imprimir: "El porcentaje de las personas entre de 31 y 65 aos es de :", PorMa
Imprimir: "El importe total es de :", ImporTot
Imprimir: " El pago de seguro ms alto es de: ", MaP, "(US)"

e. Definicin de Variables de Proceso


Nombre Tipo Descripcin
Contiene el precio del seguro segn sea la edad del conductor. 240.41. 330.00, 300.41,
P Real
360.00
PMa Entero Representa el contador de los conductores entre 31 y 65 aos donde Vi=0, Vc=1, Vf=?
PMe Entero Representa el contador de los conductores que tienen menos de 26 donde Vi=0, Vc=1, Vf=?
Cont Entero Representa el contador de los conductores donde Vi=0, Vc=1, Vf=?
P1 Real Representa el Total a pagar por el seguro del vehculo por cada conductor

Actualizada: May-09-2015 Pgina 2 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
III. Diseo de la Solucin (Flujograma)

Inicio 1 3

P1=0,P=0,PorMe=0,
PorMa=0,MaP=0, PorMe = Pme * 100.0 / Cont
ImporTot=0, PMe=0, M
PorMa = Pma * 100.0 / Cont
PMa=0, Cont=0,
'X'
"El porcentaje de las
E=16
personas menores de 26
NO SI aos es de :", PorMe
C == 1

E!=2 P = 330.00 P = 240.41


"El porcentaje de las
personas entre de 31 y 65
aos es de :", PorMa
SI
3
E=10 'Y'

"El importe total es de :",


!((E>=15&&E<=65) NO NO SI ImporTot
||(E==2)) C == 1

SI P = 300.41
P = 360.00
"Digite la edad del " El pago de seguro ms
conductor: (entre 15 y 65) o
2. Parar o Detener:"
alto es de: ", MaP, "(US)"

E
FIN
NO SI
E < 26

NO SI P1 = P*0.25 + P
E != 2 NO SI
E<= 30 PMe = PMe + 1

" Digite El nombre del


Conductor: " P1 = P*0.25 + P P1 = P*0.10 + P
PMa = PMa + 1

nom

M='Z'

NO SI
P1 > MaP

(!(M == 'X' ||
M == 'Y') MaP = P1

SI
"Elija el modelo del "El Automovilista: ", nom,
vehculo: "paga el seguro ms alto
X. Modelo x de: ", MaP, "(US)"
Y. Modelo y "

M ImporTot+=P1

"El Automovilista: ", nom, "tiene un


C = -1 vehiculo modelo", M, "y deber
pagar un total de: ", P1, "(US)"

!(C == 1 ||
C == 2)
Cont++
SI
"Elija el color del 2
vehculo:
1. Dorado
2. Metalizado"

Actualizada: May-09-2015 Pgina 3 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
IV. Codificacin
#include<stdio.h>
#include<conio.h>
main()
{
char nom[50];
float P1=0.0,P=0.0,PorMe=0.0, PorMa=0.0,MaP=0.0, ImporTot=0.0;
int C,E,PMe=0, PMa=0, Cont=0;
char M;

fflush(stdin);

E=16;
while(E!=2)
{
E=10;
while(!((E>=15&&E<=65)||(E==2)))
{
puts("Digite la edad del conductor (edad entre 15 y 65)o\n2: Detener ");
scanf("%i", &E);
}

if (E!=2)
{
puts("Digite El Nombre completo del Conductor: \n\r ");
fflush(stdin);
scanf("%[^\n]s", nom); //gets(nom);

fflush(stdin);
M = 'Z';
while(!((M=='X')||(M=='Y')))
{
puts("Elija el Modelo del vehiculo:");
printf("\n\r X. Modelo x \n\r Y. Modelo y \n\nEleccion del Modelo del Vehiculo:");
fflush(stdin);
M = getche();//scanf("%c", &M);
M = toupper(M);
}

C=-1;
while(!(C==1||C==2))
{
printf("\n\n\nElija el Color del vehiculo: ");
printf("\n\r 1. Dorado \n\r 2. Metalizado \n\nEleccion del Color del Vehiculo:");
scanf("%i", &C);
}

switch (M)
{
case 'X': if(C==1)
P=240.41;
else
P=330.00;
break;

case 'Y': if (C==1)


P=300.41;
else
P=360.00;
break;
}

if(E<26)
{
P1=P + P*0.25;
PMe=PMe+1;//PMe++;
}
else
if (E<=30)
P1=P + P*0.10;
else
{
P1=P + P*0.25;
PMa=PMa+1;
}

if(P1 > MaP)


{
MaP=P1;
printf("El Automovilista: %s paga el seguro ms alto de: %.2f (US)", nom,MaP);
}

ImporTot+=P1;
printf("\nEl Automovilista: %s tiene un vehiculo modelo %c \ny deber pagar un total de: %.2f (US) \n\n", nom, M, P1);
printf("\n\n*************************OTRO*************************\n\n");
Cont++;
}

}
PorMe = PMe*100.0/Cont;
PorMa = PMa*100.0/Cont;

Actualizada: May-09-2015 Pgina 4 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
printf("\n\n**********************RESULTADOS**********************\n\n");
printf("\nEl porcentaje de las personas menores de 26 aos es de : %.1f", PorMe);
printf("\nEl porcentaje de las personas entre de 31 y 65 aos es de : %.1f", PorMa);
printf("\nEl importe total es de: %.2f", ImporTot);
printf("\nEl pago de seguro ms alto es de: %.2f (US)\n\n", MaP);

getch();
return 0;
}

Actualizada: May-09-2015 Pgina 5 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
Formato Metodologa para Resolver Problemas (Bandera)
ENUNCIADO: Supngase que el importe del seguro obligatorio de un vehculo depende se su modelo, del color del vehculo y de la edad del
conductor. Sean los modelos del coche X y Y y los precios del seguro segn el color como sigue:
Modelo Color Precio
Dorado $240.41
X
Metalizado $330.00
Dorado $300.41
Y
Metalizado $360.00
Si el conductor tiene menos de 26 aos el precio se incrementa un 25%;
Si tiene entre 26 y 30 aos se incrementa un 10%;
Si tiene entre 31 y 65 aos se incrementara un 25% adicional;

Disee un programa que calcule para un grupo de personas:


a) Listado de los conductores junto con el importe del seguro y el modelo del vehiculo
b) El porcentaje de conductores que tienen menos de 26 aos y el porcentaje de conductores que tienen entre 31 y 65 aos.
c) Calcule el total de ingresos que percibir la aseguradora por el pago de seguro de todos los conductores
d) El conductor que paga el mayor importa (solo deber colocar el valor mayor, ya que para IAI115 no veremos las funciones de
cadenas de caracteres Ya que no podremos colocar el nombre a la par del valor).

S O L U C I N
I. Planteamiento del Problema
SALIDA
NTRADA PROCESDFGDF GDGDG O

ENTRADA
-
- El nombre de cada uno de los conductores - Se desplegara el nombre de cada uno
- El precio de cada uno de los seguros por el tipo de los conductores juntos con el importe
de vehculo (ver tabla) del seguro y el modelo del vehculo
- El modelo de cada uno de los vehculos (X, Y) - El porcentaje de conductores que
tiene menos de 26 aos
- El color de cada uno de los vehculos (1.
Dorado 2. Metalizado) - El porcentaje de personas que tiene
- La edad de cada uno de los conductores entre 31 y 65 aos
- Porcentajes del incremento del seguro (25% y 10%) - Importe total que deben de pagar
entre todos los clientes
- La variable control Bandera o indicador de continuar
(1) o parar (0) - El conductor que paga el mayor importa
- El valor de 100.0 de porcentaje
- Inicio del conteo(0); incremento de conteo 1

II. Anlisis del problema


a. Definicin de Variables de Salida
Nombre Tipo Descripcin
ImporTot Real Representa el Total (Acumulador) a pagar por el seguro del vehculo de todos los
conductores donde Vi=0, Vc=P1, Vf=?
PorMe Real Representa el porcentajes de conductores que tienen menos de 26 aos
PorMa Real Representa el porcentajes de conductores que tienen entre 31 y 65 aos
MaP Real Representa el conductor que paga el mayor importe
Se desplegara el nombre de cada uno de los conductores juntos con el importe del seguro y el modelo del vehculo

b. Definicin de Datos de Entrada

b.1) Definicin de Variables de Entrada


Nombre Tipo Descripcin
Variable de control del ciclo (Bandera), que permite continuar o detener el
Ban Entero
Proceso de introduccin de conductores. 1 es continuar y 0 parar.
nom Alfanumrico Contiene en nombre del conductor
M Alfanumrico Contiene el Modelo del vehculo X. Modelo x Y. Modelo y
C Entero Representa el Color del vehculo 1. Dorado 2. Metalizado
E Entero Contiene la Edad del conductor

b.2) Definicin de Constantes


Nombre Tipo Descripcin
Se utilizara el valor de incremento del seguro en base al modelo y color del vehculo de (0.10 o 0.25)
Se utilizara el valor de 100.0 para calcular los porcentajes

Actualizada: May-09-2015 Pgina 6 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08

c. Proceso
Cont = 0, PMe=0, PMa=0, PorMe=0, PorMa=0, P1=0, P=0, ImporTot=0, MaP=0, Ban=1;

Imprimir: "Digite el nombre del conductor: "


Leer nom
Imprimir: "Digite el modelo del vehculo: X. Modelo x Y. Modelo y "
Leer M Mientras
Imprimir: " Error de datos, Digite nuevamente el (!(M == 'X' || M == 'Y'))
modelo" Leer M

Imprimir: "Digite el color del vehculo: 1. Dorado 2.


Metalizado" Leer C
Mientras
Imprimir: " Error de datos, Digite nuevamente el color
(!(C == 1 || C == 2))
" Leer C

Imprimir: "Digite la edad del conductor: (entre 15 y 65)"


Leer E Mientras
Imprimir: " Error de datos, Digite nuevamente la edad (!(E >= 15 && E <= 65))
" Leer E

En caso de:
'X' : Es C == 1?
Si: P = 240.41;
M= No: P = 330.00;
'Y' : Es C == 1? Mientras
Si: P = 300.41 (Ban==1)
No: P = 360.00
Es la E < 26?
Si: P1 = P*0.25 + P;
PMe = PMe + 1 ;
No: Es E<= 30?
Si: P1 = P*0.10 + P;
No: P1 = P*0.25 + P;
PMa = PMa + 1;

Es P1 > MaP?
Si: MaP=P1;
Imprimir: "El Automovilista: ", nom, "paga el seguro ms alto de: ", MaP, "(US)"

ImporTot+=P1;
Imprimir: "El Automovilista: ", nom, "tiene un vehiculo modelo", M, "y deber pagar un total de: ", P1, "(US)"
Imprimir: "Desea continuar ? 1. SI o NO"
Leer: Ban
Mientras
Imprimir: " Error Ingrese de datos, Desea continuar ? 1. SI 0. (!(Ban == 1 || Ban == 0))
NO"
Leer Ban
Cont++

PorMe = PMe*100.0/Cont;
PorMa = PMa*100.0/Cont;
Imprimir: "El porcentaje de las personas menores de 26 aos es de :", PorMe
Imprimir: "El porcentaje de las personas entre de 31 y 65 aos es de :", PorMa
Imprimir: "El importe total es de :", ImporTot
Imprimir: "El pago del seguro ms alto de: ", MaP, "(US)"

e. Definicin de Variables de Proceso


Nombre Tipo Descripcin
P Real Contiene el precio del seguro segn sea la edad del conductor. 240.41. 330.00,
300.41, 360.00
PMa Entero Representa el contador de los conductores entre 31 y 65 aos donde Vi=0, Vc=1,
Vf=?
PMe Entero Representa el contador de los conductores que tienen menos de 26 donde Vi=0,
Vc=1, Vf=?
Cont Entero Representa el contador de los conductores donde Vi=0, Vc=1, Vf=?
P1 Real Representa el Total a pagar por el seguro del vehculo por cada conductor

Actualizada: May-09-2015 Pgina 7 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
d. Proceso (Proceso Ms corto)
Cont = 0, PMe=0, PMa=0, PorMe=0, PorMa=0, P1=0, P=0, ImporTot=0, MaP=0, Ban=1;

Imprimir: "Digite el nombre del conductor: "


Leer nom

M='Z';
Mientras
Imprimir: "Digite el modelo del vehculo: X. Modelo x Y. Modelo y (!(M == 'X' || M == 'Y'))
" Leer M

C = -1;
Imprimir: "Digite el color del vehculo: 1. Dorado 2. Mientras
(!(C == 1 || C == 2))
Metalizado" Leer C

E = 10; Mientras
Imprimir: "Digite la edad del conductor: (entre 15 y 65)" (!(E >= 15 && E <= 65))
Leer E

En caso de:
'X' : Es C == 1?
Si: P = 240.41;
M= No: P = 330.00;
'Y': Es C == 1?
Mientras
Si: P = 300.41
No: P = 360.00
(Ban==1)
Es la E < 26?
Si: P1 = P*0.25 + P;
PMe = PMe + 1 ;
No: Es E<= 30?
Si: P1 = P*0.10 + P;
No: P1 = P*0.25 + P;
PMa = PMa + 1;

Es P1 > MaP?
Si: MaP=P1;
Imprimir: "El Automovilista: ", nom, "paga el seguro ms alto de: ", MaP, "(US)"

ImporTot+=P1;
Imprimir: "El Automovilista: ", nom, "tiene un vehiculo modelo", M, "y deber pagar un total de: ", P1, "(US)"

Ban = -1;
Imprimir: "Desea continuar ? 1. SI o NO" Mientras
Leer Ban (!(Ban == 1 || Ban == 0)
Cont++

PorMe = PMe*100/Cont;
PorMa = PMa*100/Cont;
Imprimir: "El porcentaje de las personas menores de 26 aos es de :", PorMe
Imprimir: "El porcentaje de las personas entre de 31 y 65 aos es de :", PorMa
Imprimir: "El importe total es de :", ImporTot
Imprimir: " El pago de seguro ms alto es de: ", MaP, "(US)"

Actualizada: May-09-2015 Pgina 8 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
III. Diseo de la Solucin (Flujograma)

Actualizada: May-09-2015 Pgina 9 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
IV. Codificacin
#include<stdio.h>
#include<conio.h>

main()
{
char nom[50];
float P1=0,P=0,PorMe=0, PorMa=0,MaP=0, ImporTot=0;
int C,E,PMe=0, PMa=0, Cont=0, Ban;
char M;

fflush(stdin);

Ban=1;
while(Ban==1)
{
puts("Digite El Nombre completo del Conductor: \n\r ");
fflush(stdin);
scanf("%[^\n]s", nom); //gets(nom);

puts("Elija el Modelo del vehiculo:");


printf("\n\r X. Modelo x \n\r Y. Modelo y \n\nEleccion del Modelo del Vehiculo:");
M = getche();//scanf("%c", &M);
M = toupper(M);

while(!(M=='X'||M=='Y'))
{
puts("Error, Elija Nuevamente el Modelo del vehiculo:");
printf("\n\r X. Modelo x \n\r Y. Modelo y \n\nEleccion del Modelo del Vehiculo:");
M = getche();//scanf("%c", &M);
M = toupper(M);
}

printf("\n\n\nElija el Color del vehiculo:");


printf("\n\r 1. Dorado \n\r 2. Metalizado \n\nEleccion del Color del Vehiculo:");
scanf("%i", &C);

while(!(C==1||C==2))
{
printf("\n\n\nError, Elija Nuevamente el Color del vehiculo:");
printf("\n\r 1. Dorado \n\r 2. Metalizado \n\nEleccion del Color del Vehiculo:");
scanf("%i", &C);
}

//E=10;
puts("Digite la edad del conductor (edad entre 15 y 65)");
scanf("%i", &E);
while(!(E>=15&&E<=65))
{
puts("\n\n\rError, Digite Nuevamente la edad del conductor (edad entre 15 y 65)");
//puts("Digite la edad del conductor (edad entre 15 y 65)");
scanf("%i", &E);
}
switch (M)
{
case 'X': if(C==1)
P=240.41;
else
P=330.00;
break;

case 'Y': if (C==1)


P=300.41;
else
P=360.00;
break;
}

if(E<26)
{
P1=P + P*0.25;
PMe=PMe+1;//PMe++;
}
else
if (E<=30)
P1=P + P*0.10;
else
{
P1=P + P*0.25;
PMa=PMa+1;
}

if(P1 > MaP)


{
MaP=P1;
printf("El Automovilista: %s paga el seguro ms alto de: %.2f (US)", nom,MaP);
}

ImporTot+=P1;
printf("\nEl Automovilista: %s tiene un vehiculo modelo %c \ny deber pagar un total de: %.2f (US)", nom, M, P1);
printf("\n\n************************OTRO************************\n\n");
Actualizada: May-09-2015 Pgina 10 de 14 Ing. Luis S. Barrera GT 04 - 08
Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
fflush(stdin);
puts("\nDesea continuar ? \n1. SI \n0. NO");
scanf("%i", &Ban);
printf("\n");

while(!(Ban==1||Ban==0))
{
fflush(stdin);
printf(" \nError de datos, \nDesea continuar ? \n1. SI \n0. NO");
scanf("%i", &Ban);
printf("\n\n");
}
Cont++;
}
PorMe = PMe*100.0/Cont;
PorMa = PMa*100.0/Cont;

printf("\n\n**********************RESULTADOS**********************\n\n");
printf("\nEl porcentaje de las personas menores de 26 aos es de : %.1f", PorMe);
printf("\nEl porcentaje de las personas entre de 31 y 65 aos es de : %.1f", PorMa);
printf("\nEl importe total es de: %.2f", ImporTot);
printf("\nEl pago de seguro ms alto es de: %.2f (US)", MaP);

getch();
return 0;
}

Actualizada: May-09-2015 Pgina 11 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
III. Diseo de la Solucin (Flujograma)

Actualizada: May-09-2015 Pgina 12 de 14 Ing. Luis S. Barrera GT 04 - 08


Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
IV. Codificacin
#include<stdio.h>
#include<conio.h>

main()
{
char nom[50];
float P1=0,P=0,PorMe=0, PorMa=0,MaP=0, ImporTot=0;
int C,E,PMe=0, PMa=0, Cont=0, Ban;
char M;

fflush(stdin);

Ban=1;
while(Ban==1)
{
puts("Digite El Nombre completo del Conductor: \n\r ");
fflush(stdin);
scanf("%[^\n]s", nom); //gets(nom);

puts("Elija el Modelo del vehiculo:");


printf("\n\r X. Modelo x \n\r Y. Modelo y \n\nEleccion del Modelo del Vehiculo:");
M = getche();//scanf("%c", &M);
M = toupper(M);

while(!(M=='X'||M=='Y'))
{
puts("Error, Elija Nuevamente el Modelo del vehiculo:");
printf("\n\r X. Modelo x \n\r Y. Modelo y \n\nEleccion del Modelo del Vehiculo:");
M = getche();//scanf("%c", &M);
M = toupper(M);
}

printf("\n\n\nElija el Color del vehiculo:");


printf("\n\r 1. Dorado \n\r 2. Metalizado \n\nEleccion del Color del Vehiculo:");
scanf("%i", &C);

while(!(C==1||C==2))
{
printf("\n\n\nError, Elija Nuevamente el Color del vehiculo:");
printf("\n\r 1. Dorado \n\r 2. Metalizado \n\nEleccion del Color del Vehiculo:");
scanf("%i", &C);
}

//E=10;
puts("Digite la edad del conductor (edad entre 15 y 65)");
scanf("%i", &E);
while(!(E>=15&&E<=65))
{
puts("\n\n\rError, Digite Nuevamente la edad del conductor (edad entre 15 y 65)");
//puts("Digite la edad del conductor (edad entre 15 y 65)");
scanf("%i", &E);
}
switch (M)
{
case 'X': if(C==1)
P=240.41;
else
P=330.00;
break;

case 'Y': if (C==1)


P=300.41;
else
P=360.00;
break;
}

if(E<26)
{
P1=P + P*0.25;
PMe=PMe+1;//PMe++;
}
else
if (E<=30)
P1=P + P*0.10;
else
{
P1=P + P*0.25;
PMa=PMa+1;
}

if(P1 > MaP)


{
MaP=P1;
printf("El Automovilista: %s paga el seguro ms alto de: %.2f (US)", nom,MaP);
}

ImporTot+=P1;
printf("\nEl Automovilista: %s tiene un vehiculo modelo %c \ny deber pagar un total de: %.2f (US)", nom, M, P1);
printf("\n\n************************OTRO************************\n\n");
Actualizada: May-09-2015 Pgina 13 de 14 Ing. Luis S. Barrera GT 04 - 08
Actualizada: May-09-2015 Ing. Luis S. Barrera GT 04 - 08
Ban = -1;
while(!(Ban==1||Ban==0))
{
puts("\n\nDesea continuar ? \n1. SI \n0. NO");
scanf("%i", &Ban);
printf("\n");
}
Cont++;
}
PorMe = PMe*100.0/Cont;
PorMa = PMa*100.0/Cont;

printf("\n\n**********************RESULTADOS**********************\n\n");
printf("\nEl porcentaje de las personas menores de 26 aos es de : %.1f", PorMe);
printf("\nEl porcentaje de las personas entre de 31 y 65 aos es de : %.1f", PorMa);
printf("\nEl importe total es de: %.2f", ImporTot);
printf("\nEl pago de seguro ms alto es de: %.2f (US)", MaP);

getch();
return 0;
}

Actualizada: May-09-2015 Pgina 14 de 14 Ing. Luis S. Barrera GT 04 - 08

Você também pode gostar