Você foi contratado pela TV Globo para criar um programa para auxiliar na apuração do resultado de uma prova do BBB . A prova ocorre da seguinte forma. Três participantes são selecionados e identificados por letras (“a”, “b” e “c”) e uma votação é iniciada. Cada votante indica dois participantes selecionados que ele mais se identifica. O primeiro votado recebe 1.5 pontos e o segundo votado recebe 0.5 pontos. A soma de pontos dos três participantes selecionados deve ser computada e, após todos os votantes registrarem seus votos, o resultado da pontuação deve ser impresso com precisão de uma casa decimal. O programa se inicia perguntando o número de votantes (um valor inteiro). Não é preciso fazer validações dos dados.
Sua resposta deve conter as mensagens exatamente como definidas nos exemplos de execução.
Exemplo de Execução 1:
Informe a quantidade de votantes: 5
Votante 1:
- Informe o voto 1: a
. Informe o voto 2: b
Votante 2:
- Informe o voto 1: b
- Informe o voto 2: a
Votante 3:
- Informe o voto 1: a
- Informe o voto 2: c
Votante 4:
- Informe o voto 1: b
- Informe o voto 2: c
Votante 5:
- Informe o voto 1: c
- Informe o voto 2: a
Pontuações:
. Participante "a": 4.0
. Participante "b": 3.5
. Participante "c": 2.5
Exemplo de Execução 2:
Informe a quantidade de votantes: 2
Votante 1:
- Informe o voto 1: a
- Informe o voto 2: c
Votante 2:
- Informe o voto 1: b
- Informe o voto 2: a
Pontuações:
. Participante "a": 2.0
. Participante "b": 1.5
. Participante "c": 0.5
Informe a quantidade de votantes: 5
Votante 1:
- Informe o voto 1: a
. Informe o voto 2: b
Votante 2:
- Informe o voto 1: b
- Informe o voto 2: a
Votante 3:
- Informe o voto 1: a
- Informe o voto 2: c
Votante 4:
- Informe o voto 1: b
- Informe o voto 2: c
Votante 5:
- Informe o voto 1: c
- Informe o voto 2: a
Pontuações:
. Participante "a": 4.0
. Participante "b": 3.5
. Participante "c": 2.5
Informe a quantidade de votantes: 2
Votante 1:
- Informe o voto 1: a
- Informe o voto 2: c
Votante 2:
- Informe o voto 1: b
- Informe o voto 2: a
Pontuações:
. Participante "a": 2.0
. Participante "b": 1.5
. Participante "c": 0.5
Passo 1
Vou listar claramente o que o enunciado pede e quais são as informações que ele dá (sem resolver nada ainda).
- Entrada: um número inteiro que indica a quantidade de votantes.
- Para cada votante devemos ler dois votos, cada voto é uma das letras
, ou . - Regras de pontuação:
- O primeiro voto do votante confere
pontos ao participante indicado. - O segundo voto do votante confere
pontos ao participante indicado.
- O primeiro voto do votante confere
- Saída: após processar todos os votantes, imprimir a pontuação total dos três participantes com precisão de uma casa decimal, usando exatamente as mensagens do exemplo (ou seja, os prompts e a formatação final devem seguir o modelo).
- Não é necessário validar entradas (assumimos que os votantes sempre digitam apenas
, ou e que o número de votantes é um inteiro).
O enunciado pede que o programa:
- Leia a quantidade de votantes;
- Para cada votante, leia os dois votos na ordem (voto 1 e voto 2) exibindo os prompts exatamente;
- Some as pontuações conforme as regras;
- Imprima as pontuações finais formatadas com uma casa decimal.
Passo 2
Escolha do método (o raciocínio por trás da implementação).
- Uma solução simples e direta é usar:
- três variáveis para acumular pontos (uma para
, outra para e outra para ); - um laço que repete uma vez para cada votante;
- dentro do laço, ler o primeiro voto e somar
à variável correspondente; ler o segundo voto e somar à variável correspondente; - depois do laço, imprimir as três variáveis usando formatação para uma casa decimal.
- três variáveis para acumular pontos (uma para
Esse método é o mais prático e seguro para implementar na prova: é direto, fácil de escrever e de entender, e não exige estruturas avançadas.
Passo 3
Definir as variáveis iniciais e seu significado.
-
: acumulador de pontos do participante “a” — inicializado com . -
: acumulador de pontos do participante “b” — inicializado com . -
: acumulador de pontos do participante “c” — inicializado com . -
: número de votantes (inteiro) que será lido da entrada.
Explicação por que usar ponto flutuante:
- Como os incrementos são
e , os acumuladores precisam ser números com parte decimal (tipo float). Em muitas linguagens basta inicializar com .
Passo 4
Ler a quantidade de votantes e tratar o tipo.
- Ler a quantidade de votantes como string a partir do teclado e converter para inteiro.
- Em pseudocódigo (ou em Python) essa conversão é necessária porque a leitura padrão retorna texto. Converter para inteiro permite repetir o laço exatamente
vezes.
Exemplo conceitual:
- Ler
com algo como: .
Passo 5
Laço principal: iterar sobre cada votante e ler os dois votos com os prompts exigidos.
- Para cada índice
de até : - imprimir a linha
Votante i:(substituindopelo número do votante); - ler o primeiro voto com o prompt
- Informe o voto 1:; - ler o segundo voto com o prompt
- Informe o voto 2:.
- imprimir a linha
Observação sobre prompts:
- É importante que os textos exibidos ao usuário estejam exatamente como nos exemplos:
Informe a quantidade de votantes:,Votante 1:,- Informe o voto 1:,- Informe o voto 2:e, ao final,Pontuações:seguido das linhas de participante começando com um ponto:. Participante "a": ...etc.
Passo 6
Como aplicar as regras de pontuação (lógica interna por voto).
- Depois de ler o primeiro voto (chamado de
): - se
for , somar em ; - se
for , somar em ; - se
for , somar em .
- se
- Depois de ler o segundo voto (chamado de
): - se
for , somar em ; - se
for , somar em ; - se
for , somar em .
- se
Explicando por que usar condicional:
- Cada voto indica qual participante recebe os pontos; com uma estrutura condicional (if/elif/else) ou um dicionário/mapa é simples direcionar os pontos para o acumulador correto.
Pequeno exemplo manual (pra fixar):
- Suponha um votante com
e . - Após
: . - Após
: .
- Após
Passo 7
Formatação da saída final com uma casa decimal.
- Ao final, imprimir:
Pontuações:numa linha;. Participante "a": X.XondeX.Xé a pontuação decom uma casa decimal; . Participante "b": Y.YondeY.Yé a pontuação decom uma casa decimal; . Participante "c": Z.ZondeZ.Zé a pontuação decom uma casa decimal.
- Como mostrar apenas uma casa decimal:
- em muitas linguagens usa-se especificadores de formato: por exemplo, em Python
"{valor:.1f}"imprime o número com exatamente uma casa decimal (ex.:será impresso como 4.0).
- em muitas linguagens usa-se especificadores de formato: por exemplo, em Python
- Atenção: as linhas devem começar com ponto e espaço (
.) antes deParticipante, conforme os exemplos.
Passo 8
Resumo do algoritmo (em alto nível, passo a passo que você pode escrever na prova):
- Inicializar
, , . - Ler
(quantidade de votantes). - Para
de até : - imprimir
Votante i: - ler
com o prompt - Informe o voto 1: - ler
com o prompt - Informe o voto 2: - aplicar pontuação:
,
- imprimir
- Após o laço, imprimir as pontuações formatadas com uma casa decimal.
Passo 9
Dica final e cuidados na prova
- Preste atenção na ordem dos prompts e no texto exato a ser impresso (os avaliadores automáticos costumam comparar saída literal).
- Use ponto flutuante para acumular as pontuações.
- Para evitar erros de digitação, copie exatamente as strings dos prompts nos seus prints.
- Teste com o exemplo dado para conferir.
Resposta
a = 0.0
b = 0.0
c = 0.0
b = 0.0
c = 0.0
n = int(input("Informe a quantidade de votantes: "))
for i in range(1, n + 1):
print(f"Votante {i}😊
v1 = input("- Informe o voto 1: “)
v2 = input(”- Informe o voto 2: ")
if v1 == “a”:
a += 1.5
elif v1 == “b”:
b += 1.5
elif v1 == “c”:
c += 1.5
if v2 == “a”:
a += 0.5
elif v2 == “b”:
b += 0.5
elif v2 == “c”:
c += 0.5
print(f"Votante {i}😊
v1 = input("- Informe o voto 1: “)
v2 = input(”- Informe o voto 2: ")
if v1 == “a”:
a += 1.5
elif v1 == “b”:
b += 1.5
elif v1 == “c”:
c += 1.5
if v2 == “a”:
a += 0.5
elif v2 == “b”:
b += 0.5
elif v2 == “c”:
c += 0.5
print(“Pontuações:”)
print(f’. Participante “a”: {a:.1f}’)
print(f’. Participante “b”: {b:.1f}’)
print(f’. Participante “c”: {c:.1f}’)
print(f’. Participante “a”: {a:.1f}’)
print(f’. Participante “b”: {b:.1f}’)
print(f’. Participante “c”: {c:.1f}’)