Escreva um algoritmo que descubra as respostas de um aluno a uma prova de múltipla escolha. Nesta prova, cada questão terá cinco alternativas (A, B, C, D e E). O aluno escolhe a resposta preenchendo retângulos. Ao final da prova, as folhas de respostas serão escaneadas e processadas digitalmente.
A prova foi escaneada usando tons de cinza entre 0 (preto total) e 255 (branco total). O escaner após detectar os cinco retângulos reservados para as respostas de uma questão retorna cinco valores inteiros correspondentes a cada uma das respostas. Se o quadrado foi preenchido corretamente o valor da média é zero (preto total). Se o quadrado foi deixado em branco o valor da média é 255 (branco total). Assim, idealmente, se os valores de cada quadrado de uma questão são (255, 0, 255, 255, 255), sabemos que o aluno marcou a alternativa B para essa questão.
Obviamente, nem todas as questões das folhas de resposta são marcadas de maneira correta. Pode acontecer de um aluno se enganar e marcar mais de uma alternativa na mesma questão, ou não marcar nenhuma alternativa. Nesses casos, a resposta deve ser desconsiderada e impresso um asterisco.
Escreva um algoritmo que leia para cada questão os valores dos cinco retângulos de uma questão e imprima a letra marcada, ou se a resposta à questão deve ser desconsiderada e impresso um asterisco.
Importante: o primeiro dado a ser lido de uma prova é a quantidade de questões da prova.
A seguir mostramos dois exemplos de execuções diferentes de um possível algoritmo. Em negrito estão os textos impressos pelo computador.
Exemplo 1:
Quantas questoes? 2
Questao 1
? 255
? 255
? 0
? 255
? 255
Resposta C Questao 2
? 0
? 255
? 255
? 255
? 255
Resposta A
Exemplo 2:
Quantas questoes? 3
Questao 1
? 255
? 0
? 255
? 255
? 255
Resposta B Questao 2
? 0
? 255
? 255
? 0
? 255
Resposta * Questao 3
? 255
? 255
? 255
? 255
? 0
Resposta E
Soluções para a tarefa
Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas.
Para fazer um algoritmo é necessário para seguir determinados pontos como: ordem lógica da execução das tarefas, início e fim, completo, alto nível de detalhes, tarefa é uma instrução.
import java.util.Scanner;
public class ex58 {
public static void main(String[] args) {
// contadores
int x,y;
// controle de equaçoes
int qtd; //quantidade de alunos
int resp; //resposta para comparar com o gabarito
int acertos;//quantidade de acertos
int maior=0;//maior nota
String mnome=" ";//nome do aluno q tirou a maior nota
int not=0;//nota do aluno
int apr=0;// quantidade de aprovados
int pApr;//porcentagem de aprovados
int gabarito[] = new int[10];
String nome[] = new String[10];
int nota[]=new int [10];
Scanner s = new Scanner(System.in);
System.out.println(":::Gabarito:::".toUpperCase());
for (x = 0; x < 10; x++) {
System.out.print((x+1)+ "ª questao :" );
gabarito[x] = s.nextInt();
Espero ter ajudado.