Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Lista de Exercício resolvido de 1 a 3

Segue a forma como eu após pesquisar desenvolvi os exercícios:

console.log("=== Exercício 1 ===");
// Array com as letras para construir a escada
const degraus = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'];

// String que armazenará cada degrau
let escada = "";

// Para cada letra no array:
degraus.forEach((letra) => {
  escada += letra; // Adiciona a letra atual
  
  // Imprime o degrau alinhado à direita com espaços
  // padStart completa com espaços até ter o tamanho total do array
  console.log(escada.padStart(degraus.length, " "));
});

console.log("=== Exercício 2 ===");
function calcularLogaritimo(numeros) {
  return numeros.map (num => {
    if (num < 0) {
      console.warn(`Logarítmo não definido para ${num} o número deve ser > 0.`);
      return NaN; // retorna NaN para número inválido
    }
    const resultado = Math.log10(num); // calcula logarítmo na base 10
    console.log(`log10(${num}) = ${resultado.toFixed(0)}`);
    return resultado;
  });
}
  const valores = [1, 10, 100, 1000, 0.1, -5, 100000, 0.0001, -0.5];
  // executando a função
  const resultado = calcularLogaritimo(valores);
  console.log("\n Resultados Finais");
  console.log(resultado.join(" , "));

 /* console.log("=== Exercício 3 exemplo ===");
  const numeros = [10, 20, 30, 40, 50];
const numeroProcurado = 40;
let posicao = -1; // (-1) usado para iniciar antes do primeiro índice que é zero

for (let i = 0; i < numeros.length; i++) {
  if (numeros[i] === numeroProcurado) {
    posicao = i;
    break;
  }
}*/

console.log("=== Exercício 3 com readline ===");
// importa e inicializa a interface readline para interação do usuário no terminal
const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
// array com lista de carros disponíveis
const carros = ["Fusca", "Honda Civic", "Onix", "Ford Camaro", "Toyota", "Jeep Cherokee"];
//solicitação de entrada do usuários
readline.question("Digite o nome do carro que deseja procurar na lista:", (alvo) => {
  let indice = -1;
  
  console.log(`\nIniciando Busca por ${alvo} ...`);
  // loop de busca linear
  for (let i = 0; i < carros.length; i++) { // condição de execução
    if (carros[i].toLocaleLowerCase() === alvo.toLocaleLowerCase()) { // comparação  com letras minúscula
      indice = i;
      break; // interrompe o loop quando encontrar
    }
  }
// verifica os resultados com if
  if (indice !== -1) { // operador (indice !  -1) diferente de -1
// mostra os resultados da busca
    console.log(`O carro ${alvo} foi encontrado na posição ${indice} da lista`);
  } else {
    console.log(`O carro ${alvo} não foi encontrado na lista!`);
  }
  
  readline.close(); // fecha a interface para o recurso redline
  console.log(" *** Lista de carros disponíveis: ***");
  console.log(carros.join(" | "));

});
1 resposta
solução!

Oi, Paulo!

Muito bom ver que você resolveu os exercícios e ainda acrescentou comentários explicativos, isso deixa o código mais fácil de entender para qualquer pessoa que leia depois.

  • Exercício 1:

    • Boa aplicação do forEach e do padStart() para alinhar os degraus.
    • A lógica de concatenar as letras funciona bem e é simples de seguir.
  • Exercício 2:

    • Ótimo uso de map() para processar todo o array de números.
    • Tratamento de casos inválidos (num < 0) com console.warn() e retorno de NaN.
    • Impressão formatada com toFixed(0) para deixar a saída legível.
  • Exercício 3:

    • Implementou busca linear de forma correta.
    • Comparação com toLocaleLowerCase() garante que a busca seja case-insensitive.
    • Uso do readline torna o exercício interativo.

Continue firme nos estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!