Autor Tema: bind JavaScript. Conversor de grados centígrados a farenheit Ejercicio CU01178E#  (Leído 5095 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Otro más. Ejercicio CU01178E del curso JavaScript desde cero:

Citar
EJERCICIO
Escribe este código, ejecútalo y responde a las preguntas que aparecen a continuación.
Código: [Seleccionar]
function conversor(toUnit, factor, offset, input) {
    offset = offset || 0;
    return [((offset+input)*factor).toFixed(2), toUnit].join(" ");
}
 
var milesToKm = conversor.bind(undefined, 'km', 1.60936, 0);
var poundsToKg = conversor.bind(undefined, 'kg', 0.45460, 0);
var farenheitToCelsius = conversor.bind(undefined, 'gradosC',0.5556, -32);
 
alert(milesToKm(10));           
alert(poundsToKg(2.5));         
alert(farenheitToCelsius(98));

Citar
a) ¿Cuántas funciones ligadas (copias parametrizadas) de la función conversor se crean en este código?
Hay 3, milesTokm poundsToKg y farenheitToCelsius.
         
Citar
b) ¿Qué es lo que devuelve la función conversor?
Devuelve el resultado de la conversión de una unidad de medida a otra.
         
Citar
c) ¿Qué objeto actúa como this en la función milesToKm?
No está definido, así que ninguno.
         
Citar
d) ¿Qué tarea cumple y con qué fórmula trabaja la función milesToKm?
Crea una copia de la función conversor y le pasa los argumentos necesarios para que se ejecute.
         
Citar
e) ¿Qué tarea cumple y con qué fórmula trabaja la función poundsToKg?
Crea una copia de la función conversor y le pasa los argumentos necesarios para que se ejecute.
         
Citar
f) ¿Qué resultado devuelve milesToKm(10) y qué significa este resultado?
16.09 km, Es el resultado de transformar millas en kilómetros.
         
Citar
g) ¿Qué resultado devuelve poundsToKg(2.5) y qué significa este resultado?
1.14 kg, Es el resultado de transformar libras a kilos.
         
Citar
h) ¿Qué resultado devuelve farenheitToCelsius(98) y qué significa este resultado?
36.67 gradosC, Es el resultado de transformar grados farenheit en grados Centígrados.
         
Citar
i) ¿Qué significado tiene la expresión offset = offset || 0;?
Si offset no tiene ningún valor, valdrá 0.
         
Citar
j) ¿Cuál es la finalidad del uso de toFixed(2)?
Devuelve un String con el número o variable sobre el que se invoca el método con 2 decimales.
         
Citar
k) ¿Por qué crees que se usa el parámetro offset en la función conversor?
Porque hay funciones que para poder realizar la conversión necesitan un tercer dato.
         
Citar
l) Modifica el código para ampliar la información que se nos muestra: introduce un parámetro fromUnit en la función conversor de modo que el resultado nos informe del dato de origen, sus unidades, y el dato convertido y sus unidades.

Código: [Seleccionar]
function conversor(toUnit, factor, offset, fromUnit, input) {
offset = offset || 0;
return [input, fromUnit, 'son', ((offset+input)*factor).toFixed(2), toUnit].join(" ");
}
var milesToKm = conversor.bind(undefined, 'km', 1.60936, 0, 'millas');
var poundsToKg = conversor.bind(undefined, 'kg', 0.45460, 0, 'libras');
var farenheitToCelsius = conversor.bind(undefined, 'gradosC',0.5556, -32, 'gradosF');
alert(milesToKm(10));           
alert(poundsToKg(2.5));         
alert(farenheitToCelsius(98));

Saludos.
« Última modificación: 23 de Marzo 2016, 10:57 por César Krall »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas Pedro

a) Bien

b) Bien además podríamos decir que se espera que devuelva un valor numérico

c) Bien (al no existir this actúa el this por defecto, es decir, el objeto window)

d) En este caso la copia (referencia) a la función conversor lleva ligados unos parámetros con un fin específico, ese fin es que la función devuelva el resultado de convertir un valor en millas (miles) a kilómetros (km), por tanto su tarea es convertir millas a kilómetros. La función milesToKm no crea una copia, mejor diríamos que es una referencia parametrizada a la funnción conversor. La fórmula con que trabaja la función milesToKm es valorRecibido*1.60936 con redondeo a dos decimales.

e) Se responde como he indicado para la d pero viendo lo que hay que aplicar en este caso

f) Bien

g) Bien

h) Bien

i) Bien

j) Bien

k) Bien, por ejemplo la fórmula para convertir grados centígrados a farenheit no es una simple multiplicación. La fórmula es gradosCent = (gradosFarenh - 32) * (5/9)

l) Bien para quien quiera probar el código que guarde esto como ejemplo.html y lo vea en el navegador

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function conversor(toUnit, factor, offset, fromUnit, input) {
offset = offset || 0;
return [input, fromUnit, 'son', ((offset+input)*factor).toFixed(2), toUnit].join(" ");
}
var milesToKm = conversor.bind(undefined, 'km', 1.60936, 0, 'millas');
var poundsToKg = conversor.bind(undefined, 'kg', 0.45460, 0, 'libras');
var farenheitToCelsius = conversor.bind(undefined, 'gradosC',0.5556, -32, 'gradosF');
alert(milesToKm(10));           
alert(poundsToKg(2.5));         
alert(farenheitToCelsius(98));

</script>
</head>
<body>
Prueba del código
</body>
</html>


Salu2
« Última modificación: 23 de Abril 2016, 21:02 por Mario R. Rancel »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".