Desenvolva um programa que recebe números inteiros digitados pelo usuário e seja impresso na tela se o número é par ou ímpar. Seu programa deverá ir lendo os números e dizendo se o número é par ou ímpar até que um número negativo seja digitado pelo usuário. (Considere o número zero como sendo par)

Passo 1

O enunciado pede um programa que leia números inteiros fornecidos pelo usuário e, para cada número lido, imprima se ele é par ou ímpar. O programa deve continuar lendo números até que seja digitado um número negativo, momento em que o programa para. O enunciado também nos dá explicitamente que o número 0 deve ser considerado par.\n
Informações dadas:
  • Entradas: números inteiros fornecidos pelo usuário, um por vez.
  • Condição de parada: quando for digitado um número n tal que n<0.
  • Para cada número não-negativo lido (incluindo 0) devemos imprimir se ele é “par” ou “ímpar”.
  • Não imprimir classificação para o número negativo que provoca a parada (ou seja, ao ler um negativo paramos imediatamente).

Passo 2

O que significa “par” e “ímpar” (vamos entender a definição formal, que facilita na implementação):\n
  • Um inteiro n é par se existir um inteiro k tal que n = 2k.\n
  • Um inteiro n é ímpar se existir um inteiro k tal que n = 2k + 1.\n
Note que, pela definição, 0 é par porque 0 = 2\cdot 0.

Passo 3

Como testar isso na prática (em um programa)? Usamos a operação resto da divisão inteira por 2, chamada de “módulo”. Em notação matemática usamos n \bmod 2. Os fatos importantes são:\n
  • Se n \bmod 2 = 0 então n é par.\n
  • Se n \bmod 2 = 1 então n é ímpar.\n
Exemplos numéricos para fixar: 0 \bmod 2 = 0,\quad 1 \bmod 2 = 1,\quad 2 \bmod 2 = 0,\quad 3 \bmod 2 = 1.\n
Em muitas linguagens de programação (Python, C, Java, etc.) o operador que implementa isso é o símbolo \%. Então, na prática, testamos se \;n \% 2 == 0\; para saber se é par.

Passo 4

Algoritmo passo a passo que vamos implementar (descrição em linguagem natural para você seguir na prova):\n
  1. Ler um inteiro n do usuário.\n
  2. Se n<0, então terminar o programa (não imprimir nada para esse n).\n
  3. Caso contrário, calcular n \bmod 2.\n
  4. Se n \bmod 2 = 0, imprimir “par”. Senão, imprimir “ímpar”.\n
  5. Repetir desde o passo 1.\n
    Essa estrutura é um laço de repetição infinito que é interrompido pela condição n<0.

Passo 5

Pseudocódigo (curto e direto) para fixar a sintaxe mental antes do código real:\n
Ler n\n
Enquanto verdadeiro:\n
\quad Se n<0 então sair do laço\n
\quad Se n \bmod 2 = 0 então imprimir “par” senão imprimir “ímpar”\n
\quad Ler n\n
Isso corresponde exatamente ao algoritmo do passo anterior; a cada iteração você lê um novo inteiro e decide o que imprimir.

Passo 6

Exemplo prático (simulação) para ver o fluxo e não ficar com medo:\n
Suponha que o usuário digite a sequência: 4, 7, 0, -3\n
  • 4. Como 4 \bmod 2 = 0, imprime “par”.\n
  • 7. Como 7 \bmod 2 = 1, imprime “ímpar”.\n
  • 0. Como 0 \bmod 2 = 0, imprime “par”.\n
  • -3. Como -3<0, o programa para imediatamente e não imprime nada para -3.\n
    Resultado impresso (linha a linha):\n
    par\n
    ímpar\n
    par

Passo 7

Observações práticas e cuidados (dicas de prova):\n
  • O enunciado garante que serão inteiros, então na prova você pode assumir entrada inteira. Em um programa real é legal verificar exceções (valor inválido), mas aqui não é necessário.\n
  • Não classifique o número negativo que interrompe o laço; pare antes de imprimir.\n
  • Lembre-se de que 0 é par — se esquecer disso, vai dar erro em casos com 0.\n
  • Em linguagens onde o operador módulo com números negativos tem comportamento diferente, reforço: você nem precisa aplicar o teste a números negativos porqueparamos quando n<0. Logo esse problema não aparece aqui.

Passo 8

Agora, o programa final em Python (uma implementação simples, adequada para a maioria dos avaliadores):\n
  • Ele lê inteiros do stdin, um por linha.\n
  • Para cada inteiro não-negativo imprime “par” ou “ímpar”.\n
  • Ao ler um inteiro negativo, encerra sem imprimir para ele.\n
    O código que segue é o que você pode colar e usar.

Resposta

def main():
    while True:
        try:
            n = int(input())
        except EOFError:
            break
        except ValueError:
            # Se quiser, avise e continue; na prova geralmente assumimos inteiros válidos
            print("Entrada inválida: digite um inteiro.")
            continue
        if n < 0:
            break
        if n % 2 == 0:
            print("par")
        else:
            print("ímpar")

if __name__ == "__main__":
    main()

Exercícios relacionados