Resolviendo más ejercicios de programación en Java hemos llegado a uno que se trata de calcular el monto a pagar por la energía eléctrica tomando en cuenta los kilowatts usados y un costo fijo por el servicio prestado.
El problema dice así:
Calcular el pago del recibo de luz del mes, dada la lectura presente y la lectura pasada (la diferencia entre estos son los kilowatts que se consumieron). Asume un costo por kilowatt de $3.5 y un costo fijo de $100 pesos por el servicio prestado por la compañía eléctrica. Se requiere calcular e imprimir los kilovatios utilizados y el importe total de la factura. (Métodos con parámetros con return, un método para los kilovatios y otro para el consumo)
Veamos cómo resolverlo a continuación.
Explicación del algoritmo
Básicamente son operaciones matemáticas, entre ellas restas y multiplicaciones. Primero vamos a solicitar la lectura actual y la lectura pasada para poder sacar la diferencia de kilowatts. Una vez que la tengamos la multiplicamos por 3.5 que es el costo por kilowatt.
Más tarde, sumamos el monto por el consumo y el costo fijo para que nos dé el total. Finalmente imprimimos los resultados.
Código de Java
Comencemos viendo los métodos. Uno nos dice la diferencia y otro nos da el importe. El que da la diferencia de los kilowatts es el siguiente:
public static double diferenciaKilovatios(double lecturaPresente, double lecturaPasada) {
return lecturaPresente - lecturaPasada;
}
Realmente no es tan necesario encerrar una simple resta en un método, pero así lo solicita el ejercicio. Pasando al que nos da el importe, queda así:
public static double importeDeLuz(double lecturaPresente, double lecturaPasada) {
double costoPorConsumo = diferenciaKilovatios(lecturaPresente, lecturaPasada) * 3.5;
return costoPorConsumo + 100;
}
Este método es el que tiene más trabajo, pues obtiene el consumo de los kilowatts y los multiplica por 3.5
que es el precio. Luego, regresa lo obtenido más el costo fijo.
Poniendo todo junto
Veamos ahora el código completo. En este caso se le solicita al usuario que ingrese la lectura actual y la lectura pasada usando un Scanner. Después se realizan los cálculos y se imprimen los resultados, por lo que el código completo queda así:
/*
https://parzibyte.me/blog
*/
import java.util.Scanner;
public class Main{
public static double diferenciaKilovatios(double lecturaPresente, double lecturaPasada) {
return lecturaPresente - lecturaPasada;
}
public static double importeDeLuz(double lecturaPresente, double lecturaPasada) {
double costoPorConsumo = diferenciaKilovatios(lecturaPresente, lecturaPasada) * 3.5;
return costoPorConsumo + 100;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Ingresa la lectura presente: ");
double lecturaPresente = sc.nextDouble();
System.out.println("Ingresa la lectura pasada: ");
double lecturaPasada = sc.nextDouble();
double consumo = diferenciaKilovatios(lecturaPresente, lecturaPasada);
double importe = importeDeLuz(lecturaPresente, lecturaPasada);
System.out.println("Consumo: " + consumo + " Kilovatios " + " Importe: " + importe);
}
}
Con la siguiente salida que a mi parecer es correcta:
Aquí te dejo más ejercicios sobre Java.