1
resposta

[Projeto] Logica de programação

//1. Criar uma função que exibe "Olá, mundo!" no console. function World(){ console.log('olá mundo!') }

//2. Criar uma função que recebe um nome como parâmetro e exibe "Olá, [nome]!" no console. function meuNome(nome){; console.log(olá ${nome});

} meuNome("gabriel");

//3. Criar uma função que recebe um número como parâmetro e retorna o dobro desse número. function dobroNumero(numero) { numeroDobro = numero * 2; console.log(o dobro de ${numero} é igual á ${numeroDobro}); } dobroNumero(10);

//4. Criar uma função que recebe três números como parâmetros e retorna a média deles. function calcularMedia(nota1, nota2, nota3) { media = (nota1 + nota2 + nota3) / 3; if(media >= 7){ console.log(${media} aprovado); }else if(media >= 5){ console.log(${media} final); } else { console.log(${media} reprovado) } } calcularMedia(4, 7, 10);

//5.Criar uma função que recebe dois números como parâmetros e retorna o maior deles. function maiorNumero(numero1, numero2){ if(numero1 > numero2){ console.log(${numero1} é maior que ${numero2}); }else { console.log (${numero2} é maior que ${numero1}); } maiorNumero(12, 22); }

//6. Criar uma função que recebe um número como parâmetro e retorna o resultado da multiplicação desse número por ele mesmo

function multiplicacaoNumber(numer){ return numer * numer; }

let multiplicador = multiplicacaoNumber(8); console.log(multiplicador);

** percebi que em alguns casos tem se quando colocamos o parametro dentro da function ele nos returna um undifined porem ao colocarmos dentro da função nos retorna corretamente porém da um loop infinito se alguém puder dar uma explicação do por que e se tem alguma forma de mudar obgg**

1 resposta

Olá João, tudo bem?

Primeiramente, parabéns pelas funções que você criou! Vou te ajudar a entender o problema com o loop infinito e o retorno undefined.

Vamos analisar a função maiorNumero:

function maiorNumero(numero1, numero2){
    if(numero1 > numero2){
        console.log(`${numero1} é maior que ${numero2}`);
    } else {
        console.log(`${numero2} é maior que ${numero1}`);
    }
   maiorNumero(12, 22); 
}

O problema aqui está na chamada recursiva da função maiorNumero dentro dela mesma. Quando você chama maiorNumero(12, 22) dentro da função maiorNumero, isso faz com que a função continue se chamando indefinidamente, criando um loop infinito.

Para corrigir isso, basta remover a chamada recursiva dentro da função:

function maiorNumero(numero1, numero2){
    if(numero1 > numero2){
        console.log(`${numero1} é maior que ${numero2}`);
    } else {
        console.log(`${numero2} é maior que ${numero1}`);
    }
}

maiorNumero(12, 22); 

Agora, a função maiorNumero será chamada apenas uma vez e exibirá o resultado corretamente.

Quanto ao retorno undefined, isso pode acontecer se a função não tiver uma instrução return ou se a instrução return não for alcançada. No caso das suas funções, todas estão retornando valores corretamente, exceto a maiorNumero, que não retorna nada explicitamente, apenas imprime no console. Se você quiser que a função retorne o maior número, pode fazer assim:

function maiorNumero(numero1, numero2){
    if(numero1 > numero2){
        return numero1;
    } else {
        return numero2;
    }
}

let maior = maiorNumero(12, 22);
console.log(`${maior} é o maior número`);

Dessa forma, a função maiorNumero retorna o maior número, e você pode usá-lo como quiser.

No mais, bons estudos!