Personalizar preferências de consentimento

Utilizamos cookies para ajudar você a navegar com eficiência e executar certas funções. Você encontrará informações detalhadas sobre todos os cookies sob cada categoria de consentimento abaixo.

Os cookies que são classificados com a marcação “Necessário” são armazenados em seu navegador, pois são essenciais para possibilitar o uso de funcionalidades básicas do site.... 

Sempre ativo

Os cookies necessários são cruciais para as funções básicas do site e o site não funcionará como pretendido sem eles. Esses cookies não armazenam nenhum dado pessoalmente identificável.

Bem, cookies para exibir.

Cookies funcionais ajudam a executar certas funcionalidades, como compartilhar o conteúdo do site em plataformas de mídia social, coletar feedbacks e outros recursos de terceiros.

Bem, cookies para exibir.

Cookies analíticos são usados para entender como os visitantes interagem com o site. Esses cookies ajudam a fornecer informações sobre métricas o número de visitantes, taxa de rejeição, fonte de tráfego, etc.

Bem, cookies para exibir.

Os cookies de desempenho são usados para entender e analisar os principais índices de desempenho do site, o que ajuda a oferecer uma melhor experiência do usuário para os visitantes.

Bem, cookies para exibir.

Os cookies de anúncios são usados para entregar aos visitantes anúncios personalizados com base nas páginas que visitaram antes e analisar a eficácia da campanha publicitária.

Bem, cookies para exibir.

Exercício 53 – Lógica de programação com JavaScript

Descrição do exercício

Faça um programa que leia a idade e o sexo de 5 pessoas, mostrando no final:

a) Quantos homens foram cadastrados
b) Quantas mulheres foram cadastradas
c) A média de idade do grupo
d) A média de idade dos homens
e) Quantas mulheres tem mais de 20 anos

Explicação de como funciona

Para você visualizar o exercício funcionando no seu navegador, peço que siga os seguintes passos:

1 – Crie uma pasta no Visual Studio Code, você pode chamá-la de “exercicio-numero-aqui”.

2 – Crie 3 arquivos dentro dessa pasta, um vai ser para o código HTML, CSS e outro para JavaScript. Os nomes que dei para os meus arquivos foram:

  • texto.html
  • estilo.css
  • codigo.js

3 – Depois de criar os 3 arquivos, basta copiar os códigos abaixo para ver funcionando no seu navegador.

Estrutura da página em HTML

<!DOCTYPE html>
<html lang="pt-br">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Exercício de logica de programação</title>
    <link rel="stylesheet" href="estilo.css">
</head>

<body>
    <section class="design-section">

        <h1>Analisador de idade e sexo</h1>

        <p>Cadastre 5 pessoas abaixo:</p>

        <p>Idade: <input type="number" name="idade" id="idade"> anos</p>

        <p>Digite o número:</p>

        <p>1 para "Sexo feminino" | 2 para "Sexo masculino"</p>


        <p>Sexo: <input type="number" name="sexo" id="sexo"></p>

        <button onclick="adicionar()">Adicionar</button>

        <br>

        <button onclick="analisar()">Analisar</button>

        <br>

        <button onclick="limpar()" class="btnLimpar">Limpar</button>

        <div class="resposta"></div>

    </section>

    <script src="./codigo.js"></script>

</body>

</html>

Estilização da página em CSS

* {
    box-sizing: border-box;
}

body {
    background: #F8F9FA;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
}

.design-section {
    width: 50%;
    border: 1px solid #d2d2d2;
    border-radius: 10px;
    padding: 20px;
    background-color: #ffffff;
    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

input[type="button"] {
    background: #F8F9FA;
    border-radius: 50px;
    border: 1px solid;
    padding: 10px;
    cursor: pointer;
}

input[type="number"] {
    background: #F8F9FA;
    border-radius: 50px;
    border: 1px solid;
    padding: 5px;
}

input[type="text"] {
    background: #F8F9FA;
    border-radius: 50px;
    border: 1px solid;
    padding: 5px;
}

button {
    background: #F8F9FA;
    border-radius: 50px;
    border: 1px solid;
    padding: 10px;
    cursor: pointer;
}

.btnLimpar {
    display: none;
}

Resolução do exercício em JavaScript

const inputIdade = document.getElementById('idade')

const inputSexo = document.getElementById('sexo')

// Atalho: permitir Enter para adicionar
inputSexo.addEventListener('keydown', function (event) {
    if (event.key === 'Enter') {
        adicionar()
    }
})

const btnLimpar = document.querySelector('button.btnLimpar')
const resposta = document.querySelector('div.resposta')

// Arrays para armazenar a idade e sexo
let listaIdades = []
let listaSexo = []


function adicionar() {
    let idade = Number(inputIdade.value)
    let sexo = Number(inputSexo.value)

    if (isNaN(idade) || isNaN(sexo) || idade <= 0) {
        alert('Insira números válidos.')
        inputIdade.value = ''
        inputIdade.focus()
        return
    }

    if (sexo <= 0 || sexo >= 3) {
        alert('Utilize: 1 - Sexo feminino | 2 - Sexo masculino')
        inputSexo.value = ''
        inputSexo.focus()
        return
    }

    if (listaIdades.length >= 5 || listaSexo.length >= 5) {
        alert('Você já adicionou 5 pessoas. Clique em "Analisar."')
        return
    }

    // O "push()" adiciona os valores digitados ao final dos arrays
    listaIdades.push(idade)
    listaSexo.push(sexo)

    resposta.innerHTML = `<p>Idade: ${listaIdades.join(' , ')}</p>
                            <p>Sexo: ${listaSexo.join(' , ')}</p>
    `

    inputIdade.value = ''
    inputSexo.value = ''
    inputIdade.focus()

}


function analisar() {
    if (listaIdades.length < 5 || listaSexo.length < 5) {
        alert('Primeiro adicione 5 pessoas para ver o resultado.')
        return
    }

    let somaIdadeGrupo = 0

    let quantidadeHomens = 0
    let somaIdadeHomens = 0

    let quantidadeMulheres = 0
    let mulheresMais20 = 0

    for (let contador = 0; contador < listaIdades.length; contador++) {
        somaIdadeGrupo = somaIdadeGrupo + listaIdades[contador]

        if (listaSexo[contador] === 1) {
            quantidadeMulheres++ // quantidadeMulheres = quantidadeMulheres + 1
            if (listaIdades[contador] > 20) {
                mulheresMais20 = mulheresMais20 + 1
            }
        }

        if (listaSexo[contador] === 2) {
            quantidadeHomens++ // quantidadeHomens = quantidadeHomens + 1
            somaIdadeHomens = somaIdadeHomens + listaIdades[contador]
        }

    }

    let mediaIdadeGrupo = (somaIdadeGrupo / listaIdades.length).toFixed(1)
    let mediaIdadeHomens = (somaIdadeHomens / quantidadeHomens).toFixed(1)


    resposta.innerHTML = `<p>Idade média do grupo: ${mediaIdadeGrupo}</p>
                        <p>Mulheres: ${quantidadeMulheres} | Mulheres com +20 anos: ${mulheresMais20}</p>
                        <p>Homens: ${quantidadeHomens} | Idade média dos homens: ${mediaIdadeHomens}</p>`

    // Mostra o botão "Limpar"
    btnLimpar.style.display = 'inline-block'

}


function limpar() {

    // Limpa o valores adicionados nos arrays    
    listaIdades.length = 0
    listaSexo.length = 0

    resposta.innerHTML = ''
    inputIdade.value = ''
    inputSexo.value = ''
    inputIdade.focus()

    // Esconde o botão "Limpar"
    btnLimpar.style.display = 'none'

}

Participe do Desafio de JavaScript

Este exercício faz parte do Desafio de JavaScript, um desafio composto por 100 exercícios para praticar lógica de programação com JavaScript.

Além disso, você poderá participar da nossa comunidade, tirando suas dúvidas, fazendo networking e aprendendo muito!

Caso tenha interesse em participar, basta clicar aqui neste link para saber mais detalhes!

Compartilhe este texto!