6-) Escrever um algoritmo que leia um conjunto de
informações (Número deverá ser definido pelo usuário) contendo, cada uma delas, a altura e o sexo de uma pessoa (código
, masculino código
, feminino), calcule e mostre o seguinte:
a) a maior e a menor altura da turma
b) a média da altura das mulheres
c) a média da altura da turma.
(Utilizar a estrutura WHILE).
a) a maior e a menor altura da turma
b) a média da altura das mulheres
c) a média da altura da turma.
(Utilizar a estrutura WHILE).
Passo 1
O enunciado pede que eu escreva um algoritmo que leia um conjunto de
informações (o valor de
é fornecido pelo usuário). Cada informação corresponde à altura e ao sexo de uma pessoa, onde o sexo é codificado como
para masculino e
para feminino. A partir desses dados o algoritmo deve calcular e mostrar:
a) a maior e a menor altura da turma;
b) a média da altura das mulheres;
c) a média da altura da turma.
Também é obrigatório usar a estrutura para ler/processar as
pessoas.
a) a maior e a menor altura da turma;
b) a média da altura das mulheres;
c) a média da altura da turma.
Também é obrigatório usar a estrutura
Informações dadas que vou usar:
- O número de pessoas a ler é
(definido pelo usuário). - Para cada pessoa leio a sua
e o (código = masculino, = feminino).
O que preciso produzir ao final:
- Valor da maior altura;
- Valor da menor altura;
- Média das alturas das mulheres (se existir pelo menos uma mulher);
- Média das alturas de toda a turma (se
).
Passo 2
Visão geral do método (sem resolver ainda): vou percorrer as
pessoas uma a uma, acumulando somas e contagens e atualizando o maior e o menor valor conforme aparecem alturas. Para percorrer repetidamente vou usar um contador
e uma estrutura
que executa enquanto
. A cada iteração leio
e
e atualizo as variáveis auxiliares que guardam soma, contagem, maior e menor. No final calculo as médias com as fórmulas apropriadas.
Explicação rápida das fórmulas que vou usar:
- Soma de alturas das mulheres:
. - Contagem de mulheres:
. - Média das mulheres (quando
): . - Soma total de alturas:
. - Média da turma (quando
): .
Passo 3
Definição e propósito das variáveis que vou usar (explicando cada uma):
-
: número total de pessoas que o usuário informou que vai inserir. -
: contador de iterações, será iniciado em e incrementado até . Serve para controlar o . -
: valor lido a cada iteração (um número real positivo). -
: código lido a cada iteração (inteiro: ou ). -
: armazena a maior altura encontrada até o momento. -
: armazena a menor altura encontrada até o momento. -
: soma acumulada de todas as alturas (para média da turma). -
: soma acumulada das alturas das mulheres (para média das mulheres). -
: contador de quantas mulheres foram lidas.
Observação sobre inicialização do
e
: uma técnica estável é tratar a primeira pessoa lida como caso especial — ao ler a primeira altura eu atribuo simultaneamente
. Isso evita problemas com “valores iniciais infinitos”. Vou usar essa técnica porque é simples e segura para fazer na prova.
Passo 4
Detalhamento passo a passo do que acontece em cada iteração do
(explicando a lógica com calma):
- Antes do loop, peço ao usuário o valor de
. Se não há dados a processar; nesse caso o algoritmo pode informar que não há pessoas e terminar. - Inicio
, , , . - Entro no
com condição . Em cada iteração: - Leio
e . - Se
(primeira pessoa), atribuo e (inicialização do máximo e mínimo). - Se
, comparo com e e atualizo: - Se
então faço . - Se
então faço .
- Se
- Acrescento
a : faço . - Se
(feminino), faço e . - Incremento
para passar à próxima pessoa.
- Leio
- Repito até
. Ao sair do loop tenho , , , e prontos.
Observações sobre validação de entrada:
- Se o sexo vier diferente de
ou o algoritmo pode pedir para o usuário digitar novamente. Para manter o algoritmo simples em prova, pode-se assumir entradas válidas; se preferir, incluir um pequeno laço que repete a leitura do até que seja ou .
Passo 5
Como calcular as médias e tratar casos especiais (explicando as fórmulas e as proteções contra divisão por zero):
- Média da turma (quando
): .
Explicação: soma de todas as alturas dividida pela quantidade total de pessoas. - Média das mulheres: somente calcula se
. Fórmula: .
Se(nenhuma mulher na amostra) não podemos dividir por zero; então o algoritmo deve exibir uma mensagem do tipo “Não há mulheres para calcular a média” ou definir a média como indefinida.
Importante lembrar na prova: sempre verificar se o denominador é diferente de zero antes de dividir — isso evita erro e é esperado em enunciados desse tipo.
Passo 6
Exemplo numérico pequeno (para fixar o raciocínio):
Suponha com entradas (altura, sexo):
Suponha
-
— mulher -
— homem -
— mulher
Processamento:
- Após 1ª pessoa:
;; ;; ;; . - Após 2ª pessoa:
, ;; ;; ;; . - Após 3ª pessoa:
, ;; ;; ;; .
Cálculos finais: -
. -
. - Maior =
, menor = .
Esse exemplo mostra passo a passo como as variáveis evoluem — na prova você faria as mesmas operações em escala maior.
Passo 7
Agora apresento o pseudocódigo completo e claro que implementa tudo usando
. Esse bloco é o que você pode copiar/implementar ou escrever na prova (está em português estruturado):
Leia o número de pessoas
Se então
\quad mostrar “Não há pessoas para processar.”
\quad terminar
Fim se
Se
\quad mostrar “Não há pessoas para processar.”
\quad terminar
Fim se
Enquanto
faça
\quad Ler
\quad Ler (assume-se
ou
)
\quad Se então
\quad\quad
\quad\quad
\quad Senão
\quad\quad Se então
\quad\quad Se então
\quad Fim Se
\quad
\quad Se então
\quad\quad
\quad\quad
\quad Fim Se
\quad
Fim Enquanto
\quad Ler
\quad Ler
\quad Se
\quad\quad
\quad\quad
\quad Senão
\quad\quad Se
\quad\quad Se
\quad Fim Se
\quad
\quad Se
\quad\quad
\quad\quad
\quad Fim Se
\quad
Fim Enquanto
Mostrar "Maior altura = ",
Mostrar "Menor altura = ",
Mostrar "Menor altura = ",
Se
então
\quad
\quad Mostrar "Média das mulheres = ",
Senão
\quad Mostrar “Não há mulheres para calcular a média.”
Fim Se
\quad
\quad Mostrar "Média das mulheres = ",
Senão
\quad Mostrar “Não há mulheres para calcular a média.”
Fim Se
Se
então
\quad
\quad Mostrar "Média da turma = ",
Fim Se
\quad
\quad Mostrar "Média da turma = ",
Fim Se
Resposta
Leia
Se então mostrar “Não há pessoas para processar.” e terminar
Se
Enquanto
faça
\quad Ler
\quad Ler
\quad Se então
\quad\quad
\quad\quad
\quad Senão
\quad\quad Se então
\quad\quad Se então
\quad Fim Se
\quad
\quad Se então
\quad\quad
\quad\quad
\quad Fim Se
\quad
Fim Enquanto
\quad Ler
\quad Ler
\quad Se
\quad\quad
\quad\quad
\quad Senão
\quad\quad Se
\quad\quad Se
\quad Fim Se
\quad
\quad Se
\quad\quad
\quad\quad
\quad Fim Se
\quad
Fim Enquanto
Mostrar "Maior altura = ",
Mostrar "Menor altura = ",
Mostrar "Menor altura = ",
Se
então
\quad
\quad Mostrar "Média das mulheres = ",
Senão
\quad Mostrar “Não há mulheres para calcular a média.”
Fim Se
\quad
\quad Mostrar "Média das mulheres = ",
Senão
\quad Mostrar “Não há mulheres para calcular a média.”
Fim Se
Mostrar "Média da turma = ",