Faça um algoritmo que permita ao usuário informar a idade de quantas pessoas ele desejar. Após isso o algoritmo deve informar a soma das pessoas maiores de idade e a média de idade das pessoas maiores de idade informadas.

Passo 1

O enunciado pede que a gente faça um algoritmo que permita ao usuário informar a idade de quantas pessoas ele desejar e, ao final, informe:
  1. a soma das pessoas maiores de idade (isto é, o total de pessoas que são maiores de idade — vou entender “soma” aqui como a contagem/quantidade de pessoas com 18 anos ou mais);
  2. a média de idade das pessoas maiores de idade informadas.
Informações relevantes dadas (ou que vamos assumir para o problema):
  • O usuário pode informar “quantas pessoas desejar” — portanto precisamos de um mecanismo para ler várias idades até que o usuário decida parar.
  • A maioridade consideraremos como “idade maior ou igual a 18” (ou seja, a pessoa é maior de idade quando sua idade satisfaz \text{idade} \ge 18).
  • Devemos evitar divisão por zero ao calcular a média, ou seja, tratar o caso em que nenhuma pessoa maior de idade foi informada.
  • Não foi dado um formato obrigatório (linguagem). Vou apresentar um algoritmo claro e fácil de implementar (pseudocódigo e um exemplo em Python), e cuidar da validação básica de entradas.

Passo 2

Escolha do método para permitir entradas “até quando quiser”: vamos usar um laço com sentinela. Explico o que é isso de forma simples:
  • Sentinela é um valor especial que o usuário digita para dizer “já terminei” — por exemplo, -1.
  • Enquanto o usuário não digitar a sentinela, o programa continua lendo idades.
    Motivo: é simples de implementar na prova e não exige que o usuário diga antes quantas idades vai informar.
Variáveis que vamos usar (vou explicar cada uma):
  • idade: variável que guarda a idade lida a cada iteração.
  • contador: conta quantas pessoas maiores de idade foram informadas (é o que você pediu como “soma das pessoas maiores de idade”).
  • soma\_idades: soma das idades das pessoas maiores de idade (precisamos dela para calcular a média).
  • media: média das idades das pessoas maiores de idade (será calculada no fim por media = soma\_idades / contador, se contador > 0).
Inicialização:
  • Antes de começar o laço, devemos inicializar contador = 0 e soma\_idades = 0.
Critério para considerar maior de idade:
  • Se \text{idade} \ge 18 então a pessoa é maior de idade — incrementamos contador e somamos \text{idade} a soma\_idades.
Validação básica:
  • Idades negativas (exceto o sentinela) ou absurdas podem ser rejeitadas com uma mensagem e o programa pede a idade novamente.

Passo 3

Descrevendo o algoritmo passo a passo (a lógica dentro do laço), com explicação de cada passo:
  1. Peça ao usuário que informe uma idade ou o sentinela -1 para terminar. Armazene em idade.
  2. Se idade = -1, saia do laço (acabou).
  3. Senão, verifique se idade é um número válido (por exemplo, idade \ge 0 e idade \le 130). Se inválido, informe erro e volte ao passo 1.
  4. Se idade \ge 18, então:
    • faça contador \leftarrow contador + 1 (explicando: isto aumenta em uma unidade o número de adultos contados),
    • faça soma\_idades \leftarrow soma\_idades + idade (explicando: acumulamos a idade para depois calcular a média).
  5. Volte ao passo 1 (peça a próxima idade).
  6. Quando o laço terminar (usuário digitou -1), verifique:
    • se contador = 0, então não há pessoas maiores de idade informadas — informe isso ao usuário (e não calcule média).
    • se contador > 0, calcule media \leftarrow soma\_idades / contador. Explique a fórmula: média é a soma das idades dividida pela quantidade de pessoas consideradas.
    • Mostre ao usuário o valor de contador (quantas pessoas maiores de idade) e o valor de media. Se quiser, mostre também soma\_idades.
Observações sobre aritmética:
  • A divisão para média geralmente deve resultar em número real (por ex., 68 / 3 \approx 22{,}666). Em linguagens de programação, certifique-se de fazer divisão real (float) e não divisão inteira.
  • Exemplo concreto para fixar: entradas 20, 15, 30, 18, -1.
    • Pessoas maiores: 20, 30, 18 → contador = 3.
    • soma\_idades = 20 + 30 + 18 = 68.
    • media = 68 / 3 \approx 22{,}666.

Passo 4

Implementação detalhada em pseudocódigo (passo a passo) com explicações das construções:
  • Inicialize contador \leftarrow 0.
  • Inicialize soma\_idades \leftarrow 0.
  • Loop infinito:
    • Leia idade.
    • Se idade = -1 então pare o loop.
    • Se idade < 0 ou idade > 130 então mostrar “idade inválida” e continue (volte a pedir).
    • Se idade \ge 18 então faça:
      • contador \leftarrow contador + 1
      • soma\_idades \leftarrow soma\_idades + idade
  • Após o loop:
    • Se contador = 0 então mostrar “Nenhuma pessoa maior de idade informada.”
    • Senão calcular media \leftarrow soma\_idades / contador e mostrar contador e media.
Explicando comandos do pseudocódigo:
  • “Leia” significa solicitar ao usuário um valor e armazená-lo.
  • “Se … então … senão …” é a condicional que escolhe ações conforme a idade.
  • “Loop infinito” com saída pelo sentinela é uma forma prática de permitir entradas ilimitadas.

Passo 5

Exemplo de implementação em Python (prática, fácil de copiar e testar). Comentários curtos para garantir que você entenda cada linha:
  • O código abaixo segue exatamente a lógica explicada. Copie e rode num interpretador Python se quiser testar.

Resposta

# Algoritmo: contar pessoas maiores de idade e calcular média das idades dos maiores
contador = 0
soma_idades = 0

while True:
    entrada = input("Informe a idade (ou -1 para terminar): ")
    try:
        idade = int(entrada)
    except ValueError:
        print("Entrada inválida: digite um número inteiro para a idade.")
        continue

    if idade == -1:
        break

    if idade < 0 or idade > 130:
        print("Idade inválida. Digite um valor entre 0 e 130, ou -1 para terminar.")
        continue

    if idade >= 18:
        contador += 1
        soma_idades += idade

# Resultado
if contador == 0:
    print("Nenhuma pessoa maior de idade foi informada.")
else:
    media = soma_idades / contador
    print("Quantidade de pessoas maiores de idade:", contador)
    print("Média de idade das pessoas maiores de idade: {:.3f}".format(media))

Exercícios relacionados