









Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Esse exercício e feito em js tudo feito
Tipologia: Exercícios
1 / 15
Esta página não é visível na pré-visualização
Não perca as partes importantes!










cumprimentar("Leonardo") // retornará "Olá, Leonardo!" cumprimentar("Maria") // retornará "Olá, Maria!"
function cumprimentar(nome) { const saudacao = "Olá" return [saudacao, nome].join(', ').concat("!") }
function cumprimentar(nome) { return "Olá, " + nome + "!" }
function cumprimentar(nome) { return Olá, ${nome}! }
converterIdadeEmAnosParaDias(25) // retornará 9125 converterIdadeEmAnosParaDias(70) // retornará 25550
function converterIdadeEmAnosParaDias(idadeEmAnos) { const diasDoAno = 365
return diasDoAno * idadeEmAnos }
calcularSalarioLiquido(180, 60) // retornará "Salário igual a R$ 7560"
function calcularSalarioLiquido(horasTrabalhadas, ganhoPorHora) { const salarioBruto = horasTrabalhadas * ganhoPorHora const salarioLiquido = salarioBruto - salarioBruto * 30/
return Salário igual a R$ ${salarioLiquido} }
receberNomeDoMes(1) // retornará "janeiro" receberNomeDoMes(4) // retornará "abril"
function receberNomeDoMes(numero) { switch(numero){ case 1: return "janeiro"; case 2: return "fevereiro"; case 3: return "março"; case 4: return "abril"; case 5: return "maio"; case 6: return "junho"; case 7: return "julho"; case 8: return "agosto"; case 9: return "setembro"; case 10: return "outubro"; case 11: return "novembro"; case 12: return "dezembro"; } }
function receberNomeDoMes(numero) { const mapeamento = ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro']
return mapeamento[--numero]; }
multiplicar(5, 5) // retornará 25 multiplicar(0, 7) // retornará 0
function multiplicar(numeroA, numeroB) { let resultado = 0
/* a otimização feita para diminuir a quantidade de chamadas recursivas pode ser realizada aqui para diminuir a quantidade de loops */ for(let i = 0; i < numeroB; i++) resultado += numeroA
return resultado }
function multiplicar(numero, multiplicador) { if (numero === 0 || multiplicador === 0) return 0
return multiplicador === 1? numero : numero + multiplicar(numero, multiplicador-1) }
function multiplicar(numeroA, numeroB) { if (numeroA === 0 || numeroB === 0) return 0
const maiorNumero = Math.max(numeroA, numeroB) const menorNumero = Math.min(numeroA, numeroB)
function multiplicarRecursivamente(numero, multiplicador) { return ( multiplicador === 1? numero : numero + multiplicarRecursivamente(numero, multiplicador-1) ) }
// nessa versão, garantimos que o multiplicador será será o menor número, portanto haverá o mínimo de chamadas recursivas return multiplicarRecursivamente(maiorNumero, menorNumero ) }
repetir("código", 2) // retornará ["código", "código"] repetir(7, 3) // retornará [7, 7, 7]
function repetir(item, quantidade) { let resultado = []
for (let i = 0; i < quantidade; i++) resultado.push(item)
return resultado }
function repetir(item, quantidade) { return Array(quantidade).fill(item) }
simboloMais(2) // retornará "++" simboloMais(4) // retornará "++++"
function simboloMais(quantidade) { let resultado = ''
for(let i = 0; i < quantidade; i++) resultado += '+'
return resultado }
function simboloMais(quantidade) { return Array(quantidade).fill('+').join('') }
function simboloMais(quantidade) { return "+".repeat(quantidade) }
receberPrimeiroEUltimoElemento([7,14,"olá"]) // retornará [7, "olá"] receberPrimeiroEUltimoElemento([-100, "aplicativo", 16]) // retornará [-100, 16]
function receberPrimeiroEUltimoElemento(elementos) { const indiceDoPrimeiroElemento = 0 const indiceDoUltimoElemento = elementos.length - 1 const primeiroElemento = elementos[indiceDoPrimeiroElemento] const ultimoElemento = elementos[indiceDoUltimoElemento]
return [primeiroElemento, ultimoElemento] }
function receberPrimeiroEUltimoElemento(elementos) { const primeiroElemento= elementos.shift() const ultimoElemento = elementos.pop()
return [primeiroElemento, ultimoElemento] }
for(let item of array) if(typeof item === "number") resultado.push(item)
return resultado }
function filtrarNumeros(array) { return array.filter(item => typeof item === "number") }
objetoParaArray({ nome: "Maria", profissao: "Desenvolvedora de software" }) // irá retornar [["nome", "Maria"], ["profissao", "Desenvolvedora de Software"]]
objetoParaArray({ codigo: 11111, preco: 12000 }) // irá retornar [["codigo", 11111], ["preco", 12000]]
function objetoParaArray(objeto) { const resultado = []
for (let chave in objeto) resultado.push([ chave , objeto[chave] ])
return resultado }
function objetoParaArray(objeto) { const chaves = Object.keys(objeto) const resultado = chaves.map( chave => [chave, objeto[chave]] )
return resultado }
function objetoParaArray(objeto) { return Object.entries(objeto) }
💡
receberSomenteOsParesDeIndicesPares([1, 2, 3, 4]) // retornará [] receberSomenteOsParesDeIndicesPares([10, 70, 22, 43]) // retornará [10, 22]
function receberSomenteOsParesDeIndicesPares(numeros) { let resultado = []
for(let i = 0; i < numeros.length; i += 2){ const numeroPar = numeros[i] % 2 === 0
if(numeroPar) resultado.push(numeros[i]) }
return resultado }
function receberSomenteOsParesDeIndicesPares(numeros) { return numeros.filter((numero, indice) => { const numeroPar = numero % 2 === 0 const indicePar = indice % 2 === 0
return numeroPar && indicePar }) }
checarAnoBissexto(2020) // retornará true checarAnoBissexto(2100) // retornará false, pois é múltiplo de 100 e não é múltiplo de 400
function checarAnoBissexto(ano) { const divisivelPorQuatro = ano % 4 == 0 const divisivelPorCem = ano % 100 == 0 const divisivelPorQuatrocentos = ano % 400 == 0
return (divisivelPorQuatro && !divisivelPorCem) || divisivelPorQuatrocentos }
// checa-se indiretamente, verificando se o mês de fevereiro do dado ano tem 29 dias function checarAnoBissexto(ano) { return new Date(ano, 1, 29).getDate() === 29; }
somarNumeros([10, 10, 10]) // retornará 30 somarNumeros([15, 15, 15, 15]) // retornará 60
💡
calcularMedia([0, 10]) // retornará 5 calcularMedia([1, 2, 3, 4, 5]) // retornará 3
function calcularMedia(numeros) { const quantidadeDeNumeros = numeros.length let somaTotal = 0
for(numero of numeros) { somaTotal += numero }
return somaTotal / quantidadeDeNumeros }
function calcularMedia(numeros) { const quantidadeDeNumeros = numeros.length const somaTotal = numeros.reduce((numeroA, numeroB) => numeroA + numeroB)
return somaTotal / quantidadeDeNumeros }
📕
areaDoTriangulo(10, 15) // retornará "75,00" areaDoTriangulo(7, 9) // retornará "31,50" areaDoTriangulo(9.25, 13.1) // retornará "60.59"
function areaDoTriangulo(base, altura) { const area = (base * altura) / 2
return area.toFixed(2) // irá arredondar para manter 2 casas decimais }
menorNumero([10, 5, 35, 65]) // retornará 5 menorNumero([5, -15, 50, 3]) // retornará -
function menorNumero(numeros) { let menor = numeros[0]
for (let i in numeros) if (numeros[i] < menor) menor = numeros[i]
return menor }
function menorNumero(numeros) { return numeros.reduce((anterior, atual) => anterior < atual? anterior : atual) }
function menorNumero(numeros) { return Math.min(...numeros); }
funcaoDaSorte(10) // retornará "Parabéns! O número sorteado foi o 10" funcaoDaSorte(5) // retornará "Que pena! O número sorteado foi o 3" funcaoDaSorte(5) // retornará "Que pena! O número sorteado foi o 1"
/*mais informações sobre gerar números aleatórios dentro de uma certa faixa https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random */ function funcaoDaSorte(numeroEscolhido) { const min = 1 const max = 10 const numeroAleatorio = Math.floor(Math.random() * (max - min + 1) + min)
return (numeroEscolhido === numeroAleatorio? Parabéns! O número sorteado foi o ${numeroAleatorio} : Que pena, o número sorteado foi o ${numeroAleatorio} ) }
📕
contarPalavras("Sou uma frase") // retornará 3 contarPalavras("Me divirto aprendendo a programar") // retornará 5
function contarPalavras(frase){ const palavras = frase.split(" ")
removerVogais("Cod3r") // retornará "Cd3r" removerVogais("Fundamentos") // retornará "Fndmnts"
function removerVogais(frase) { const vogais = ["a", "A", "e", "E", "i", "I", "o", "O", "u", "U"]
vogais.forEach( vogal => frase = frase.replace(vogal, '') )
return frase }
function removerVogais(frase) { return frase.replace(/[aeiou]/ig, '') }
inverter({ a: 1, b: 2, c: 3}) // retornará { 1: "a", 2: "b", 3: "c"}
function inverter(objeto) { const objetoInvertido = {}
Object.entries(objeto).forEach( parChaveValor => { const chave = 0, valor = 1
objetoInvertido[ parChaveValor[valor] ] = parChaveValor[chave] })
return objetoInvertido }
function inverter(objeto) { const paresDeChaveValorInvertidos = Object.entries(objeto) .map( parChaveValor => parChaveValor.reverse() )
return Object.fromEntries(paresDeChaveValorInvertidos) }
filtrarPorQuantidadeDeDigitos([38, 2, 365, 10, 125, 11], 2) // retornará [38, 10, 11] filtrarPorQuantidadeDeDigitos([5, 9, 1, 125, 11], 1) // retornará [5, 9, 1]
function filtrarPorQuantidadeDeDigitos(numeros, quantidadeDesejada) { let resultado = []
for(numero of numeros){ const quantidadeDeDigitos = String(numero).length
if(quantidadeDeDigitos === quantidadeDesejada) resultado.push(numero) }
return resultado }
function filtrarPorQuantidadeDeDigitos(numeros, quantidadeDesejada) { return numeros.filter(numero => { const quantidadeDeDigitos = String(numero).length
return quantidadeDeDigitos === quantidadeDesejada }) }
segundoMaior([12, 16, 1, 5]) // retornará 12 segundoMaior([8, 4, 5, 6]) // retornará 6
function segundoMaior(numeros) { let indiceDoMaior = 0 let segundoMaior
numeros.forEach( (numero, indice) => { if( numero > numeros[indiceDoMaior] ) indiceDoMaior = indice })
numeros.splice(indiceDoMaior, 1) segundoMaior = numeros[0]
numeros.forEach(numero => { if(numero > segundoMaior) segundoMaior = numero })
return segundoMaior }
function segundoMaior(numeros) { const maiorNumero = Math.max(...numeros) numeros = numeros.filter(numero => numero != maiorNumero) const segundoMaior = Math.max(...numeros)
return segundoMaior }
function segundoMaior(numeros) { const numerosOrdenados = numeros.sort((numeroA, numeroB) => numeroB - numeroA) const segundoMaior = numerosOrdenados[1]
return segundoMaior }