diff --git a/challenge-01/README.md b/challenge-01/README.md index ea3305e40b..6b624eb64b 100644 --- a/challenge-01/README.md +++ b/challenge-01/README.md @@ -1,42 +1,42 @@ -# Desafio Semana #1 - -```js // Declarar uma variável chamada `myvar`, sem valor. -? + +let myvar; // Após declarada, atribua o valor 10 à variável `myvar`. -? +myvar = 10; // Declare uma nova variável chamada `soma`, e adicione uma instrução somando os valores 15 e 8. -? +let soma = 15 + 8; // Atribua à variável `soma` todo o valor dela, somando 1, usando o operador de soma abreviado. -? +soma+= 1; // Atribua à variável `soma` todo o valor dela, multiplicando por 3, usando o operador de multiplicação abreviado. -? +soma *= 3; // Qual é o valor da variável `soma` até aqui? -? +72 // Declare uma variável chamada `souninja`, atribuindo à ela o valor booleano que representa `verdadeiro`. -? +let souninja = true; // Declare uma variável chamada `comida` que recebe um array com os valores 'arroz', 'feijão' e 'ovo'. -? +let comida = ['arroz', 'feijão', 'ovo']; // Digite a instrução que imprime o valor de 'feijao', que está na variável `comida`. -? +comida[1] // Digite o código que verifica se a variável `soma' é igual a variável `myvar` (testando também o tipo). -? +soma === myvar // Digite o código que verifica se a variável `myvar` é menor ou igual à variável `soma`. -? +myvar <= soma // Crie uma função chamada `divisao` que receba como parâmetro dois números, e retorne o resultado da divisão entre eles. -? +function divisao (x, y) { +return x / y +} // Invoque a função criada acima, passando os parâmetros 10 e 2. -? -``` \ No newline at end of file +divisao (10,2) +``` diff --git a/challenge-02/README.md b/challenge-02/README.md index 2a4be6970b..2356aa76ed 100644 --- a/challenge-02/README.md +++ b/challenge-02/README.md @@ -4,29 +4,48 @@ Nesse exercício, você está livre para escolher os nomes para suas variáveis ```js // Crie uma função que receba dois argumentos e retorne a soma dos mesmos. -? +function somaParametro(x, y) { + return x + y; +} // Declare uma variável que receba a invocação da função criada acima, passando dois números quaisquer por argumento, e somando `5` ao resultado retornado da função. -? +const recebeFunction = somaParametro(5, 5) + 5; // Qual o valor atualizado dessa variável? -? +15; // Declare uma nova variável, sem valor. -? +var semValor; /* Crie uma função que adicione um valor à variável criada acima, e retorne a string: O valor da variável agora é VALOR. Onde VALOR é o novo valor da variável. */ -? + +function addValorVar(valor) { + semValor = valor; + + return "o valor da variavel agora é:" + semValor; +} + +///////////////////////////////////////////////////////////////////////////////////////////////////////// +// correção: ele não pediu param, então deveria ficar: +function addValor() { + var valor = 25; + return "o valor da variavel agora é:" + valor; +} + +addValor(); // aqui estou chamando a função e quando chamo, ela atribui a var valor o numero 25 e retorna a mensagem. + +///////////////////////////////////////////////////////////////////////////////////////////////////////// // Invoque a função criada acima. -? +addValorVar(); // Qual o retorno da função? (Use comentários de bloco). -? +/* 'o valor da variavel agora éundefined' /* + /* Crie uma função com as seguintes características: @@ -35,19 +54,32 @@ Crie uma função com as seguintes características: Preencha todos os valores corretamente! 3. O retorno da função deve ser a multiplicação dos 3 argumentos, somando `2` ao resultado da multiplicação. */ -? + +function verificaParams(x, y, z) { + if (x === undefined || y === undefined || z === undefined) { + // quando não é passado nenhum valor para um var, ela é undefined. correto! > null é um valor + return "Preencha todos os valores corretamente!"; + } + + var multiplicaParams = x * y * z; + + return multiplicaParams + 2; +} // Invoque a função criada acima, passando só dois números como argumento. -? + +verificaParams(5, 5); // Qual o resultado da invocação acima? (Use comentários para mostrar o valor retornado). -? + +// 'Preencha todos os valores corretamente!' // Agora invoque novamente a função criada acima, mas passando todos os três argumentos necessários. -? +verificaParams(5, 5, 5); // Qual o resultado da invocação acima? (Use comentários para mostrar o valor retornado). -? + +// 127 /* Crie uma função com as seguintes características: @@ -58,8 +90,25 @@ Crie uma função com as seguintes características: 5. Se nenhum argumento for passado, retorne o valor booleano `false`. 6. E ainda, se nenhuma das condições acima forem atendidas, retorne `null`. */ -? + +function tresArgumentos(x, y, z) { + if (x && y && z) { + return (x + y) / z; + } else if (x && y) { + return x + y; + } else if (!x && !y && !z) { + return false; + } else if (x) { + return x; + } else { + return null; + } +} // Invoque a função acima utilizando todas as possibilidades (com nenhum argumento, com um, com dois e com três.) Coloque um comentário de linha ao lado da função com o resultado de cada invocação. -? -``` \ No newline at end of file + +tresArgumentos(); // false +tresArgumentos(5); // 5 +tresArgumentos(5, 10); // 15 +tresArgumentos(5, 10, 15); // 1 +``` diff --git a/challenge-03/README.md b/challenge-03/README.md index f7cd9a74e0..9252a6262b 100644 --- a/challenge-03/README.md +++ b/challenge-03/README.md @@ -2,7 +2,10 @@ ```js // Declarar uma variável qualquer, que receba um objeto vazio. -? + + var objVazio = {} + + // #corrreto /* Declarar uma variável `pessoa`, que receba suas informações pessoais. @@ -16,14 +19,20 @@ As propriedades e tipos de valores para cada propriedade desse objeto devem ser: - `andando` - Boolean - recebe "falso" por padrão - `caminhouQuantosMetros` - Number - recebe "zero" por padrão */ -? + + var pessoa = { nome: 'enzo', sobrenome: 'emiliano', sexo: 'masculino', idade: 29, altura: 1.66, peso: 85, andando: false, caminhouQuantosMetros: 0} + +// #correto /* Adicione um método ao objeto `pessoa` chamado `fazerAniversario`. O método deve alterar o valor da propriedade `idade` dessa pessoa, somando `1` a cada vez que for chamado. */ -? + + pessoa.fazerAniversario = function () {return pessoa.idade++} + + // #correto /* Adicione um método ao objeto `pessoa` chamado `andar`, que terá as seguintes @@ -35,103 +44,151 @@ valor dessa propriedade a quantidade passada por parâmetro; - Ele deverá modificar o valor da propriedade `andando` para o valor booleano que representa "verdadeiro"; */ -? + pessoa.andar = function (qntMetros) { + + pessoa.caminhouQuantosMetros = pessoa.caminhouQuantosMetros + qntMetros + + if(pessoa.caminhouQuantosMetros > 0) { + return pessoa.andando = true + } + + } + + + // #correto > MAS poderia também simplificar fazendo como a sugestão da correção: + /* + + pessoa.andar = function (qntMetros) { + + pessoa.caminhouQuantosMetros += qntMetros + + pessoa.andando = true + + } + + */ /* Adicione um método ao objeto `pessoa` chamado `parar`, que irá modificar o valor da propriedade `andando` para o valor booleano que representa "falso". */ -? + + pessoa.parar = function () {return pessoa.andando = false} /* Crie um método chamado `nomeCompleto`, que retorne a frase: - "Olá! Meu nome é [NOME] [SOBRENOME]!" */ -? + + pessoa.nomeCompleto = function () { + return `Olá, meu nome é ${pessoa.nome} ${pessoa.sobrenome}` + } + + // #correto /* Crie um método chamado `mostrarIdade`, que retorne a frase: - "Olá, eu tenho [IDADE] anos!" */ -? + pessoa.mostrarIdade = function () {return `Olá, eu tenho ${pessoa.idade} anos`} /* Crie um método chamado `mostrarPeso`, que retorne a frase: - "Eu peso [PESO]Kg." */ -? + + pessoa.mostrarPeso = function () {return `Eu peso ${pessoa.peso}kg`} /* Crie um método chamado `mostrarAltura` que retorne a frase: - "Minha altura é [ALTURA]m." */ -? + + pessoa.mostrarAltura = function () {return `Minha altura é ${pessoa.altura}m`} /* Agora vamos brincar um pouco com o objeto criado: Qual o nome completo da pessoa? (Use a instrução para responder e comentários inline ao lado da instrução para mostrar qual foi a resposta retornada) */ -? + + pessoa.nomeCompleto() // olá meu nome é enzo emiliano + /* Qual a idade da pessoa? (Use a instrução para responder e comentários inline ao lado da instrução para mostrar qual foi a resposta retornada) */ -? + + pessoa.idade // Olá, eu tenho 29 anos' /* Qual o peso da pessoa? (Use a instrução para responder e comentários inline ao lado da instrução para mostrar qual foi a resposta retornada) */ -? + + pessoa.peso // 'Eu peso 85kg' /* Qual a altura da pessoa? (Use a instrução para responder e comentários inline ao lado da instrução para mostrar qual foi a resposta retornada) */ -? + + pessoa.altura // 'Minha altura é 1.66m' /* Faça a `pessoa` fazer 3 aniversários. */ -? + + pessoa.fazerAniversario() + pessoa.fazerAniversario() + pessoa.fazerAniversario() + /* Quantos anos a `pessoa` tem agora? (Use a instrução para responder e comentários inline ao lado da instrução para mostrar qual foi a resposta retornada) */ -? + + pessoa.mostrarIdade() // 'Olá, eu tenho 32 anos' /* Agora, faça a `pessoa` caminhar alguns metros, invocando o método `andar` 3x, com metragens diferentes passadas por parâmetro. */ -? + + pessoa.andar(5) + pessoa.andar(10) + pessoa.andar(15) + /* A pessoa ainda está andando? (Use a instrução para responder e comentários inline ao lado da instrução para mostrar qual foi a resposta retornada) */ -? + + pessoa.andando // true /* Se a pessoa ainda está andando, faça-a parar. */ -? + + pessoa.parar() /* E agora: a pessoa ainda está andando? (Use uma instrução para responder e comentários inline ao lado da instrução para mostrar a resposta retornada) */ -? + + pessoa.andando // false /* Quantos metros a pessoa andou? (Use uma instrução para responder e comentários inline ao lado da instrução para mostrar a resposta retornada) */ -? + + pessoa.caminhouQuantosMetros // 30 /* Agora vamos deixar a brincadeira um pouco mais divertida! :D @@ -154,4 +211,49 @@ correta, de acordo com os dados inseridos no objeto. // Agora, apresente-se ;) ? -``` + +// 1ª tentativa +// pessoa.apresentacao = function () { + +// var femininoTxt = `Olá, eu sou a ${pessoa.nomeCompleto()}, tenho ${pessoa.idade} anos, ${pessoa.altura}, meu peso é ${pessoa.peso} e, só hoje, eu já caminhei ${pessoa.caminhouQuantosMetros} metros!` + +// var idadeUm = `Olá, eu sou o ${pessoa.nomeCompleto()}, tenho ${pessoa.idade} ano, ${pessoa.altura}, meu peso é ${pessoa.peso} e, só hoje, eu já caminhei ${pessoa.caminhouQuantosMetros} metros!` + +// var umMetro = `Olá, eu sou o ${pessoa.nomeCompleto()}, tenho ${pessoa.idade} ano, ${pessoa.altura}, meu peso é ${pessoa.peso} e, só hoje, eu já caminhei ${pessoa.caminhouQuantosMetros} metro!` + +// var outro = ` ${pessoa.nomeCompleto()}, tenho ${pessoa.idade} anos, ${pessoa.altura}, meu peso é ${pessoa.peso} e, só hoje, eu já caminhei ${pessoa.caminhouQuantosMetros} metros!` + +// if(pessoa.sexo === 'feminino') { +// return femininoTxt +// } else if (pessoa.idade === 1) { +// return idadeUm +// } else if (pessoa.caminhouQuantosMetros === 1) { +// return umMetro +// } else { return outro } +// } + +// melhor solução +pessoa.apresentacao = function () { + var sexo = 'o' + + if(pessoa.sexo === 'feminino') { + sexo = 'a' + } + + var idadeAnos = 'anos' + + if(pessoa.idade === 1) { + idadeAnos = 'ano'; + } + + + var qntMetro = 'metros' + + if(pessoa.caminhouQuantosMetros === 1) { + qntMetro = 'metro' + } + + + + return `Olá, eu sou ${sexo} ${pessoa.nome} ${pessoa.sobrenome}, tenho ${pessoa.idade} ${idadeAnos}, ${pessoa.altura}, meu peso é ${pessoa.peso} e, só hoje, eu já caminhei ${pessoa.caminhouQuantosMetros} ${qntMetro}!` +} \ No newline at end of file