Tracks
/
JavaScript
JavaScript
/
Ejercicios
/
Tarifas de freelancer
Tarifas de freelancer

Tarifas de freelancer

Ejercicio de aprendizaje

Introducción

Números

Muchos lenguajes de programación tienen tipos numéricos específicos para representar distintos tipos de números, pero JavaScript solo tiene dos:

  • number: un tipo de dato numérico en el formato de punto flotante de 64 bits de doble precisión (IEEE 754). Algunos ejemplos son -6, -2.4, 0, 0.1, 1, 3.14, 16.984025, 25, 976, 1024.0 y 500000.
  • bigint: un tipo de dato numérico que puede representar enteros en el formato de precisión arbitraria. Algunos ejemplos son -12n, 0n, 4n, y 9007199254740991n.

Si necesitas precisión arbitraria o trabajas con números extremadamente grandes, usa el tipo bigint. De lo contrario, el tipo number probablemente sea la mejor opción.

Redondeo

Existe un objeto global integrado llamado Math que ofrece varias funciones de redondeo. Por ejemplo, puedes redondear hacia abajo (floor) o hacia arriba (ceil) números decimales al número entero más cercano.

Math.floor(234.34); // => 234
Math.ceil(234.34); // => 235

Operadores aritméticos

JavaScript ofrece 6 operadores diferentes para realizar operaciones aritméticas básicas con números.

  • +: El operador de suma se usa para hallar la suma de números.
  • -: El operador de resta se usa para hallar la diferencia entre dos números
  • *: El operador de multiplicación se usa para hallar el producto de dos números.
  • /: El operador de división se usa para dividir dos números.
2 - 1.5; //=> 0.5
19 / 2; //=> 9.5
  • %: El operador de residuo se usa para hallar el residuo de una división.

    40 % 4; // => 0
    -11 % 4; // => -3
    
  • **: El operador de exponenciación se usa para elevar un número a una potencia.

    4 ** 3; // => 64
    4 ** 1 / 2; // => 2
    

Orden de las operaciones

Cuando usas varios operadores en una misma línea, JavaScript sigue un orden de precedencia como el que se muestra en esta tabla de precedencia. Para simplificarlo en nuestro contexto, JavaScript usa la regla PEDMAS (paréntesis, exponentes, división/multiplicación, suma/resta) que aprendimos en las clases de matemáticas básicas.

const result = 3 ** 3 + 9 * 4 / (3 - 1);
// => 3 ** 3 + 9 * 4/2
// => 27 + 9 * 4/2
// => 27 + 18
// => 45

Operadores de asignación abreviados

Los operadores de asignación abreviados son una forma más corta de escribir código que realiza operaciones aritméticas sobre una variable y asigna el nuevo valor a esa misma variable. Por ejemplo, considera dos variables x y y. Entonces, x += y es lo mismo que x = x + y. A menudo, esto se usa con un número en lugar de la variable y. Las otras 5 operaciones también se pueden realizar de manera similar.

let x = 5;
x += 25; // x is now 30

let y = 31;
y %= 3; // y is now 1

Instrucciones

En este ejercicio vas a escribir código para ayudar a un freelancer a comunicarse con sus clientes sobre los precios de ciertos proyectos. Vas a escribir algunas funciones auxiliares para calcular rápidamente los costos para los clientes.

Note

La variable ratePerHour y la función dayRate están relacionadas con el dinero. Las unidades de medida son dinero por unidad de tiempo: horas y días, respectivamente.

1. Calcula la tarifa diaria a partir de una tarifa por hora

Un cliente contacta al freelancer para preguntar por sus tarifas. El freelancer explica que trabaja 8 horas al día. Sin embargo, el freelancer solo conoce su tarifa por hora para el proyecto. Ayúdalo a estimar una tarifa diaria a partir de una tarifa por hora.

dayRate(89);
// => 712

La tarifa diaria no necesita redondearse ni cambiarse a una precisión «fija».

2. Calcula la cantidad de días laborables a partir de un presupuesto fijo

Otro día, un gerente de proyecto le ofrece al freelancer trabajar en un proyecto con un presupuesto fijo. Dado el presupuesto fijo y la tarifa por hora del freelancer, ayúdalo a calcular cuántos días trabajaría hasta que se agote el presupuesto. El resultado debe redondearse hacia abajo al número entero más cercano.

daysInBudget(20000, 89);
// => 28

3. Calcula la tarifa con descuento para proyectos grandes

A menudo, los clientes del freelancer lo contratan para proyectos que abarcan varios meses. En estos casos, el freelancer decide ofrecer un descuento por cada mes completo, y los días restantes se facturan a la tarifa diaria. Tu excelente equilibrio entre trabajo y vida personal hace que solo trabajes 22 días en cada mes calendario, así que cada mes tiene 22 días facturables. Ayúdalo a estimar su costo para este tipo de proyectos, dada una tarifa por hora, la cantidad de días facturables que contiene el proyecto y una tasa de descuento mensual. El descuento siempre se pasa como un número, donde 42% se convierte en 0.42. El resultado debe redondearse hacia arriba al número entero más cercano.

priceWithMonthlyDiscount(89, 230, 0.42);
// => 97972
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
JavaScript Exercism

¿Todo listo para empezar Tarifas de freelancer?

Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.