Trilhas
/
JavaScript
JavaScript
/
Exercícios
/
Tarifas de freelancer
Tarifas de freelancer

Tarifas de freelancer

Exercício de aprendizagem

Introdução

Números

Muitas linguagens de programação têm tipos numéricos específicos para representar diferentes tipos de números, mas o JavaScript tem apenas dois:

  • number: um tipo de dado numérico no formato de ponto flutuante de precisão dupla de 64 bits (IEEE 754). Alguns exemplos são -6, -2.4, 0, 0.1, 1, 3.14, 16.984025, 25, 976, 1024.0 e 500000.
  • bigint: um tipo de dado numérico que pode representar inteiros no formato de precisão arbitrária. Alguns exemplos são -12n, 0n, 4n e 9007199254740991n.

Se você precisar de precisão arbitrária ou trabalhar com números extremamente grandes, use o tipo bigint. Caso contrário, o tipo number provavelmente é a melhor opção.

Arredondamento

Existe um objeto global embutido chamado Math que oferece várias funções de arredondamento. Por exemplo, você pode arredondar para baixo (floor) ou para cima (ceil) números decimais para os números inteiros mais próximos.

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

Operadores aritméticos

O JavaScript oferece 6 operadores diferentes para realizar operações aritméticas básicas com números.

  • +: O operador de adição é usado para encontrar a soma de números.
  • -: O operador de subtração é usado para encontrar a diferença entre dois números
  • *: O operador de multiplicação é usado para encontrar o produto de dois números.
  • /: O operador de divisão é usado para dividir dois números.
2 - 1.5; //=> 0.5
19 / 2; //=> 9.5
  • %: O operador de resto é usado para encontrar o resto de uma divisão.

    40 % 4; // => 0
    -11 % 4; // => -3
    
  • **: O operador de exponenciação é usado para elevar um número a uma potência.

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

Ordem das operações

Ao usar vários operadores na mesma linha, o JavaScript segue uma ordem de precedência, como mostra esta tabela de precedência. Para simplificar isso ao nosso contexto, o JavaScript usa a regra PEDMAS (Parênteses, Expoentes, Divisão/Multiplicação, Adição/Subtração) que aprendemos nas aulas de matemática do ensino fundamental.

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

Operadores de atribuição abreviados

Os operadores de atribuição abreviados são uma forma mais curta de escrever código que realiza operações aritméticas em uma variável e atribui o novo valor à mesma variável. Por exemplo, considere duas variáveis x e y. Então, x += y é o mesmo que x = x + y. Muitas vezes, isso é usado com um número em vez de uma variável y. As outras 5 operações também podem ser feitas de forma parecida.

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

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

Instruções

Neste exercício, você vai escrever código para ajudar um freelancer a se comunicar com os clientes sobre os preços de determinados projetos. Você vai escrever algumas funções utilitárias para calcular rapidamente os custos para os clientes.

Note

A variável ratePerHour e a função dayRate têm a ver com dinheiro. As unidades de medida são dinheiro por unidade de tempo: horas e dias, respectivamente.

1. Calcule o valor diário a partir de um valor por hora

Um cliente entra em contato com o freelancer para saber seus valores. O freelancer explica que trabalha 8 horas por dia. No entanto, ele só conhece o valor por hora do projeto. Ajude a estimar o valor diário a partir de um valor por hora.

dayRate(89);
// => 712

O valor diário não precisa ser arredondado nem convertido para uma precisão "fixa".

2. Calcule o número de dias de trabalho a partir de um orçamento fixo

Certo dia, um gerente de projeto convida o freelancer para trabalhar em um projeto com orçamento fixo. Com o orçamento fixo e o valor por hora do freelancer, ajude a calcular quantos dias de trabalho o orçamento cobre antes de acabar. O resultado deve ser arredondado para baixo para o número inteiro mais próximo.

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

3. Calcule o valor com desconto para projetos grandes

Muitas vezes, o freelancer é contratado por clientes para projetos que duram vários meses. Nesses casos, ele decide oferecer um desconto para cada mês completo, e os dias restantes são cobrados pelo valor diário. Seu excelente equilíbrio entre vida pessoal e trabalho faz com que você trabalhe apenas 22 dias em cada mês, então cada mês tem 22 dias faturáveis. Ajude a estimar o custo desse tipo de projeto, dado um valor por hora, o número de dias faturáveis que o projeto tem e uma taxa de desconto mensal. O desconto é sempre passado como um número, em que 42% vira 0.42. O resultado deve ser arredondado para cima para o número inteiro mais próximo.

priceWithMonthlyDiscount(89, 230, 0.42);
// => 97972
Editar via GitHub O link abre em uma nova janela ou aba
JavaScript Exercism

Tudo pronto para começar Tarifas de freelancer?

Crie sua conta no Exercism para aprender e dominar JavaScript com 37 conceitos159 exercícios e mentoria humana de verdade, tudo de graça.