Mensaje: #3
RE: Consulta Ej 49 (guia nueva) 45 (guia vieja) Modulo I
para el:
Informar por cada turno de trabajo:
• El nombre del abonado que debe abonar la factura más costosa y el monto de ésta.
Lo que haria es crear tres variables. por ej, NombreMasCostosa, MontoMasCostosa, y MaxCostosa.
Lo primero que haria antes del For es inicializar por ej MaxCostosa en 0.
La estructura del programa seria como dijiste vos, un For de 1 a 3 (para los 3 turnos), adentro del for un while (que corte cuando el celular sea 0 ). Adentro del while, se piden los datos de cada persona, y se realizan el cáculo(con procedim y funciones...) de pesos a abonar(CostoDelAbono). Luego de calcularlo por ej, podría hacer una condición, por ej, IF CostoDelAbono > MaxCostosa si es verdadero, guardaria en MaxCostosa el CostoDelAbono y el nombre de la persona en NombreMasCostosa y obviamente en MontoMasCostosa el CostoDelAbono. Si es falso no hacer nada.
Ese ciclo se va a ir repitiendo hasta que finalice con un 0 en el celular, ahi abajo del ciclo While, (pero adentro del for) pondría, del Turno mañana el nombre del abonado que debe abonar la fact mas costosa es, NombreMasCostosa, y el monto MontoMasCostosa.
después que muestro, pondría nuevamente en 0 la variable MaxCostosa para que funcione en el nuevo turno...(tmb podria poner en cero montomascostosa y el nombre de la persona, esto serviría en el caso de que no haya ningun alta en el turno tarde)
y para:
• El nombre y el número de celular de la persona que realizó la mayor cantidad de minutos excedentes, indicando cuántos fueron.
seria igual al anterior pero utilizando otras variables...
y para:
• El monto total facturado
Sería un acumulador de montos adentro del while, y se muestra cuando finaliza el ciclo for, ya que pide que se muestre al finalizar el dia.
• En que turno y en que orden dentro del turno apareció el abonado que utilizó la menor cantidad de minutos en el mes.
Lo que haría sería seria una condición, adentro del while, y al final de calcular todo, que diga si el tiempo utilizado(ya pasado completamente a minutos con la función a)) es menor que una variable que voy a crear(MenorMinutos), y podria inicializar esta variable en 6040... (6040 es los maximos minutos que pueden ingresar en el caso de que sean 99 horas y 99 minutos = 99x60 + 99 = 6039. )
En el caso de que sea verdadero (que la primera ves lo va a ser obviamente) Guardar en MenorMinutos la cant de minutos de la persona, y en otra variable el turno, y en otra el orden dentro del turno, las sacaría de aca:
Para saber el turno, usaria la variable de control del ciclo for, en el caso de ser 1 = quiere decir T. Mañana, si es 2, T tarde y si es 3 T noche.
Para saber el orden dentro del turno habria que hacer un contador adentro del while, y afuera del while volverlo a poner en 0.
No hice el programa, la verdad no se si funcióna lo que dije, creo que tiene sentido, espero que lo puedas entender y poder mejorarlo si esta mal....
Para calcular los máximos/mínimos (en ves de poner 6040 que no me gusta) también creo que podriamos usar una variable booleana para saber si es la primera persona en ser ingresada, y directamente guardar sus datos como si fuera la única que utilizo la menor cant de minutos y ir comparando utilizando a esta.
saludos
|