Faça um algoritmo que simule um jogo de par-ou-ímpar entre dois amigos. O funcionamento deve ser o seguinte:
- O algoritmo pergunta os nomes dos dois jogadores, e estes respondem.
- O algoritmo pergunta ao primeiro jogador se deseja par ou ímpar, e aí informa. Qualquer que seja a escolha, o outro jogador ficará com a outra opção.
- Em seguida, o algoritmo pergunta ao primeiro jogador qual o número que ele vai usar para jogar. E depois a mesma coisa para o segundo jogador.
- Por fim, o algoritmo deve dizer qual foi o jogador vencedor.
Neste problema, é necessário que o algoritmo “se dirija” aos jogadores usando seus nomes. Por exemplo, se o primeiro jogador respondeu que se chama Pedro, nos passos seguintes o algoritmo deve exibir mensagens como: “Pedro, você deseja par ou ímpar?”, “Pedro, qual número você vai jogar?”, “Pedro, você é o vencedor!”.
Passo 1
O que o problema pede:
- Criar um algoritmo que simule um jogo de par-ou-ímpar entre dois amigos.
- O algoritmo deve perguntar os nomes dos dois jogadores, perguntar ao primeiro se ele quer “par” ou “ímpar”, perguntar os números que cada jogador escolhe e, ao final, anunciar o vencedor utilizando os nomes.
Informações fornecidas / entradas do algoritmo:
- O nome do primeiro jogador:
. - O nome do segundo jogador:
. - A escolha do primeiro jogador (par ou ímpar):
. - O número que o primeiro jogador joga:
. - O número que o segundo jogador joga:
.
Saídas esperadas:
- O algoritmo deve informar quem venceu (endereço pelo nome) e pode mostrar os números jogados e a soma para clareza.
Passo 2
Definindo claramente as variáveis que vamos usar (e o que significam):
-
: texto (string) com o nome do jogador 1. -
: texto (string) com o nome do jogador 2. -
: texto com a escolha do jogador 1 — “par” ou “ímpar” (aceitaremos variações como “impar” sem acento). -
: texto com a escolha do jogador 2; é sempre a alternativa que sobrou em relação a . -
: inteiro escolhido por . -
: inteiro escolhido por . -
: inteiro, resultado de . -
: texto que será “par” se for par e “ímpar” se for ímpar.
Por que declarar variáveis? Para sabermos que tipo de dado cada entrada vai ser, e assim validar e operar corretamente (por exemplo, somar inteiros).
Passo 3
Como pedir os nomes e por que tratar bem as strings:
- Ao pedir
e , leia a linha inteira (permitir nomes com espaços). - Exemplo de mensagem: “
, qual seu nome?” — depois que você leu , passe a usar esse nome nas perguntas seguintes. - Importante: quando eu escrevo
nas mensagens do algoritmo, significa "mostrar o valor lido para ". Assim, o algoritmo sempre se dirige aos jogadores pelos nomes.
Passo 4
Como pedir e validar a escolha “par” ou “ímpar” do primeiro jogador:
- Mostre a pergunta usando o nome do jogador: “
, você deseja par ou ímpar?”. - Leia a resposta em uma variável
. - Validação: converta a resposta para minúsculas (por exemplo, “Par” → “par”) e remova espaços extras nas bordas. Aceite pelo menos estas formas: “par”, “ímpar”, “impar”.
- Se a resposta não for reconhecida, pergunte novamente (loop até resposta válida). Isso evita que o algoritmo quebre se o jogador digitar algo estranho.
- Defina
automaticamente: se for “par” então = “ímpar”, senão = “par”. Assim o segundo jogador fica com a outra opção.
Passo 5
Como pedir os números e validar inteiros:
- Para
e , peça com mensagens que usem os nomes: - “
, qual número você vai jogar?” - “
, qual número você vai jogar?”
- “
- Tente converter a resposta para inteiro. Se a conversão falhar (ex.: o jogador digitou texto não numérico), peça novamente até obter um inteiro válido.
- Aceite inteiros negativos também (a regra do jogo funciona igualmente), a menos que o enunciado restrinja — aqui não restringimos.
Passo 6
Aula rápida sobre paridade (o que é par e ímpar) — essencial para a prova:
- Um número inteiro
é par se for divisível por , isto é, se o resto da divisão de por for . - Em notação, dizemos:
é par se . - Se o resto for
(ou em algumas linguagens com resto negativo), o número é ímpar. Para inteiros positivos comuns, dizemos: é ímpar se . - Exemplo rápido:
então é par; então é ímpar. - Na maioria das linguagens o operador que usamos é o operador “módulo” ou “%” (por exemplo, em pseudocódigo:
ou ).
Passo 7
Como determinar o vencedor passo a passo:
- Calcule
. - Verifique a paridade de
: - Se
então “par”. - Caso contrário,
“ímpar”.
- Se
- Compare
com : - Se
então vence. - Caso contrário,
vence.
- Se
- Mostre uma mensagem do tipo: “
, você é o vencedor!” e, se quiser, também mostre os valores jogados e a soma para ficar claro: - Ex.: "
jogou , jogou . Soma = ( ). , você é o vencedor!"
- Ex.: "
Passo 8
Exemplo completo de execução (um “mini-run” para fixar):
- Suponha que o jogador 1 é “Pedro” e jogador 2 é “Ana”.
- Pergunta: “Pedro, você deseja par ou ímpar?” — ele responde “par”.
- Pergunta: “Pedro, qual número você vai jogar?” — ele responde
. - Pergunta: “Ana, qual número você vai jogar?” — ela responde
. - Calcula-se
. - Teste de paridade:
, então “ímpar”. - Como
é “ímpar” e é “par”, Pedro não vence; Ana vence. - Saída exibida: “Pedro jogou
, Ana jogou . Soma = (ímpar). Ana, você é o vencedor!”
Passo 9
Boas práticas e detalhes finais para evitar erros na prova:
- Sempre valide entradas (escolha e números). Não confie que o usuário vai digitar certinho.
- Para comparar strings de escolhas, padronize (por exemplo, converta para minúsculas e aceite ambas as formas com ou sem acento).
- Sempre use os nomes lidos para se dirigir aos jogadores nas mensagens subsequentes — isso é requisito do enunciado.
- Mostre a soma e a paridade na saída; isso ajuda quem está avaliando a entender que o algoritmo fez a conta correta.
Resposta
Ler
// leia o nome do jogador 1
Ler // leia o nome do jogador 2
Ler
// pedir e validar escolha do jogador 1
Enquanto verdadeiro:
Mostrar “ , você deseja par ou ímpar?”
Ler // string
converter para minúsculas e remover espaços
Se “par” então
“ímpar”
Pare
Senao se “ímpar” ou
“impar” então
“ímpar” // normalizar forma sem acento
“par”
Pare
Senao
Mostrar “Resposta inválida. Digite ‘par’ ou ‘ímpar’.”
Enquanto verdadeiro:
Mostrar “
Ler
Se
Pare
Senao se
Pare
Senao
Mostrar “Resposta inválida. Digite ‘par’ ou ‘ímpar’.”
// pedir e validar número do jogador 1
Enquanto verdadeiro:
Mostrar “ , qual número você vai jogar?”
Ler
Tentar converter para inteiro
Se conversão bem-sucedida então Pare
Senao Mostrar “Número inválido. Digite um inteiro.”
Enquanto verdadeiro:
Mostrar “
Ler
Tentar converter
Se conversão bem-sucedida então Pare
Senao Mostrar “Número inválido. Digite um inteiro.”
// pedir e validar número do jogador 2
Enquanto verdadeiro:
Mostrar “ , qual número você vai jogar?”
Ler
Tentar converter para inteiro
Se conversão bem-sucedida então Pare
Senao Mostrar “Número inválido. Digite um inteiro.”
Enquanto verdadeiro:
Mostrar “
Ler
Tentar converter
Se conversão bem-sucedida então Pare
Senao Mostrar “Número inválido. Digite um inteiro.”
// calcular soma e paridade
Se então
“par”
Senao
“ímpar”
Se
Senao
// decidir vencedor
Se então
Senao
Se
Senao
// exibir resultado
Mostrar " jogou
,
jogou
. Soma =
(
)."
Mostrar “ , você é o vencedor!”
Mostrar "
Mostrar “