1
resposta

[Projeto] Lista de exercícios 5 - Funções

Olá, Boa tarde,
Segue minha lista de exercicios sobre funções. Eu tentei tambem fazer de forma diferente e pesquisei algumas coisa que infelizmente esqueci e causou falha no meu codigo.

//LIsta de exercicios 5 

//1. Função de saudação
const saudacao = () => console.log('Olá, seja bem vindo(a)! ');
saudacao ();

//2. Função com parâmetros
const apresentarPessoa = ( nome ,idade ) => console.log('Olá, meu nome é '+ nome + ' e tenho '+ idade +' anos.');
apresentarPessoa ('Beatriz', 54);

//3. Cálculo de IMC
function calcularIMC (peso,altura,operacaoIMC) {
    return operacaoIMC (peso,altura);
}
function IMC (peso,altura) {
    return peso/ (altura*altura);
}
const resultadoIMC = calcularIMC (86.5,1.70,IMC);
console.log('O seu IMC é de '+ resultadoIMC.toFixed(2));

// 4. Verificar aprovação
function verificarAprovacao (nota) {
    if (nota>=7) {
        console.log('Aprovado!');
    } else {
        console.log('Reprovado!');
    }
}
verificarAprovacao (9.2)

//5. Número par ou ímpar (true e false)
// function ePar (numero) {
//     if (numero%2 == 0) {
//         console.log('O numero é par.');
//     }else {
//         console.log('É ímpar.');
//     }
// }
// const numero = 5;
// ePar (numero);

function ePar (numero){
    return numero%2 == 0;
}
console.log('O numero é par? '+ ePar(6));

//6. Função soma
function calcularSoma (num1,num2) {
    return num1+num2;
}
console.log('A soma dos valores é igual a '+ calcularSoma(3,5));

//7. Reutilizando código
function calcularTroco(valorPago,valorCompra) {
    return valorPago-valorCompra;
}
console.log('Troco: '+ calcularTroco(100.00,58.60).toFixed(2));

//8. Arrow function
const soma = (num3,num4) => num3+num4;
console.log('Soma: '+ soma(3,5));

//9. Callback simples
// function executarAcao(acao) {  // vc esta passando a funcao
//     acao(); //Executando a função
// }

// function mensagem() {
//     console.log('Executando ação!');
// }

// Reduzida:
const executarAcao = acao => acao(); 
const mensagem = () => console.log('Executando ação!');
executarAcao (mensagem);

//10. Desafio do quiz
function fazerPergunta (pergunta,respostaCorreta) {
    let respostaUsuario = 13;
   if (respostaUsuario === respostaCorreta) {
    console.log('Resposta correta!');
   } else {
    console.log('Resposta errada!');
   }
}
fazerPergunta('Quanto é 20-7? ', 13);

//Quiz interativo:
// const readline = require('readline');
// const fazerPergunta = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout,
// })
// fazerPergunta.question('Usamos a palavra "function" para criar uma função?\n(a) Sim\n(b) Não\n', (resposta) => {
//     resposta = resposta.toLowerCase();
//     if (resposta == 'a') {
//         console.log('Resposta certa!');
//     }else{
//         console.log('Resposta errada!');
//     }
//     fazerPergunta.close()
// })
1 resposta

Olá, Stephanie. Como vai?

Parabéns pela dedicação em resolver a lista de exercícios! É muito interessante observar como você explorou diferentes formas de declarar funções, alternando entre as declarações tradicionais (function) e as Arrow Functions (const minhaFuncao = () => {}). Essa versatilidade é fundamental no dia a dia de uma pessoa desenvolvedora JavaScript.

Para agregar ainda mais valor ao seu código e ajudá-la com as dúvidas que surgiram durante o processo, separei alguns pontos técnicos e boas práticas:

  • Template Literals: No exercício 2, você utilizou a concatenação de strings com o operador +. No JavaScript moderno, utilizamos muito os Template Literals, que são strings delimitadas por acentos graves ( ). Eles tornam o código mais legível, permitindo inserir variáveis diretamente com a sintaxe ${variavel}.

Exemplo refatorado:

const apresentarPessoa = (nome, idade) => console.log(`Olá, meu nome é ${nome} e tenho ${idade} anos.`);
  • Operador de Exponenciação: No cálculo do IMC, você utilizou altura * altura. Uma alternativa moderna é o operador de exponenciação **.
    A fórmula ficaria: peso / altura ** 2.

  • Entendendo Callbacks: No exercício 3, você criou uma estrutura de Callback (passar uma função como argumento para outra). Isso é excelente! O JavaScript utiliza muito esse padrão para lidar com processos que dependem de outras ações. Sua lógica de calcularIMC recebendo operacaoIMC é um ótimo exemplo de como tornar o código modular.

  • Refatoração do Par ou Ímpar: No exercício 5, você fez algo muito correto: retornou diretamente o resultado da expressão lógica numero % 2 == 0. Como essa expressão já resulta em true ou false, não precisamos de um if para retornar esses valores. Isso deixa o código mais "limpo".

  • Dica para o Quiz Interativo: Você comentou sobre o módulo readline. Ele é nativo do Node.js para interações via terminal. Se você estiver testando diretamente no navegador, pode utilizar o comando prompt() para receber dados e o alert() para exibir, o que simplifica o teste inicial de lógica:

const resposta = prompt('Usamos a palavra "function" para criar uma função? (a) Sim (b) Não');
if (resposta.toLowerCase() === 'a') {
    alert('Resposta certa!');
} else {
    alert('Resposta errada!');
}

Continue praticando essa alternância entre funções tradicionais e arrow functions, pois cada uma tem seu contexto de uso (especialmente quando você começar a estudar o conceito de this em objetos). Seu progresso está excelente!

Espero que possa ter lhe ajudado!