Leia o nome e a idade de 10 pessoas e exiba o nome da pessoa mais nova.

Passo 1

O enunciado pede o seguinte: ler o nome e a idade de 10 pessoas e exibir o nome da pessoa mais nova.
Informações fornecidas e o que devemos entregar:
  • Receber 10 pares de dados: um nome (texto) e uma idade (número inteiro) para cada pessoa.
  • Apresentar somente o nome da pessoa cuja idade é a menor entre as 10.
  • Não foram dadas regras sobre empates; precisamos decidir um critério (por exemplo: manter a primeira ocorrência).

Passo 2

Vamos identificar claramente as variáveis que usaremos:
  • n = 10 é o número de pessoas a ler.
  • name será a variável que guarda o nome lido a cada iteração (tipo texto).
  • age será a variável que guarda a idade lida a cada iteração (tipo inteiro).
  • minAge vai guardar, até o momento, a menor idade encontrada (tipo inteiro).
  • minName vai guardar o nome da pessoa que tem minAge (tipo texto).
Explicação didática do raciocínio: ao percorrer as n entradas, a cada pessoa com idade age comparamos age com minAge. Se age < minAge, atualizamos minAge \leftarrow age e minName \leftarrow name. No fim do loop, minName é o nome da pessoa mais nova.

Passo 3

Por que inicializar minAge? Há duas formas comuns:
  1. Inicializar minAge com um valor muito grande (ex.: infinito) e atualizar a cada leitura.
  2. Ler a primeira pessoa fora do loop e usar sua idade para inicializar minAge e minName, e então iterar apenas pelas n-1 restantes.
A segunda forma é preferível porque evita escolher um “valor muito grande” arbitrário e funciona bem sem flags. Vou usar essa forma: leio a primeira pessoa para inicializar e depois faço um loop de n-1 iterações.

Passo 4

Tipos e validações (o que você pode fazer na prova):
  • O nome é uma string; pode ter espaços. Em Python, use input() e mantenha a string como veio.
  • A idade deve ser um inteiro não-negativo. Em prova, se for pedido, valide que age é inteiro e age >= 0. Aqui vou assumir que o enunciado fornece idades válidas, mas mostrarei como converter a entrada para inteiro.
  • Critério de empate: manter o primeiro nome encontrado com a menor idade (comportamento simples e aceitável).

Passo 5

Algoritmo passo a passo em pseudo-linguagem (para você entender e aplicar rápido na prova):
  1. Leia name e age da primeira pessoa. Faça minName \leftarrow name e minAge \leftarrow age.
  2. Para i variando de 2 até n (ou seja, faça mais n-1 leituras):
    a. Leia name e age da pessoa atual.
    b. Se age < minAge então faça minAge \leftarrow age e minName \leftarrow name.
  3. Ao final, exiba minName.
Observação rápida sobre comparar: comparar dois inteiros é uma operação direta; não use operações com ponto flutuante aqui — idades são inteiras.

Passo 6

Implementação em Python (código comentado e fácil de entender). Esse código lê 10 nomes/idades e imprime o nome da pessoa mais nova. Use este padrão na prova ou adapte para outra linguagem.
n = 10  # número de pessoas

# Leitura da primeira pessoa para inicializar minAge e minName
print("Pessoa 1:")
minName = input("  Nome: ").strip()
minAge = int(input("  Idade: "))

# Lê as próximas n-1 pessoas e atualiza o mínimo quando encontrar idade menor
for i in range(2, n + 1):
    print(f"Pessoa {i}:")
    name = input("  Nome: ").strip()
    age = int(input("  Idade: "))
    if age < minAge:
        minAge = age
        minName = name

# Resultado: nome da pessoa mais nova
print("Pessoa mais nova:", minName)
Explicações das linhas importantes:
  • minName = input(" Nome: ").strip() — lê o nome e remove espaços extras nas extremidades.
  • minAge = int(input(" Idade: ")) — lê a idade como string e converte para inteiro com int(). Se a entrada não for número, em prova você pode assumir entrada correta ou tratar exceção.
  • if age < minAge: — condição que mantém sempre a menor idade encontrada; em caso de empate (idade igual), não atualizamos, então mantemos a primeira ocorrência.

Passo 7

Exemplo rápido (para você visualizar): suponha as entradas (nome — idade)
  • Alice — 30
  • Bruno — 25
  • Carla — 25
  • Daniel — 40
  • … (total 10 pessoas)
Com o critério adotado (manter a primeira ocorrência), entre Bruno e Carla (ambos 25), o programa manterá Bruno como minName porque Bruno apareceu primeiro com a idade 25.

Passo 8

Variações e dicas de prova:
  • Se quiser listar todos os nomes que têm a menor idade (tratamento de empate mostrando todos), você manteria uma lista youngestList que é reinicializada quando encontrar uma idade menor e que adiciona nomes quando encontra a mesma idade igual a minAge. Posso mostrar isso se você quiser, mas costuma ser mais trabalho na prova — só faça se pedirem explicitamente.
  • Se a entrada vier em linhas no formato “Nome Idade” (mesma linha), adapte input().split() para separar os dois campos.
  • Teste mentalmente com casos extremos: todas idades iguais; idades em ordem decrescente; idades em ordem crescente.

Resposta

n = 10  # número de pessoas

# Leitura da primeira pessoa para inicializar minAge e minName
print("Pessoa 1:")
minName = input("  Nome: ").strip()
minAge = int(input("  Idade: "))

# Lê as próximas n-1 pessoas e atualiza o mínimo quando encontrar idade menor
for i in range(2, n + 1):
    print(f"Pessoa {i}:")
    name = input("  Nome: ").strip()
    age = int(input("  Idade: "))
    if age < minAge:
        minAge = age
        minName = name

# Resultado: nome da pessoa mais nova
print("Pessoa mais nova:", minName)

Exercícios relacionados