Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Consulta Ej 49 (guia nueva) 45 (guia vieja) Modulo I
Autor Mensaje
Diego Pedro Sin conexión
Secretario de la SAE
que calor no?
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 631
Agradecimientos dados: 23
Agradecimientos: 104 en 47 posts
Registro en: May 2011
Mensaje: #1
Consulta Ej 49 (guia nueva) 45 (guia vieja) Modulo I Ejercicios Algoritmos y Estructuras de Datos
Que tal, tengo la siguiente duda sobre este ejercicio, no lo copio porque no sale la tabla asi que el que sea tan generoso de ayudar si puede directamente bajarse el word que subio nanuiit y leerlo de ahi seria mucho mas util.

Mi duda es que entiendo como encarar el ejercicio, por las dudas yo haria un for que iria de 1 a 3 (siendo cada numero un turno) y dentro de este un while y demas, pero que pasa me pide mostrar los resultados como lista, cosa que no vimos entonces el profesor nos dijo de mostrarlos uno por uno. Ahora el tema es que para mostrar el nombre de abonado por turno que tiene la factura mas costosa se me hace imposible porque si voy mostrandolos uno a uno la variable se inicializa nuevamente y no se guarda. Entonces me quedan dudas sobre lo que pide (por las dudas copio eso)

Informar por cada turno de trabajo:
• El nombre del abonado que debe abonar la factura más costosa y el monto de ésta.
• El nombre y el número de celular de la persona que realizó la mayor cantidad de minutos excedentes, indicando cuántos fueron.

Al final del día informar:
• El monto total facturado
• En que turno y en que orden dentro del turno apareció el abonado que utilizó la menor cantidad de minutos en el mes.
Utilice los subprogramas a) y b).


Gracias
24-05-2012 05:36
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
pela_piojo Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: May 2012
Mensaje: #2
RE: Consulta Ej 49 (guia nueva) 45 (guia vieja) Modulo I
if pagoMTu < pago then begin//
pagoMTu:=pago; // Maximo pago del turno
nomMTu:=nom; //
end;



pagoMTu la inicializas en 0 y ai va guardando el pago y el nombre (si es pago el pago maximo hasta el momento ) en otras variables este if lo tenes que poner dentro del while o for de cada turno.
26-05-2012 22:39
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
agusbrand Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 220
Agradecimientos dados: 104
Agradecimientos: 55 en 19 posts
Registro en: Dec 2010
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
29-05-2012 19:40
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.