sábado, 30 de octubre de 2010

Deitel_Java_4.17 (Rendimiento de Kilómetros por Galón de Gasolina)

4.17 Los conductores se preocupan acerca del kilometraje de sus automóviles. Un conductor ha llevado el registro de varios reabastecimientos de gasolina, registrando los kilómetros conducidos y los litros usados en cada reabastecimiento. Desarrolle una aplicación en Java que reciba como entrada los kilómetros conducidos y los litros usados (ambos como enteros) por cada reabastecimiento. El programa debe calcular y mostrar los kilómetros por litro obtenidos en cada reabastecimiento, y debe imprimir el total de kilómetros por litro obtenidos en todos los reabastecimientos hasta este punto. Todos los cálculos del primedio deben producir resultados en número de punto flotante. Use la clase Scanner y la repetición controlada por centinela para obtener los datos del usuario.
_____________________________________________________________________________________
SOLUCIÓN:
Éste programa es innecesariamente más largo de lo que puede hacerse. La clase Deitel_4_17 simplemente calcula y retorna el cociente de kilómetros/galones. Ésto se puede incluir en la instrucción

System.out.printf("\nLos kilometros por galon fueron: %.2f: ", miObjeto.Procesa_Datos(galon, kilometros));

para quedar como:

System.out.printf("Los kilometros por galon fueron: %.2f", kilometros/galon);

Sin embargo, en estos primeros programas es más importante a realizar programas modulares que hacerlos eficientes. Un programa monolítico es, en general, más rápido que uno modular, sin embargo, los programas modulares son más fáciles de entender y mantener.

Éste código debe guardarse con el nombre UsaDeitel_4_17.java

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// Este programa recibe, mediante un ciclo controlado por centinela,    //
// el numero de galones y el numero de kilometros recorridos por cada   //
// galon. Imprime cada vez el rendimiento kilometros/galon              //
////////////////////////////////////////////////////////////////////////// 

import java.util.Scanner;

 public class UsaDeitel_4_17

{ // Abre clase UsaDeitel_4_17

public static void main(String args[])
{ // Abre metodo main
Scanner entrada = new Scanner(System.in);
double galon = 0;
double kilometros;

Deitel_4_17 miObjeto = new Deitel_4_17();


System.out.println("\nIntroduzca el numero de galones: (-1 para terminar)\n");
galon = entrada.nextDouble();

while ( -1 != galon)
{ // Abre while

System.out.println("\nIntroduzca el numero de kilometros: \n");
kilometros = entrada.nextDouble();

System.out.printf("\nLos kilometros por galon fueron: %.2f: ", miObjeto.Procesa_Datos(galon, kilometros));
System.out.println("\nIntroduzca el numero de galones: (-1 para terminar) \n");
galon = entrada.nextDouble();
} // Cierra while
} // Cierra metodo main
} // Cierra clase UsaDeitel_4_17

Éste código debe de guardarse con el nombre Deitel_4_17.java

public class Deitel_4_17

{ // Abre clase Deitel_4_17

public double Procesa_Datos( double gl, double km)
{ // Abre metodo Procesa_Datos
double promedio = km/gl;
return promedio;
} // Cierra metodo Procesa_Datos

} // Cierra Deitel_4_17

______________________________________________________________
Esta entrada es parte de los problemas resueltos del libro Java. Cómo Prgramar de P. Deitel y H. Deitel
Entrada Anterior
Entrada Siguiente

2 comentarios:

  1. No entiendo como crear las primras innstrucciones las del retorno kilómetros/galones

    ResponderEliminar
    Respuestas
    1. ¡Hola! Lo que comento acerca de esas primeras líneas es que, en realidad es innecesaria la clase Deitel_4_17, ya que podrías no llamarla, y hacer todo en
      UsaDeitel_4_17, cambiando la línea

      System.out.printf("\nLos kilometros por galon fueron: %.2f: ", miObjeto.Procesa_Datos(galon, kilometros));

      System.out.printf("Los kilometros por galon fueron: %.2f", kilometros/galon);

      Pero, tal como aparece el programa, lo puedes copiar y ejecutar, está bien.

      Eliminar

Related Posts Plugin for WordPress, Blogger...