comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Problema con ejercicio

  • 2 Respuestas
  • 1903 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado flony

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Enero 08, 2013, 11:52:37 am »
bueno acá un ejercicio de libro...y no se donde esta la falla
Citar
"un estacionamiento cobra una cuota mínima de $2,00 por estacionarse hasta tres horas. El estacionamiento cobra $0.5 adicionales por cada hora o fracción que se pase de tres horas. El cargo máximo para cualquier periodo dado de 24Hs.es de $10,00 Suponga que ningún auto se estaciona durante mas de 24hs. a la vez. Escriba un programa que calcule y muestre los cargos por estacionamiento para cada uno de tres clientes que estacionaron su auto . Debe introducir las horas de estacionamiento para cada cliente"
acá mi código uso la logica de que entran y salen el mismo dia...o sea 00:00:00 hasta 24:00:00

Código: C++
  1. #include <iostream>
  2. using namespace std;
  3. int diferencia;
  4.  
  5. int hora_segundo(int h, int m,int s)
  6. {
  7.         return (h*3600)+(m*60)+s;
  8. }
  9.  
  10. void diferencia_hora()
  11. {
  12.         int h_e,h_s,m_e,m_s,s_e,s_s;
  13.         int hora_ingreso, hora_egreso, diferencia;
  14.         cout<<"ingrese la hora de entrada en formato 24hs."<<endl;
  15.         cout<<"ejemplo 15:30:25 un dato a la vez"<<endl;
  16.         cout<<"ingrese la hora de entrada"<<endl;
  17.         cin>>h_e;
  18.         cout<<"ingrese los minutos"<<endl;
  19.         cin>>m_e;
  20.         cout<<"ingrese los segundos"<<endl;
  21.         cin>>s_e;
  22.         hora_ingreso=hora_segundo(h_e, m_e, s_e);
  23.         cout<<"ingrese la hora de salida en formato 24hs."<<endl;
  24.         cout<<"ejemplo 20:35:42 un dato a la vez"<<endl;
  25.         cout<<"ingrese la hora de entrada"<<endl;
  26.         cin>>h_s;
  27.         cout<<"ingrese los minutos"<<endl;
  28.         cin>>m_s;
  29.         cout<<"ingrese los segundos"<<endl;
  30.         cin>>s_s;
  31.         hora_egreso=hora_segundo(h_s, m_s,s_s);
  32.         diferencia=hora_egreso-hora_ingreso;
  33.        
  34. }
  35.  
  36. void horas()
  37. {
  38.         int sec, hr, min;
  39.         sec=diferencia;
  40.     hr = sec / (60*60);
  41.     sec %= 60*60;
  42.     min = sec / 60;
  43.     sec %= 60;
  44.     cout << hr << " hora";
  45.     if(hr != 1) cout << "s";
  46.     cout << ":" << min << " minuto";
  47.     if(min != 1) cout << "s";
  48.     cout << ":" << sec << " segundo";
  49.     if(sec != 1) cout << "s";
  50. }
  51.  
  52. int calcularCargo()
  53. {
  54.         int dif, rdo, rdo1;
  55.         dif=diferencia;
  56.         if (dif<=10800)
  57.         {
  58.                 rdo=2;
  59.         }
  60.         else
  61.         {
  62.                 if ((dif<10800)&&(dif>=86400))
  63.                 {
  64.                         rdo=(dif-10800)/3600;
  65.                         rdo1 %= 60*60;
  66.                         if (rdo1>=1)
  67.                         {
  68.                                 rdo=rdo+1;
  69.                         }
  70.                         rdo=2+(rdo*0.5);
  71.                 }
  72.                
  73.         }
  74.         return rdo;
  75.  
  76. }
  77.  
  78. int main()
  79. {
  80.         diferencia_hora();
  81.         horas();
  82.         calcularCargo();
  83.         system("PAUSE");
  84.         cin.get();
  85.         return 0;
  86. }
lo peor es que es un error logico, porque compila y todo
« Última modificación: Septiembre 18, 2014, 09:00:41 pm por Expermicid »

Desconectado [L]ord [R]NA

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • H-Sec
    • Ver Perfil
  • Skype: lordrna
  • Twitter: lordrna
« Respuesta #1 en: Enero 09, 2013, 11:41:26 pm »
Me imagino que quieres realizar tu, propiamente el ejercicio, por lo tanto no te dare codigo, pero si algunos consejos:

1) Re-estructura las funciones: Ten en cuenta que las funciones cuando son creadas, deben poder ser utilizadas sin muchas modificaciones en otro codigo que crees, por lo tanto debes evitar a toda costa el uso de variables globales... Eso economiza tiempo a la hora de buscar y solucionar fallas.

2) Divide y Venceras: Ve resolviendo el problema paso por paso, cuenta la cantidad de horas en total, realiza el calculo de costo de cada hora y listo.

Desconectado flony

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Enero 15, 2013, 11:34:22 am »
gracias, es verdad no quiero codigo quiero hacerlo yo  ;D, gracias por el aporte

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 7742
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1651
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2236
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 3023
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Problem al instalar Windows "cualquier windows"

Iniciado por Made

Respuestas: 7
Vistas: 3047
Último mensaje Septiembre 03, 2012, 04:53:08 pm
por Made