Un estacionamiento requiere determinar el cobro que debe aplicar a las personas que lo utilizan. Considere que el cobro es con base en las horas (1.25 dólares por cada hora) que lo disponen y que las fracciones de hora se toman como completas o no dependiendo de lo siguiente: Si la cantidad de minutos está entre los primeros 45 se cobra 0.50 puesto que se considera incompleta de lo contrario (más de los 45 minutos) se considera como una hora completa. Realice un diagrama de flujo y pseudocódigo que permita determinar el cobro.
Respuestas
Respuesta:
Explicación:
INICIO
VARIABLE: COSTOHORA, COBROTOTSL: NUMERICO DECIMAL
HORA, MINUTOS, HORATOTAL: NUMERICO ENTERO
LEER(HORAS, MINUTOS)
COSTOHORA=1.25
SI MINUTOS<= 45
HORASTOTALES= 0+HORAS
COBROTOTAL= HORASTOTTAL* COSTOHORA
FIN SI
SI MINUTOS> 45
HORASTOTALES= 1+ HORAS
COBROTOTAL= HORASTOTALES* COSTOHORA
FIN SI
IMPRIMIR (COBROTOTAL)
FIN
El programa tendrá que consistir en un lazo que vaya sumando los minutos y se interrumpa si el cliente retiró su vehículo.
Luego el tiempo en minutos se divide por 60 para determinar las horas, y el resto de esa división será la fracción de hora con la que decidimos si la cobramos como una hora incompleta o una hora completa.
El diagrama de flujo está en la imagen adjunta y un pseudocódigo en Pseint para ese programa sería:
Dimension tiempo, precio, flag;
tiempo<-0;
precio<-0;
flag<-0;
Mientras (flag=0) Hacer
Si(IngresaAuto())//Función que sensa cuando entra un auto
flag<-1;
Fin Si
Fin Mientras
Mientras (flag=1) Hacer
tiempo<-tiempo+1;
Esperar 60;//Retardo de 1 minuto para contar minutos
Si(SaleAuto())
flag<-0;
Fin Si
Fin Mientras
precio<-(tiempo/60)*1.25
Si (tiempo%60>45)//El operador % da el resto de una división
Precio<-Precio+1,25;
Sino
Precio<-Precio+0,5;
Fin Si