Ejercicios de práctica de JavaScript
Ejercicio 25
Sistema de facturación.
- Crear una función que se llame facturacion().
- La función tiene que recibir como parámetro el monto de un producto, y el medio de pago: C (tarjeta de crédito), E (efectivo) y D (tarjeta de débito). Si el monto del producto es menor a $200 no se aplicará ningún descuento. Si el monto a abonar es entre $200 y $400 se aplicará un descuento del 30% si el medio de pago es efectivo, 20% si se realiza con débito y 10% con tarjeta de crédito. Para montos mayores a $400, el descuento es 40% sin importar el medio de pago.
- La función deberá retornar el monto final a abonar.
Forma de resolverlo:
Creo la funcion expresada facturacion() que recibe como parámetros: precio (valido que ingrese numero, que no ingrese vacío, que no sea 0, que no sea número negaativo) y medioPago .
Si el precio está (0,200) no importa el método de pago, no hay ningún descuento (es la condición 1ra a evaluar en el if).
Si el precio está en (200,400) el método de pago si influye, en el else if lo selecciono con switch. Y finalmente si el monto es mayor a 400 tampoco importa el método de pago, siempre tiene un 40 % de descuento. Siempre muestro todo por consola
const facturacion = (precio = undefined, medioPago = undefined) => {
if(precio === undefined) return console.warn("No ingresaste un numero");
if(typeof precio !== "number") return console.error(`El ${precio} ingresado no es un numero.`);
if(precio === 0) return console.error("El precio ingresado no puede ser 0.");
if(Math.sign(precio)=== -1) return console.error("El precio ingresado no puede ser negativo");
if(precio < 200) {
return console.info(`El monto a abonar es de ${precio}.`);
} else if(precio <400){
switch (medioPago) {
case "C":
console.info(`El precio ingresado es de ${precio}, por pago en tarjeta de credito tenes un 10 % de descuento, tu precio final es de ${precio *0.9}.`);
break;
case "E":
console.info(`El precio ingresado es de ${precio}, por pago en efectivo tenes un 30 % de descuento, tu precio final es de ${precio *0.7}.`);
break;
case "D":
console.info(`El precio ingresado es de ${precio}, por pago en tarjeta de debito tenes un 20 % de descuento, tu precio final es de ${precio *0.8}.`);
break;
default:
console.warn("No ingresaste el medio de pago");
break;
} else {
return console.info(`El precio ingresado es de ${precio}, por monto mayor a $400 tenés un 40% de descuento, tu precio final es de ${precio * 0.6}.`);
}
}
Llamo a la función sin parámetros para ver validación
facturacion();
Llamo a la funcón con string como parámetros para ver validación
facturacion("Hola");
Llamo a la función con 0 como parámetros para ver validación
facturacion(0);
Llamo a la función con número negativo como parámetros para ver validación
facturacion(-20);
Llamo a la función y paso como parámetro un importe menor a 200
facturacion(100,"C");
facturacion(110,"E");
facturacion(120,"D");
Llamo a la función y paso como parámetro un importe entre (200,400)
facturacion(300,"C");
facturacion(300,"E");
facturacion(300,"D");
Llamo a la función y paso como parámetro mayor a $ 400
facturacion(500,"C");
facturacion(600,"E");
facturacion(700,"D");
Con F12 podés verlo en la consola
Volver al inicio