Acá les traigo el ejercicio CU01122E del curso de JavaScript en pdf con ejercicios resueltos. En este caso son dos ejercicios. En el primero opté por usar
switch, pero probablemente también lo podría haber hecho con
if else. No se cual de las dos opciones sería la más correcta para este caso, pero opté por usar
switch para practicar.
También utilicé los valores del impuesto (21%, 10% y 5%) en número enteros porque si multiplicaba directamente la variable por (1.21 , 1.10 y 1.05) el resultado de 100 * 1.10 me daba 110.000000001.
Luego, si no colocaba la propiedad Number cuando ingresaba el número del tipo de producto, el precio con impuesto me daba undefined.
Acepto críticas constructivas porque creo que el código se puede mejorar.
1. Crea un script donde declares una función obtenerImporteConImpuestos que reciba dos parámetros: el importe sin impuestos (numérico) y el tipo de producto (numérico entero). La función debe mostrar por pantalla el importe sin impuestos más el 21% si el tipo de producto es 1, ó el importe sin impuestos más el 10% si el tipo de producto es 2, ó el importe sin impuestos más el 5% si el tipo de producto es 3.
Ejemplo: obtenerImporteConImpuestos(100, 1) debe mostrar: Para un importe sin impuestos de 100 y tipo de producto 1 el resultado de importe con impuestos es 121. obtenerImporteConImpuestos(100, 2) debe mostrar: Para un importe sin impuestos de 100 y tipo de producto 2 el resultado de importe con impuestos es 110.
2. Crea un script donde declares una función obtenerImporteConImpuestos2 que reciba un parámetro: el importe sin impuestos (numérico). La función debe devolver un array con valor undefined para el índice 0, el importe sin impuestos más el 21% para el índice 1, el importe sin impuestos más el 10% para el índice 2, ó el importe sin impuestos más el 5% para el índice 3. Invoca la función haciendo que se muestre el contenido del array por pantalla.
obtenerImporteConImpuestos(100) debe devolver: resultado[0] = undefined, resultado[1] = 121, resultado[2] = 110, resultado[3] = 105. Por pantalla se debe mostrar: Para precio sin impuestos 100 si el producto es tipo 1 el importe es 121, si el producto es tipo 2 el importe es 110 y si el producto es tipo 3 el importe es 105.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejercicio CU01122E</title>
<script>
function obtenerImporteConImpuestos(importeSinImpuesto, tipoDeProducto){
var importeConImpuesto;
switch (tipoDeProducto) {
case 1: importeConImpuesto = (importeSinImpuesto * 121)/100; break;
case 2: importeConImpuesto = (importeSinImpuesto * 110)/100; break;
case 3: importeConImpuesto = (importeSinImpuesto * 105)/100; break;
default: importeConImpuesto = 'El tipo de producto no existe'; break;
}
document.write('El importe sin impuesto es: ' + importeSinImpuesto + ' y con el impuesto es: ' + importeConImpuesto);
}
function obtenerImporteConImpuesto2(importeSinImpuesto){
var importeConImpuesto = [undefined];
importeConImpuesto[1] = (importeSinImpuesto * 121)/100;
importeConImpuesto[2] = (importeSinImpuesto * 110)/100;
importeConImpuesto[3] = (importeSinImpuesto * 105)/100;
document.write('El importe con los tres impuesto es: ' + importeConImpuesto);
}
</script>
</head>
<body>
<script>
obtenerImporteConImpuestos(Number(prompt('Ingrese el importe')), Number(prompt('Ingrese el tipo de producto' + '\n' + 'Productos: 1, 2 o 3')));
document.write('<br>');
obtenerImporteConImpuesto2(Number(prompt('Ingrese segundo importe')));
</script>
</body>
</html>