Autor
|
Tema: ejercicio (Leído 2,014 veces)
|
flony
Desconectado
Mensajes: 584
|
bueno acá un ejercicio de libro...y no se donde esta la falla "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 #include <iostream> using namespace std; int diferencia; int hora_segundo(int h, int m,int s) { return (h*3600)+(m*60)+s; }
void diferencia_hora() { int h_e,h_s,m_e,m_s,s_e,s_s; int hora_ingreso, hora_egreso, diferencia; cout<<"ingrese la hora de entrada en formato 24hs."<<endl; cout<<"ejemplo 15:30:25 un dato a la vez"<<endl; cout<<"ingrese la hora de entrada"<<endl; cin>>h_e; cout<<"ingrese los minutos"<<endl; cin>>m_e; cout<<"ingrese los segundos"<<endl; cin>>s_e; hora_ingreso=hora_segundo(h_e, m_e, s_e); cout<<"ingrese la hora de salida en formato 24hs."<<endl; cout<<"ejemplo 20:35:42 un dato a la vez"<<endl; cout<<"ingrese la hora de entrada"<<endl; cin>>h_s; cout<<"ingrese los minutos"<<endl; cin>>m_s; cout<<"ingrese los segundos"<<endl; cin>>s_s; hora_egreso=hora_segundo(h_s, m_s,s_s); diferencia=hora_egreso-hora_ingreso; }
void horas() { int sec, hr, min; sec=diferencia; hr = sec / (60*60); sec %= 60*60; min = sec / 60; sec %= 60; cout << hr << " hora"; if(hr != 1) cout << "s"; cout << ":" << min << " minuto"; if(min != 1) cout << "s"; cout << ":" << sec << " segundo"; if(sec != 1) cout << "s"; }
int calcularCargo() { int dif, rdo, rdo1; dif=diferencia; if (dif<=10800) { rdo=2; } else { if ((dif<10800)&&(dif>=86400)) { rdo=(dif-10800)/3600; rdo1 %= 60*60; if (rdo1>=1) { rdo=rdo+1; } rdo=2+(rdo*0.5); } } return rdo;
}
int main() { diferencia_hora(); horas(); calcularCargo(); system("PAUSE"); cin.get(); return 0; } lo peor es que es un error logico, porque compila y todo
|
|
|
En línea
|
si un problema no tiene solucion entonces no es un problema...es algo inevitable
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
lo peor es que es un error logico, porque compila y todo .........................................sorry, ya ví que declaras diferencia como variable global pero no le "llega" a las funciones "horas(); calcularCargo();" Por cierto, te falta "#include <cstdlib>" para usar "system("PAUSE");". REEDITO: Ahora sí llega:
#include <iostream> #include <cstdlib> using namespace std; int diferencia; int hora_segundo(int h, int m,int s){ return (h*3600)+(m*60)+s; } int diferencia_hora() { int h_e,h_s,m_e,m_s,s_e,s_s; int hora_ingreso, hora_egreso, diferencia; cout<<"ingrese la hora de entrada en formato 24hs."<<endl; cout<<"ejemplo 15:30:25 un dato a la vez"<<endl; cout<<"ingrese la hora de entrada"<<endl; cin>>h_e; cout<<"ingrese los minutos"<<endl; cin>>m_e; cout<<"ingrese los segundos"<<endl; cin>>s_e; hora_ingreso=hora_segundo(h_e, m_e, s_e); cout<<"hora_ingreso "<<hora_ingreso<<endl; cout<<"ingrese la hora de salida en formato 24hs."<<endl; cout<<"ejemplo 20:35:42 un dato a la vez"<<endl; cout<<"ingrese la hora de salida"<<endl; cin>>h_s; cout<<"ingrese los minutos"<<endl; cin>>m_s; cout<<"ingrese los segundos"<<endl; cin>>s_s; hora_egreso=hora_segundo(h_s, m_s,s_s); cout<<"hora_egreso "<<hora_egreso<<endl; diferencia=hora_egreso-hora_ingreso; cout<<"diferencia "<<diferencia<<endl; return diferencia; } void horas(int dif) { /*cout<<"diferencia "<<dif<<endl; cout<<"diferencia "<<diferencia<<endl;*/ int sec, hr, min; sec=diferencia; hr = sec / (60*60); sec %= 60*60; min = sec / 60; sec %= 60; cout << hr << " hora"; if(hr != 1) cout << "s"; cout << ":" << min << " minuto"; if(min != 1) cout << "s"; cout << ":" << sec << " segundo"; if(sec != 1) cout << "s"; } int calcularCargo(int dif) { int rdo, rdo1; if (dif<=10800) { rdo=2; } else { if ((dif<10800)&&(dif>=86400)) { rdo=(dif-10800)/3600; rdo1 %= 60*60; if (rdo1>=1) { rdo=rdo+1; } rdo=2+(rdo*0.5); } } return rdo; } int main() { diferencia=diferencia_hora(); /*cout<<"diferencia2 "<<diferencia<<endl; system("PAUSE");*/ horas(diferencia); calcularCargo(diferencia); system("PAUSE"); cin.get(); return 0; }
Saluditos!.
|
|
« Última modificación: 8 Enero 2013, 16:48 pm por leosansan »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ejercicio 506
Ejercicios
|
ieman
|
0
|
3,941
|
13 Mayo 2005, 17:42 pm
por ieman
|
|
|
Ejercicio en C
Ejercicios
|
ߣ@î§
|
3
|
10,855
|
4 Septiembre 2005, 06:31 am
por ߣ@î§
|
|
|
Help Ejercicio 122 en C
Ejercicios
|
ANELKAOS
|
4
|
5,189
|
15 Septiembre 2005, 23:41 pm
por Arcangel_RZ
|
|
|
[Ejercicio] Aca tienen un ejercicio para practicar
« 1 2 3 »
Programación Visual Basic
|
Dreamaker
|
20
|
16,655
|
5 Septiembre 2010, 02:57 am
por TGa.
|
|
|
ejercicio conclase pag 70 ejercicio 1
Programación C/C++
|
flony
|
2
|
4,596
|
17 Octubre 2010, 12:16 pm
por Akai
|
|