Em um concurso público, a prova é composta por 15 questões de múltipla escolha com 5 opções (A, B, C, D ou E). Faça um programa que auxilie na correção automática das provas dos candidatos, permitindo que cada candidato entre com seu nome e suas respostas. As respostas devem ser fornecidas como uma única sequencia de 15 letras, onde a primeira letra corresponde a opção marcada para a primeira questão, a segunda letra a opção para a segunda questão, e assim por diante. Após a entrada de cada candidato, o programa deve perguntar se serão inseridas os dados de um novo candidato. Em caso positivo, o processo se repete. Em caso negativo, o programa deve perguntar o gabarito como uma sequencia de 15 letras. Por fim, o programa deve indicar quantas respostas certas cada candidato acertou, comparando suas respostas com a do gabarito fornecido, conforme exemplo abaixo:
Nome: Afonso
Respostas: ABCDADEDDEABCDD
Deseja Continuar? S
Nome: Maria
Respostas: CBCDADEDDEABCDC
Deseja Continuar? S
Nome: João
Respostas: DABCEDEBAACDEEA
Deseja Continuar: N
Gabarito: ABCDBDEDDEBBCDD
Afonso - 13 respostas certas
Maria - 11 respostas certas
João - 2 respostas certas
Nome: Afonso
Respostas: ABCDADEDDEABCDD
Deseja Continuar? S
Nome: Maria
Respostas: CBCDADEDDEABCDC
Deseja Continuar? S
Nome: João
Respostas: DABCEDEBAACDEEA
Deseja Continuar: N
Gabarito: ABCDBDEDDEBBCDD
Afonso - 13 respostas certas
Maria - 11 respostas certas
João - 2 respostas certas
Passo 1
Entendendo o Problema e o Conteúdo Necessário
Vamos começar resumindo o que o exercício pede. Temos um concurso público com uma prova de 15 questões de múltipla escolha, cada uma com 5 opções (A, B, C, D ou E). Precisamos criar um programa que ajude na correção automática das provas dos candidatos. O programa deve:
- Permitir que cada candidato entre com seu nome e suas respostas como uma sequência de 15 letras.
- Perguntar se querem inserir os dados de um novo candidato. Se sim, repete o processo.
- Se não, pedir o gabarito (a sequência correta de respostas).
- Comparar as respostas de cada candidato com o gabarito e indicar quantas respostas cada um acertou.
Para resolver isso, vamos precisar aplicar conceitos de programação como estruturas de repetição (loops), estruturas de decisão (condicionais), armazenamento de dados (listas ou dicionários) e manipulação de strings.
Passo 2
Escolhendo a Linguagem de Programação
Primeiro, precisamos escolher uma linguagem de programação para implementar o programa. Vamos optar pelo Python por ser uma linguagem fácil de entender e muito usada para esse tipo de tarefa.
Passo 3
Estruturando os Dados dos Candidatos
Vamos armazenar os dados dos candidatos, ou seja, seus nomes e respostas. Para isso, usaremos uma lista de dicionários, onde cada dicionário representará um candidato com seu nome e suas respostas.
candidatos = []
Passo 4
Coletando os Dados dos Candidatos
Precisamos permitir que o usuário insira os dados dos candidatos repetidamente até que ele decida parar. Usaremos um loop
while
para isso e perguntaremos ao final de cada iteração se deseja continuar.while True:
nome = input("Nome: ")
respostas = input("Respostas: ").upper()
candidatos.append({"nome": nome, "respostas": respostas})
continuar = input("Deseja Continuar? (S/N): ").strip().upper()
if continuar != 'S':
break
Explicação:
input()
recebe a entrada do usuário..upper()
converte as respostas para maiúsculas para padronização.candidatos.append()
adiciona um novo dicionário à lista de candidatos.- Se o usuário digitar algo diferente de ‘S’, o loop para.
Passo 5
Coletando o Gabarito
Após inserir todos os candidatos, precisamos pedir o gabarito para comparar as respostas.
gabarito = input("Gabarito: ").upper()
Passo 6
Comparando as Respostas e Calculando as Notas
Agora, vamos comparar as respostas de cada candidato com o gabarito e contar quantas respostas estão corretas.
for candidato in candidatos:
correct = 0
for i in range(len(gabarito)):
if i < len(candidato["respostas"]) and candidato["respostas"][i] == gabarito[i]:
correct += 1
print(f"{candidato['nome']} - {correct} respostas certas")
Explicação:
for candidato in candidatos:
percorre cada candidato na lista.correct
inicia a contagem de respostas corretas.for i in range(len(gabarito)):
percorre cada questão.if i < len(candidato["respostas"]) and candidato["respostas"][i] == gabarito[i]:
verifica se a resposta do candidato na posiçãoi
está correta.print()
exibe o resultado para cada candidato.
Passo 7
Finalizando o Programa com uma Resposta Completa
Unindo todos os passos, temos o programa completo que realiza a correção automática das provas.
# Lista para armazenar os candidatos
candidatos = []
# Coletando dados dos candidatos
while True:
nome = input("Nome: ")
respostas = input("Respostas: ").upper()
candidatos.append({"nome": nome, "respostas": respostas})
continuar = input("Deseja Continuar? (S/N): ").strip().upper()
if continuar != 'S':
break
# Coletando o gabarito
gabarito = input("Gabarito: ").upper()
# Comparando e exibindo os resultados
for candidato in candidatos:
correct = 0
for i in range(len(gabarito)):
if i < len(candidato["respostas"]) and candidato["respostas"][i] == gabarito[i]:
correct += 1
print(f"{candidato['nome']} - {correct} respostas certas")
Resposta
Prontinho! Agora temos um programa em Python que permite inserir os dados dos candidatos, coletar o gabarito e mostrar quantas respostas cada candidato acertou comparando com o gabarito fornecido.
Exercícios relacionados
Em uma competição de ginástica, cada atleta recebe votos de sete jurados. A melhor e a pior nota são eliminadas. A sua nota fica sendo a média dos votos restantes. Você deve fazer um programa que receba o nome do ginasta e as notas dos sete jurados alcançadas pelo atleta em sua apresentação e depois informe a sua média, conforme a descrição acima informada (retirar o melhor e o pior salto e depois calcular a média com as notas restantes). As notas não são informados ordenadas. Um exemplo de saída do programa deve ser conforme o exemplo abaixo:
Atleta: Aparecido Parente
Nota: 9.9
Nota: 7.5
Nota: 9.5
Nota: 8.5
Nota: 9.0
Nota: 8.5
Nota: 9.7
Resultado final:
Atleta: Aparecido Parente
Melhor nota: 9.9
Pior nota: 7.5
Média: 9,04
Sugestão: usem o método max, min, pop de vetores para facilitar a resolução da questão
Atleta: Aparecido Parente
Nota: 9.9
Nota: 7.5
Nota: 9.5
Nota: 8.5
Nota: 9.0
Nota: 8.5
Nota: 9.7
Resultado final:
Atleta: Aparecido Parente
Melhor nota: 9.9
Pior nota: 7.5
Média: 9,04
Sugestão: usem o método max, min, pop de vetores para facilitar a resolução da questão
Dado o seguinte sistema de equações lineares com determinante
e Número de Condição
:
Utilizando o método da Decomposição LU de Crout ou Doolittle, mostre como fica a Matriz L (triangular Inferior) a Matriz U (triangular superior), a solução y
e a solução
. Coloque os resultados na caixa de texto.
Faça um programa em Python que dado um número N, onde
, calcule o valor da série:
OBS: Se for fornecido um valor inválido, deve ser apresentada uma mensagem de erro e solicitado que usuário digite um valor válido.
Dados os vetores
e
, calcular