Elabore um programa que faça leitura de vários números inteiros, até que se digite um número negativo. O programa tem que retornar o maior e o menor número lido.
Passo 1
O enunciado pede um programa que leia vários números inteiros até que seja digitado um valor negativo (sentinela), e ao final imprima o maior e o menor número lido. Esse problema envolve uso de repetição condicionada (loop com sentinela) e comparação para atualizar valores máximos e mínimos.
Passo 2
Queremos usar um loop que continue indefinidamente até encontrar um número negativo. Para rastrear o maior e o menor número, vamos manter duas variáveis (por exemplo, “largest” e “smallest”) que serão atualizadas a cada leitura. É importante inicializá-las antes de começar o loop.
Passo 3
Inicialização: antes de entrar no loop, definimos “largest” e “smallest” como None (ou como o primeiro valor lido se preferir). Isso nos ajuda a tratar o primeiro número de forma genérica e depois só comparar normalmente nas próximas iterações.
Loop de leitura: usamos while True para repetir a leitura de um número inteiro. Logo após ler, verificamos se é negativo. Se for, usamos break para sair do loop.
Loop de leitura: usamos while True para repetir a leitura de um número inteiro. Logo após ler, verificamos se é negativo. Se for, usamos break para sair do loop.
Passo 4
Atualização de max/min: se o número lido não for negativo, comparamos com “largest”; se “largest” for None ou o número for maior, atribuímos “largest” = número. Fazemos o mesmo para “smallest”, verificando se “smallest” é None ou o número é menor.
Passo 5
Após sair do loop (quando o usuário digita um número negativo), imprimimos “largest” e “smallest” como resultado final.
Resposta
Programa em Python que lê inteiros até número negativo e mostra maior e menor
largest = None
smallest = None
smallest = None
while True:
n = int(input("Digite um número inteiro (negativo para sair): "))
if n < 0:
break
if largest is None or n > largest:
largest = n
if smallest is None or n < smallest:
smallest = n
n = int(input("Digite um número inteiro (negativo para sair): "))
if n < 0:
break
if largest is None or n > largest:
largest = n
if smallest is None or n < smallest:
smallest = n
print(f"Maior número lido: {largest}")
print(f"Menor número lido: {smallest}")
print(f"Menor número lido: {smallest}")