Desenvolva um programa que peça ao usuário, a idade e o peso de seu pet, e qual tipo de pet. Se for cachorro o usuário deve digitar c, se for gato, digita g. Mostre as entradas na tela.

Passo 1

O que o problema pede:
  • Desenvolver um programa que solicite do usuário três informações:
    1. a idade do pet;
    2. o peso do pet;
    3. o tipo de pet (se for cachorro digitar c; se for gato digitar g).
  • Em seguida, mostrar na tela as entradas fornecidas pelo usuário.
Informações relevantes dadas (o que o programa precisa receber e exibir):
  • Idade: valor numérico, tipicamente inteiro (anos ou unidades que decidir);
  • Peso: valor numérico, pode ter casas decimais (usar float);
  • Tipo: caractere indicando c ou g (aceitar maiúsculas/minúsculas é uma boa prática);
  • Saída: exibir os três valores de forma legível (por exemplo: “Idade: 5”, “Peso: 3,2”, “Tipo: cachorro”).

Passo 2

Escolha da linguagem e plano geral:
  • Vou usar Python porque é simples, muito usado em provas e exercícios iniciais de programação, e permite mostrar entradas e saídas com poucas linhas.
  • Plano do programa (visão geral):
    1. Pedir ao usuário a idade: ler como string e converter para inteiro; validar se é um número inteiro não-negativo.
    2. Pedir ao usuário o peso: ler como string e converter para float; validar se é um número positivo.
    3. Pedir ao usuário o tipo de pet: ler como string, normalizar (tirar espaços, colocar minúsculas) e verificar se é c ou g. Se não for, pedir novamente (loop).
    4. Exibir na tela os valores lidos, mostrando o tipo por extenso (cachorro ou gato).

Passo 3

Como ler a idade e por que converter/validar:
  • Em Python, a função input() retorna sempre uma string. Para tratar idade como número inteiro usamos int(...).
  • Por que validar? O usuário pode digitar texto ou número negativo; na prova normalmente é esperado tratar entradas básicas ou pelo menos garantir que o programa não quebre.
  • Exemplo de leitura com validação (explicação passo a passo):
    • Pedir a entrada: entrada = input("Idade do pet: ")
    • Tentar converter: usar int(entrada) dentro de um bloco try/except para capturar erro se não for inteiro.
    • Verificar se o inteiro é maior ou igual a zero; se não, pedir novamente.
  • Isso forma um pequeno laço que só termina quando o usuário digita um inteiro válido.

Passo 4

Como ler o peso e validar:
  • Peso pode ter casas decimais, então usamos float(...).
  • Mesma ideia: input() -> float(entrada) com try/except para evitar que o programa quebre caso o usuário digite algo inválido.
  • Validar que o peso seja maior que zero (ou maior ou igual a zero, dependendo da especificação; aqui usamos maior que zero).
  • Se inválido, pedir novamente até ter um float válido.

Passo 5

Como ler o tipo de pet e tratar maiúsculas/minúsculas:
  • Ler com input(), aplicar strip() para remover espaços nas extremidades e lower() para colocar em minúsculas.
  • Aceitar somente 'c' ou 'g'. Se outro caractere for digitado, repetir a solicitação.
  • Ao final, mapear 'c''cachorro' e 'g''gato' para exibir por extenso.

Passo 6

Formato de exibição das entradas:
  • Exibir cada informação em uma linha separada para ficar claro para quem lê.
  • Exemplo de formato:
    • Idade: 5
    • Peso: 3.2
    • Tipo: cachorro
  • Usar print() com f-strings em Python facilita a formatação: print(f"Idade: {idade}")

Passo 7

Código completo do programa (aplicando tudo que expliquei). Este código lê, valida e mostra as entradas:
def ler_idade():
    while True:
        entrada = input("Idade do pet (anos): ").strip()
        try:
            idade = int(entrada)
            if idade < 0:
                print("Idade não pode ser negativa. Tente novamente.")
                continue
            return idade
        except ValueError:
            print("Entrada inválida. Digite um número inteiro para a idade.")

def ler_peso():
    while True:
        entrada = input("Peso do pet (kg): ").strip()
        try:
            peso = float(entrada)
            if peso <= 0:
                print("Peso deve ser maior que zero. Tente novamente.")
                continue
            return peso
        except ValueError:
            print("Entrada inválida. Digite um número (ex: 3.2) para o peso.")

def ler_tipo_pet():
    while True:
        entrada = input("Tipo do pet ('c' para cachorro, 'g' para gato): ").strip().lower()
        if entrada == 'c':
            return 'c', 'cachorro'
        elif entrada == 'g':
            return 'g', 'gato'
        else:
            print("Tipo inválido. Digite 'c' para cachorro ou 'g' para gato.")

def main():
    print("Cadastro do pet")
    idade = ler_idade()
    peso = ler_peso()
    tipo_simbolo, tipo_extenso = ler_tipo_pet()

    print("\nDados informados:")
    print(f"Idade: {idade}")
    print(f"Peso: {peso}")
    print(f"Tipo: {tipo_extenso}")

if __name__ == "__main__":
    main()

Passo 8

Explicação linha a linha (resumo didático das partes-chave):
  • ler_idade(): laço while True que só sai quando int(...) converte com sucesso e o valor é não-negativo. try/except evita erro de execução ao tentar converter texto que não é número.
  • ler_peso(): mesmo padrão, usando float(...) para permitir decimais e exigindo peso positivo.
  • ler_tipo_pet(): normaliza entrada com strip().lower() e compara com 'c' ou 'g'. Retorna o símbolo e a palavra por extenso para facilitar exibição.
  • main(): chama as funções de leitura e depois mostra os dados formatados com f-strings.
  • if __name__ == "__main__": é a forma padrão em Python para permitir que o arquivo seja executado como script.

Passo 9

Exemplos de execução (simulação):
  • Caso 1 (entradas corretas direto):
    • Entrada: Idade do pet (anos): 3
    • Entrada: Peso do pet (kg): 4.5
    • Entrada: Tipo do pet ('c' para cachorro, 'g' para gato): c
    • Saída:
      • Idade: 3
      • Peso: 4.5
      • Tipo: cachorro
  • Caso 2 (erro e correção):
    • Entrada: Idade do pet (anos): dois → Mensagem “Entrada inválida…”
    • Entrada: Idade do pet (anos): -1 → Mensagem “Idade não pode ser negativa…”
    • Entrada: Idade do pet (anos): 2
    • Entrada: Peso do pet (kg): zero → Mensagem “Entrada inválida…”
    • Entrada: Peso do pet (kg): 0 → Mensagem “Peso deve ser maior que zero…”
    • Entrada: Peso do pet (kg): 2.3
    • Entrada: Tipo do pet ('c' para cachorro, 'g' para gato): x → Mensagem “Tipo inválido…”
    • Entrada: Tipo do pet ('c' para cachorro, 'g' para gato): g
    • Saída:
      • Idade: 2
      • Peso: 2.3
      • Tipo: gato

Passo 10

Dicas rápidas para a prova e variações:
  • Se o enunciado não pedir validação, uma versão mais curta pode simplesmente usar idade = int(input("Idade: ")), peso = float(input("Peso: ")) e tipo = input("Tipo: ").strip().lower(), mas isso pode gerar erro se o usuário digitar algo inválido.
  • Se quiser aceitar outras formas de tipo (ex: palavras completas como “cachorro” ou “gato”), basta testar if entrada in ('c', 'cachorro'): e assim por diante.
  • Não esqueça de explicar no enunciado do seu exercício na prova o que faz cada parte: leitura, conversão, validação e exibição — isso ajuda a garantir pontos mesmo se o código não estiver perfeito.
  • Você conseguiu! Respira fundo, pratique mais algumas variações e vai tranquilo.

Resposta

def ler_idade():
    while True:
        entrada = input("Idade do pet (anos): ").strip()
        try:
            idade = int(entrada)
            if idade < 0:
                print("Idade não pode ser negativa. Tente novamente.")
                continue
            return idade
        except ValueError:
            print("Entrada inválida. Digite um número inteiro para a idade.")

def ler_peso():
    while True:
        entrada = input("Peso do pet (kg): ").strip()
        try:
            peso = float(entrada)
            if peso <= 0:
                print("Peso deve ser maior que zero. Tente novamente.")
                continue
            return peso
        except ValueError:
            print("Entrada inválida. Digite um número (ex: 3.2) para o peso.")

def ler_tipo_pet():
    while True:
        entrada = input("Tipo do pet ('c' para cachorro, 'g' para gato): ").strip().lower()
        if entrada == 'c':
            return 'c', 'cachorro'
        elif entrada == 'g':
            return 'g', 'gato'
        else:
            print("Tipo inválido. Digite 'c' para cachorro ou 'g' para gato.")

def main():
    print("Cadastro do pet")
    idade = ler_idade()
    peso = ler_peso()
    tipo_simbolo, tipo_extenso = ler_tipo_pet()

    print("\nDados informados:")
    print(f"Idade: {idade}")
    print(f"Peso: {peso}")
    print(f"Tipo: {tipo_extenso}")

if __name__ == "__main__":
    main()

Exercícios relacionados