1
resposta

[Dúvida] Desafio 2 - (Sugestão e Código)

Fiquei em Dúvida se na tabuada precisava de return. Demorei muito para fazer por causa do Fatorial. Não entrava na minha cabeça. E também acho que seria legal deixar algum código de modelo dos laços de repetições, eu não sabia como escrever a sintaxe dos laços porque nas aulas não foi apresentado isso. Seria importante colocar mais uma parte ali no curso sobre sobre isso e com modelos de cada um bem fáceis para ajudar na fixação da estrutura mesmo.

//FUNÇÃO 01 -- > Crie uma função que calcule o índice de massa corporal (IMC) de uma pessoa, a partir de sua altura, em metros,
// e peso, em quilogramas, que serão recebidos como parâmetro.
function CalculoDeImc(altura, peso)
{
let imc = peso/(altura*altura);
return imc;
}
console.log('IMC');
console.log(CalculoDeImc(1.80, 75));
// Função 02 --> Crie uma função que calcule o valor do fatorial de um número passado como parâmetro.

function Fatorial(numero)
{
        if(numero < 0)
        {
        return alert('Não existe fatorial de número negativo');
        }
        else if(numero == 0 || numero == 1)
        {
        return 1
        }
        Resultado = 1;
        for(let i=1; i<=numero; i++)
        {
        Resultado = Resultado * i;
        }
        return Resultado;
}
console.log('Função Fatorial');
console.log(Fatorial(5));
console.log(Fatorial(4));
console.log(Fatorial(3));
console.log(Fatorial(2));
console.log(Fatorial(1));
console.log(Fatorial(0));

// Função 03 --> Crie uma função que converte um valor em dólar, passado como parâmetro, e retorna o valor equivalente em reais.
//  Para isso, considere a cotação do dólar igual a R$4,80.
function MoneyExchange(dollar) {
        let real = dollar * 4.80
        return real;
}
console.log('Função Dollar');
console.log(MoneyExchange(17));
// Função 04 --> Crie uma função que mostre na tela a área e o perímetro de uma sala retangular,
// utilizando altura e largura que serão dadas como parâmetro.
function MostrarAreaEPerimetro(altura, largura)
{
        let areadoretangulo = altura * largura;
        let somalados = altura + altura + largura + largura;
        return console.log(`Área do Retângulo : ${areadoretangulo}`), console.log(`Perímetro do Retângulo: ${somalados}`);
}
console.log(MostrarAreaEPerimetro(2, 1.75));

// Função 05 --> Crie uma função que mostre na tela a área e o perímetro de uma sala circular,
//  utilizando seu raio que será fornecido como parâmetro. Considere Pi = 3,14.
function MostrarAreaCircular(raio)
{
        const pi = 3.14
        let areadocirculo = pi * (raio*raio);
        let perimetrocirculo = 2*pi*raio;
        return console.log(`Área do Círculo: ${areadocirculo}`), console.log(`Perímetro do Círculo: ${perimetrocirculo}`);
}
console.log(MostrarAreaCircular(2, 1.75));

// Função 06 --> Crie uma função que mostre na tela a tabuada de um número dado como parâmetro.
function Tabuadade(numero)
{
        for(let i = 0; i <= 10; i++)
        {
        let resultado = numero * i;
        console.log(`${numero} X ${i} = ${resultado}`);
        }
}
console.log(Tabuadade(1));
console.log(Tabuadade(2));
console.log(Tabuadade(3));
console.log(Tabuadade(4));
console.log(Tabuadade(5));
console.log(Tabuadade(6));
console.log(Tabuadade(7));
console.log(Tabuadade(8));
console.log(Tabuadade(9));
console.log(Tabuadade(10));
1 resposta

Oi, Geovani!

Parabéns por ter persistido e finalizado os desafios. O exercício do Fatorial é realmente complexo para quem está começando, pois exige uma lógica acumulativa (guardar o resultado anterior para multiplicar pelo próximo). É perfeitamente normal sentir dificuldade no início.

Sobre sua dúvida da tabuada: não, ela não precisa de return.

Como o objetivo dessa função é apenas mostrar os dados na tela linha por linha, o console.log dentro do laço de repetição (for) é suficiente.

Note um detalhe importante no seu código: ao fazer console.log(Tabuadade(1)), o JavaScript executa sua função (que imprime a tabuada) e depois tenta imprimir o retorno dela. Como ela não tem return, aparecerá um undefined no final. Para corrigir, basta chamar a função diretamente, assim: Tabuadade(1);.

Atendendo ao seu pedido, aqui está um modelo simples da estrutura do laço for para você guardar:

// Estrutura:
// for (inicialização; condição; incremento)
// 1. inicialização: variável de controle (ex: let i = 0)
// 2. condição: enquanto for verdadeira, o loop continua (ex: i < 5)
// 3. incremento: o que acontece ao fim de cada volta (ex: i++ aumenta 1)

for (let i = 0; i < 5; i++) {
    console.log(`O valor de i é: ${i}`);
}

Uma dica extra sobre as Funções 4 e 5: evite usar return console.log(...). O ideal é que a função apenas retorne o valor (o cálculo) ou apenas mostre a mensagem. Misturar os dois pode gerar confusão futura.

Continue praticando, você está no caminho certo!

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