Faça um programa que leia números inteiros usando while. O programa deve continuar lendo valores até que o usuário digite 0 .
Ao final, mostre:
  • a quantidade de números digitados, sem contar o zero;
  • a soma dos números positivos;
  • a quantidade de números negativos;
  • a quantidade de números pares;

Passo 1

O enunciado pede um programa que leia números inteiros repetidamente até que o usuário digite 0. Ao terminar a leitura (quando for digitado 0), o programa deve mostrar quatro valores:
  • a quantidade de números digitados, sem contar o 0;
  • a soma dos números positivos;
  • a quantidade de números negativos;
  • a quantidade de números pares.
Informações relevantes dadas:
  • A entrada é uma sequência de números inteiros lidos um a um.
  • O laço deve parar quando for digitado o valor 0.
  • O valor 0 não deve ser contado entre os números digitados para o total.
  • Os resultados solicitados são contadores e uma soma simples.

Passo 2

Ideia geral (visão de alto nível, sem codificar ainda):
  • Manter variáveis que acumulem os resultados enquanto lemos cada número.
  • Repetir a leitura usando um laço do tipo while até aparecer o 0.
  • Para cada número lido (diferente de 0):
    • aumentar o contador total de números;
    • se for positivo, adicionar à soma dos positivos;
    • se for negativo, aumentar o contador de negativos;
    • se for par, aumentar o contador de pares.
  • Ao sair do laço, exibir os quatro valores.

Passo 3

Quais variáveis vamos usar e como inicializá-las (explicando bem o papel de cada uma):
  • \text{count}: contador da quantidade de números lidos (exceto o 0). Inicializar com \text{count}=0.
  • \text{sum\_pos}: soma dos números positivos. Inicializar com \text{sum\_pos}=0.
  • \text{count\_neg}: contador de números negativos. Inicializar com \text{count\_neg}=0.
  • \text{count\_even}: contador de números pares. Inicializar com \text{count\_even}=0.
Por que inicializar com 0? Porque nenhum número foi processado antes de começar a leitura, então os acumuladores e contadores começam em 0.

Passo 4

Estratégia de leitura com while (duas opções e escolha):
  • Opção A: ler o primeiro número antes do laço e usar while numero != 0: (loop com condição testada no topo). Essa é simples e evita verificar dentro do laço se é o primeiro.
  • Opção B: usar while True: e break quando o número for 0.
    Vou usar a Opção A porque é direta para este problema e fácil de seguir na prova: lê-se uma vez antes do while e depois atualiza-se dentro do while ao final de cada iteração.

Passo 5

O que fazer a cada número lido (detalhando cada passo interno do laço):
Suponha que a variável que contém o número lido seja \text{n} e que já verificamos que \text{n}\neq0. Então:
  1. Atualizar o contador total: \text{count} \leftarrow \text{count} + 1.
  2. Se \text{n}>0, somar em \text{sum\_pos}: \text{sum\_pos} \leftarrow \text{sum\_pos} + \text{n}.
  3. Se \text{n}<0, incrementar o contador de negativos: \text{count\_neg} \leftarrow \text{count\_neg} + 1.
  4. Testar se \text{n} é par. Matemática do par: um inteiro \text{n} é par quando \text{n} \bmod 2 = 0.Em muitas linguagens de programação (por exemplo Python), a operação de resto é feita com n % 2. Se \text{n} for par, faça: \text{count\_even} \leftarrow \text{count\_even} + 1.
Observação importante sobre o 0: não processamos o 0 (não aumenta nenhum contador nem entra na soma), porque a leitura para quando \text{n}=0.

Passo 6

Exemplo passo a passo com uma sequência curta (para fixar a ideia):
Suponha a sequência de entradas: 5,\\\ -2,\\\ 4,\\\ -3,\\\ 0.
  • Leitura 5 ( 5\neq0):
    • \text{count}=1
    • \text{sum\_pos}=5
    • \text{count\_neg}=0
    • 5\bmod2=1 então \text{count\_even}=0
  • Leitura -2 ( -2\neq0):
    • \text{count}=2
    • \text{sum\_pos}=5 (não muda porque -2 não é positivo)
    • \text{count\_neg}=1
    • -2\bmod2=0 então \text{count\_even}=1
  • Leitura 4 ( 4\neq0):
    • \text{count}=3
    • \text{sum\_pos}=5+4=9
    • \text{count\_neg}=1
    • 4\bmod2=0 então \text{count\_even}=2
  • Leitura -3 ( -3\neq0):
    • \text{count}=4
    • \text{sum\_pos}=9
    • \text{count\_neg}=2
    • -3\bmod2=1 então \text{count\_even}=2
  • Leitura 0: interrompe o laço. Resultados finais: \text{count}=4, \text{sum\_pos}=9, \text{count\_neg}=2, \text{count\_even}=2.

Passo 7

Casos de borda que podem aparecer e observações:
  • Se o primeiro número lido for 0, o laço nunca entra e todos os resultados devem ser 0.
  • Números pares negativos (ex.: -4) são pares e devem ser contados em \text{count\_even}.
  • O 0 em si não é contado como par nem positivo nem negativo, porque ele serve apenas para terminar a leitura.
  • Se precisar de formato específico de saída (por exemplo mensagens explicativas), ajustar as instruções print conforme exigido pela prova/avaliador.

Passo 8

Resumo do algoritmo em pseudocódigo (claro e direto):
\begin{aligned} &\text{count} \leftarrow 0\\\ &\text{sum\_pos} \leftarrow 0\\\ &\text{count\_neg} \leftarrow 0\\\ &\text{count\_even} \leftarrow 0\\\ &\text{ler } \text{n}\\\ &\text{enquanto } \text{n} \neq 0 \text{ faça}\\\ &\qquad \text{count} \leftarrow \text{count} + 1\\\ &\qquad \text{se } \text{n} > 0 \text{ então } \text{sum\_pos} \leftarrow \text{sum\_pos} + \text{n}\\\ &\qquad \text{se } \text{n} < 0 \text{ então } \text{count\_neg} \leftarrow \text{count\_neg} + 1\\\ &\qquad \text{se } \text{n} \bmod 2 = 0 \text{ então } \text{count\_even} \leftarrow \text{count\_even} + 1\\\ &\qquad \text{ler } \text{n}\\\ &\text{fim enquanto}\\\ &\text{imprimir os quatro valores} \end{aligned}çããã

Passo 9

Dica final para a prova e para implementar: escreva o programa com variáveis de nomes claros (por exemplo count, sum_pos, count_neg, count_even) e teste mentalmente ou com uma sequência curta como a do Passo 6 para garantir que a lógica está certa. Mantenha o laço while simples (condição numero != 0) para evitar confundir validação e leitura.

Resposta

# Programa em Python que lê inteiros com while até o usuário digitar 0
# Ao final exibe:
# - quantidade de números digitados (sem contar o zero)
# - soma dos números positivos
# - quantidade de números negativos
# - quantidade de números pares

count = 0
sum_pos = 0
count_neg = 0
count_even = 0

n = int(input("Digite um número (0 para parar): "))

while n != 0:
    count += 1

    if n > 0:
        sum_pos += n
    elif n < 0:
        count_neg += 1

    if n % 2 == 0:
        count_even += 1

    n = int(input("Digite um número (0 para parar): "))

print(count)
print(sum_pos)
print(count_neg)
print(count_even)

Exercícios relacionados