Nesse repositório você encontra os exercícios da segunda semana do treinamento dos fundamentos de programação
-
faça o clone do repositório
git clone git@github.com:cae07/exerciciosSemana2.git
ou via http
git clone https://github.com/cae07/exerciciosSemana2.git
-
Entre na pasta clonada e instale as dependencias
cd exerciciosSemana2
npm install
-
crie uma branch para trabalhar
git checkout -b nomeDaSuaBranch
- npm install => instala dependências do projeto;
- npm run test => roda os testes da aplicação;
- Siga as instruções desse repositório e divirta-se
git add .
git commit -m "descrição do commit"
git push -u origin nomeDaSuaBranch
Este método recebe um número como parâmetro e retorna true se a variável passada for um número válido, ou retorna false se a variável passada não for um número válido.
validateIsNumber(14);
// true
validateIsNumber('15');
// false
Este método recebe dois parâmetros:
- base => base do triângulo
- height => altura do triângulo
E retorna como resultado uma string da área do triângulo no seguinte formato:
"A área do triangulo de base = valorDaBase X altura = valorDaAltura é X."
Exemplo:
calculateTriangleArea(4, 5);
// "A área do triangulo de base = 4 X altura = 5 é 10."
Este método recebe um array de strings como parâmetro e retorna uma string no formato "primeiroItem, ultimoItem".
Exemplo:
concatString(['item', 'caixa', 'tela', 'joias'])
// 'item, joias'
Este método recebe 2 parâmetros de entrada
- wins => número de vitórias do time
- ties => número de empates do time;
E calcula os pontos desse time levando em consideração as seguintes condições
- cada vitória vale 3 pontos
- cada empate vale 1 ponto
o retorno deve ser uma string no seguinte formato: "O time recebeu x pontos nessa temporada."
Exemplo:
teamPoints(3, 4);
// "O time recebeu 13 pontos nessa temporada."
Este método recebe um array de numbers e retorna uma string quantas vezes o número com o maior valor se repete neste array no seguinte formatto:
- "O número x se repete x vezes nesse array." => se o número de repetições for maior que 1 vez
- "O número x se repete 1 vez nesse array." => se o número de repetições for igual a 1 vez
Exemplo:
highestNumber([1, 8, 3, 8, 4, 5, 7, 8])
// "O número 8 se repete 3 vezes nesse array."
- Se algum dos valores não for do tipo number, espera que o método dispare um erro com a mensagem:
Apenas tipos number são aceitos como parâmetro.
Exemplo:
highestNumber([1, 8, 3, "A", 4, 5, "7", 8])
// "Apenas tipos number são aceitos como parâmetro."
Este é um clássico, o método recebe um array de numbers e retorna um array com as seguintes condições:
- se o número for divisível apenas por 3 => retorna uma string com o valor "fizz";
- se o número for divisível apenas por 5 => retorna uma string com o valor "buzz";
- se o número for divisível por 5 e for divisível por 3 => retorna uma string com o valor "fizzbuzz";
- caso o número não seja divisível nem por 3 e nem por 5 => retorna uma string com o valor "bug";
Exemplo:
fizzBuzz([3, 5, 15])
// ['fizz', 'buzz', 'fizzbuzz'];
Os dois métodos recebem um parâmetro do tipo string. O primeiro método deve substituir todas as vogais minúsculas pelos seguintes valores:
- a => 1
- e => 2
- i => 3
- o => 4
- u => 5
ex:
encoder('Ola turma.')
// 'Ol1 t5rm1.'
E o segundo método retorna uma string codificada pelo primeiro método e retorna a mensagem decodificada.
Exemplo:
decoder('Ol1 t5rm1.')
// 'Ola turma.'
Esta função recebe dois parâmetros:
- language: string;
- name: string;
E retorna uma string com a saudação de acordo com o idioma e nome fornecidos, ex:
Neste exercício você tem um dataBase (vulgo objeto) disponível para poder retornar a saudação na lingua da pessoa inserida como parâmetro.
Exemplo:
welcome('english', 'Maria')
// 'Welcome Maria.'
- Se o idioma fornecido não existir no dataBase, deve-se então retornar um erro com a mensagem:
O idioma parametroLanguage não foi encontrado. Por favor tente novamente mais tarde.
Exemplo:
welcome('batata', 'Maria')
// 'O idioma batata não foi encontrado. Por favor tente novamente mais tarde.'
- Se passar um nome inválido por parâmetro, deve-se então retornar um erro com a mensagem:
O nome nomePassado não existe. Por favor insira um nome válido.
ps: Nomes inválidos são nomes que possuem números juntamente com os caracteres do nome
Exemplo:
welcome('german', 'P3dr0')
// 'O nome P3dr0 não existe. Por favor insira um nome válido.'
O objeto disponível é exatamente como esse abaixo.
const translator = {
english: 'Welcome',
czech: 'Vitejte',
danish: 'Velkomst',
dutch: 'Welkom',
estonian: 'Tere tulemast',
finnish: 'Tervetuloa',
flemish: 'Welgekomen',
french: 'Bienvenue',
german: 'Willkommen',
irish: 'Failte',
italian: 'Benvenuto',
latvian: 'Gaidits',
lithuanian: 'Laukiamas',
polish: 'Witamy',
spanish: 'Bienvenido',
swedish: 'Valkommen',
welsh: 'Croeso'
}
Esta função recebe um array com números e retorna o número de telefone formatado, deve respeitar as seguintes regras:
- O array não pode conter mais de 11 números;
- Todos os númeors devem possuir o valor entre 0 - 9;
- A string não pode conter 3 vezes o mesmo número;
No caso de cair em alguma dessas regras, o retorno deve ser o seguinte:
'Este número de telefone não existe.'
No que validar todas as regras o retorno deve ser uma string que respeite o seguinte formato:
(xx)xxxxx-xxxx
Onde cada x será substituido pelo número correspondente passado por parâmetro na função,
Exemplo:
phoneNumber('11985233214');
// (11)98523-3214
Esta função recebe dois parâmetros de entrada que são as medidas de uma parede:
- heigh => altura em centímetros
- width => largura em centímetros
E calcula a quantidade de tinta necessária para pintar toda a parede, levando em consideração as seguintes regras:
- 1 litro de tinta cobre 1,5m² de parede;
- Deverá ser calculado o material necessário para cobrir a parede sem falhas da lata de maior tamanho para a de menor tamanho;
- existe latas com os seguintes tamanhos (18 litros, 5 litros, 1 litro, 0,5 litro);
- Não pode haver falhas na pintura e nem excesso de desperdício,
Exemplo:
calculatePaint(450, 210);
// 'Você precisa de 1 lata de 5 litros, 1 lata de 1 litro e 1 lata de 0,5 litros para realizar esse trabalho.'
- Transforme todos os métodos desse repositório para arrowFunctions;
- Resolva todos os problemas de linter que existirem.
- Acesse o site codeWars para outros exercícios seguindo essa mesma linha
https://www.codewars.com/
Além de quebrar a cabeça tentando resolver o algoritmo, depois de conseguir você tem acesso ao código de outras pessoas e poderá ver outras maneiras de resolver a mesma coisa. APROVEITE!