Elaborar um programa Python para ler 10 números e imprimir a soma de todos os números, o maior e o menor desses números.
Passo 1
O enunciado pede: ler
números e imprimir três coisas: a soma de todos os números, o maior dentre eles e o menor dentre eles.
Informações dadas (resumidas):
Informações dadas (resumidas):
- Devemos ler exatamente
valores (um por vez). - Resultado esperado: soma, maior e menor desses
valores.
Passo 2
Decisão do método (simples e seguro para prova): vamos ler os números numa sequência, mantendo três variáveis enquanto lemos: uma para a soma (vou chamar de
), uma para o maior (vou chamar de
) e outra para o menor (vou chamar de
). A cada novo número lido
fazemos:
; se
atualizamos
; se
atualizamos
. Isso usa um único laço e memória constante, é rápido e fácil de fazer numa prova.
Passo 3
Por que inicializar com o primeiro valor lido?
- Se inicializarmos
com um número muito pequeno arbitrário (ex.: ) e com um número muito grande arbitrário (ex.: ), corremos risco de erro se os números do enunciado tiverem magnitudes maiores ou se houver sinais inesperados. - A técnica mais robusta é: ler o primeiro número
e definir , , . Em seguida, para os números aplicamos as atualizações. Assim garantimos que e começam com um valor real do conjunto lido.
Passo 4
Detalhe do laço e contagem (atenção ao índice):
- Vamos iterar exatamente
leituras. Uma forma clara é: ler primeiro para inicializar; depois fazer um laço que repete vezes para ler os a . Em notação de programação isso seria algo como: para de até leia e atualize . - Cuidado comum em provas: não confundir off-by-one — se usar um laço do tipo “for i in range(10)” em Python, lembre-se que ele gera
iterações (índices a ), então adapte a inicialização conforme a sua escolha.
Passo 5
Sobre o tipo dos números: melhor ler como número real (em Python usar conversão para float) para aceitar tanto inteiros quanto decimais. Se a prova exigir só inteiros, int também serve, mas float é mais geral e não atrapalha se vier inteiro.
Passo 6
Regras de atualização (explicando cada operação):
- Soma: se já temos
com a soma parcial, ao ler um novo fazemos . Isso acumula os valores. Exemplo: se já li e , . Ao ler , faço . - Maior: condição
. Se for verdadeira, fazer . Exemplo: se e leio , atualizo para . - Menor: condição
. Se for verdadeira, fazer . Exemplo: se e leio , atualizo para .
Passo 7
Como isso fica em passos práticos (pseudocódigo em alto nível, sem repetir o programa final):
- Ler
. Fazer , , . - Repetir
vezes: ler ; ; se então ; se então . - Ao final, imprimir
, e .
Esse pseudocódigo é exatamente o raciocínio que você deve aplicar na prova — é curto, robusto e evita casos-limite.
Passo 8
Exemplo numérico pequeno para fixar (apenas para entender a lógica): suponha que os
números sejam
. Seguindo o método:
- Após o primeiro número
: , , . - Lendo
: , , . - Lendo
: , , . - … e assim por diante até o décimo número. No final teríamos
, , . (Isso é apenas para ver a ideia; os cálculos parciais mostram como , e mudam.)
Passo 9
Dicas finais para a prova:
- Verifique se o enunciado pede números inteiros ou reais; se não especificar, usar reais (float) é seguro.
- Não imprima mensagens extras que possam atrapalhar correção automática (se for o caso). Se for prova manuscrita, escreva claramente os passos acima e o fluxo do laço.
- Teste mentalmente com casos extremos: todos números iguais; todos negativos; presença de zeros; mistura de inteiros e decimais. Se seu algoritmo usa a inicialização com o primeiro valor, todos esses casos funcionam.
Resposta
# Programa para ler 10 números e imprimir soma, maior e menor
# Ler o primeiro número para inicializar
primeiro = float(input())
S = primeiro
maior = primeiro
menor = primeiro
# Ler os 9 números restantes
for _ in range(9):
x = float(input())
S += x
if x > maior:
maior = x
if x < menor:
menor = x
# Imprimir resultados
print(f"Soma: {S}")
print(f"Maior: {maior}")
print(f"Menor: {menor}")