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
pessoas e exibir o nome da pessoa mais nova.
Informações fornecidas e o que devemos entregar:
Informações fornecidas e o que devemos entregar:
- Receber
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
. - 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:
-
é o número de pessoas a ler. -
será a variável que guarda o nome lido a cada iteração (tipo texto). -
será a variável que guarda a idade lida a cada iteração (tipo inteiro). -
vai guardar, até o momento, a menor idade encontrada (tipo inteiro). -
vai guardar o nome da pessoa que tem (tipo texto).
Explicação didática do raciocínio: ao percorrer as
entradas, a cada pessoa com idade
comparamos
com
. Se
, atualizamos
e
. No fim do loop,
é o nome da pessoa mais nova.
Passo 3
Por que inicializar
? Há duas formas comuns:
- Inicializar
com um valor muito grande (ex.: infinito) e atualizar a cada leitura. - Ler a primeira pessoa fora do loop e usar sua idade para inicializar
e , e então iterar apenas pelas 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
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 eage >= 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):
- Leia
e da primeira pessoa. Faça e . - Para
variando de até (ou seja, faça mais leituras):
a. Leiae da pessoa atual.
b. Seentão faça e . - Ao final, exiba
.
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ê
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 comint(). 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 —
- Bruno —
- Carla —
- Daniel —
- … (total
pessoas)
Com o critério adotado (manter a primeira ocorrência), entre Bruno e Carla (ambos
), o programa manterá Bruno como
porque Bruno apareceu primeiro com a idade
.
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
que é reinicializada quando encontrar uma idade menor e que adiciona nomes quando encontra a mesma idade igual a . 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)