Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Mario Olivera en 19 Julio 2014, 00:55 am



Título: [Solucionado] Problema en un Ejercicio de C++
Publicado por: Mario Olivera en 19 Julio 2014, 00:55 am
Hola gente, tengo un problema con un ejercicio en C++, en el ejercicio tengo que programar un programa que reciba los kilometros conducidos y los ltrs (litros) usados (ambos como enteros) para cada reabastecimiento, y debe imprimir el total de kilometros por litro obtenidos en todos los reabastecimientos hasta este punto.

Ok, hasta aca entendi que tengo dividir los kilometros por los litros, pero al ver en el ejercicio la imagen de el programa ejecutado la verdad es que no entiendo que cuentas hace, les dejo lo que me muestra la imagen...(lo que esta en verde son los datos ingresados por el usuario)

Citar
Escriba los kilómetros usados (-1 para salir): 287
Escriba los litros: 13
KPL en este reabastecimiento: 22.076923
Total KPL: 22.07693

Escriba los kilómetros usados (-1 para salir): 200
Escriba los litros: 10
KPL en este reabastecimiento: 20.000000
Total KPL: 21.173913


El programa obio que sigue, pero no hay diferencia en mostrar mas ingresos de datos por el usuario, mi problema es que no entiendo que calculo hace porque los primeros datos ingresados se que lo que hace es dividir los kilometros por litros, despues imprime los KLP (kilometros por litro), y despues el total, pero ya cuando se ingresan otros kilometros y otros ltrs entiendo la cuenta que hace para el "KPL en este establecimiento" lo que no entiendo es porque muestra ese valor en el TOTAL KPL.

Explico, no quiero que me pasen un codigo porque el ejercicio me pide con instrucciones especiales, no quiero que me hagan un ejercicio solo quiero saber que es lo que pasa ahi :S

Pues, espero haber sido un poco claro y espero que no me haya roto mucho la cabeza para entender que solo es un error del libro  :P

PD: por las dudas me pide valores enteros y ahi me los imprime como double, pero eso lo hago con static_cast :D

Desde ya gracias por cualquier ayuda, Saludos gente  ;-)


Título: Re: Problema en un Ejercicio de C++
Publicado por: engel lex en 19 Julio 2014, 01:11 am
no será que el total KLP será el promedio de las otras cuentas que sacaste n la ejecucion?


Título: Re: Problema en un Ejercicio de C++
Publicado por: Mario Olivera en 19 Julio 2014, 01:24 am
no será que el total KLP será el promedio de las otras cuentas que sacaste n la ejecucion?

disculpa engel me equivoque cuando puse los datos que tendria que tirar segun esos datos ingresados puse esto:

Citar
Escriba los kilómetros usados (-1 para salir): 287
Escriba los litros: 13
KPL en este reabastecimiento: 20.076923
Total KPL: 22.07693

ya lo edite, cambie el resultado de KPL en este reabastecimiento por 22.076923, con respecto a lo que dijiste del promedio no entiendo muy bien a que tipo de cuenta tendria que hacer para sacar ese promedio, nose si me explico, se como sacar un promedio si, pero en este caso lo que cambia nomas es el numero 22.076923 por 22.07693, nose que puede llegar a hacer  :huh:


Título: Re: Problema en un Ejercicio de C++
Publicado por: engel lex en 19 Julio 2014, 01:28 am
puedes mostrar los datos corridos desde 0 para ver, unas 3 operaciones con numeros como 1-1, 10-10, 10-1


Título: Re: Problema en un Ejercicio de C++
Publicado por: Mario Olivera en 19 Julio 2014, 01:37 am
puedes mostrar los datos corridos desde 0 para ver, unas 3 operaciones con numeros como 1-1, 10-10, 10-1

Te dejo todos los datos que me da :D

Los conductores se preocupan acerca del kilómetraje de sus automóviles. Un conductor ha llevado el regristro de varios reabastecimientos de gasolina, regristrando los kilómetros conducidos y los litros usados en cada reabasdtecimiento. Desarrolle un programa en C++ que utilice una instruccion while para recibir como entrada los kilómetros conducidos y los litros usados (ambos como enteros) por cada reabastecimiento. El programa debe calcular y mostrar los kilometros por litro obtenido en cada reabastecimiento y debe imprimir el total de kilometros por litro obtenidos en todos los reabastecimientos hasta este punto.

EJEMPLO DEL PROGRAMA EJECUTADO:

Citar
Escriba los kilómetros usados (-1 para salir): 287
Escriba los litros: 13
KPL en este reabastecimiento: 22.076923
Total KPL: 22.07693

Escriba los kilómetros usados (-1 para salir): 200
Escriba los litros: 10
KPL en este reabastecimiento: 20.000000
Total KPL: 21.173913

Escriba los kilómetros usados (-1 para salir): 120
Escriba los litros: 5
KPL en este reabastecimiento: 24.000000
Total KPL: 21.678571

Escriba los kilómetros usados (-1 para salir): -1


Título: Re: Problema en un Ejercicio de C++
Publicado por: engel lex en 19 Julio 2014, 01:45 am
el primer KPL parece un error numérico, porque por alguna razón baja la precisión de 6 a 5 números decimales casualmente comiéndose uno...

el segundo kpl no es promedio según creo... realmente no se :s


Título: Re: Problema en un Ejercicio de C++
Publicado por: Mario Olivera en 19 Julio 2014, 01:47 am
el primer KPL parece un error numérico, porque por alguna razón baja la precisión de 6 a 5 números decimales casualmente comiéndose uno...

el segundo kpl no es promedio según creo... realmente no se :s

Si la verdad que es muy raro y muy dificil de entender que hace verdaderamente, pero no creo que sea un error de impresión en el libro, sino los otros TOTAL KPL estarian correctos y no lo estan :S

Verdaderamente raro  :-\

Muchas gracias igual engel por ayudar  :)


Título: Re: Problema en un Ejercicio de C++
Publicado por: ivancea96 en 19 Julio 2014, 01:55 am
Los totales son los KPL hasta ese momento, no tiene más trama.
Se calculan sumando los kilómetros totales, y dividiéndolos entre el consumo total.


Título: Re: Problema en un Ejercicio de C++
Publicado por: MinusFour en 19 Julio 2014, 01:57 am
El primer KPL simplemente es: K/L
El segundo es : (K1+K2)/(L1+L2)
y el tercero (K1+K2+K3)/(L1+L2+L3)


Título: Re: Problema en un Ejercicio de C++
Publicado por: engel lex en 19 Julio 2014, 02:07 am
Los totales son los KPL hasta ese momento, no tiene más trama.
Se calculan sumando los kilómetros totales, y dividiéndolos entre el consumo total.


no daba! XD eso se llama promedio y no era


El primer KPL simplemente es: K/L
El segundo es : (K1+K2)/(L1+L2)
y el tercero (K1+K2+K3)/(L1+L2+L3)

como siempre con respuesta acertadas! XD buena esa! you win this time!


Título: Re: Problema en un Ejercicio de C++
Publicado por: Mario Olivera en 19 Julio 2014, 02:21 am
El primer KPL simplemente es: K/L
El segundo es : (K1+K2)/(L1+L2)
y el tercero (K1+K2+K3)/(L1+L2+L3)

Muchas gracias a todos por su ayuda, con respecto al primer Total KPL seguro es un error de impresión al cambiarse el 22.076923 por 22.07693

Ya lo terminé  ;-)

(http://s2.subirimagenes.com/otros/previo/thump_8999092sin-ttulo2.jpg)



main.cpp


Código
  1. #include "kilometros.h"
  2.  
  3. int main()
  4. {
  5. kilometros kilometro1;
  6. cin.get();
  7. return 0;
  8. }

kilometros.h

Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::endl;
  4. using std::cout;
  5. using std::fixed;
  6.  
  7. #include <iomanip>
  8. using std::setprecision;
  9.  
  10. class kilometros
  11. {
  12. public:
  13. kilometros();
  14. void calcular();
  15. };

kilometros.cpp

Código
  1. #include "kilometros.h"
  2.  
  3. // CONSTRUCTOR
  4.  
  5. kilometros::kilometros()
  6. {
  7.  calcular();
  8. }
  9.  
  10. //FUNCION CALCULAR
  11.  
  12. void kilometros::calcular()
  13. {
  14. // variables
  15. int kilometros; // kilometros - centinella
  16. int totalKilometros=0;
  17. int litros;
  18. int totalLitros=0;
  19.  
  20. //prueba de ingreso a while
  21. cout <<"Escriba los kilometros usados (-1 para salir): ";
  22. cin >> kilometros;
  23.  
  24. while (kilometros != -1)
  25. {
  26. cout << "\nEscriba los litros: ";
  27. cin >> litros;
  28. cout <<"KPL en este reabastecimiento: " <<setprecision(6) <<fixed <<static_cast<double>(kilometros) / litros << endl;
  29. totalKilometros+= kilometros;
  30. totalLitros+= litros;
  31. cout <<"KPL Total: " <<setprecision(6) <<fixed <<static_cast<double>(totalKilometros) / totalLitros << endl;
  32.  
  33.  
  34. cout <<"\nEscriba los kilometros usados (-1 para salir): ";
  35.    cin >> kilometros;
  36. }
  37.  
  38. }
  39.  


Título: Re: Problema en un Ejercicio de C++
Publicado por: ivancea96 en 19 Julio 2014, 03:16 am
no daba! XD eso se llama promedio y no era

No no es promedio. Kilómetros totales entre  litros totales ¬¬


Título: Re: Problema en un Ejercicio de C++
Publicado por: engel lex en 19 Julio 2014, 05:14 am
No no es promedio. Kilómetros totales entre  litros totales ¬¬

ya XD solo que no se daba a entender tan simple XD