Comparando matrizes e acumulando o resultado

4 respostas
E

Bao tarde,

Não consigo comparar as duas matrizes “gab[] e resp[]” e acumular o resultado em outra matriz “nota[]”, como fazer??

obrigado

/*Faça um programa para corrigir provas de múltiplas. 
 *Cada prova tem oito questões e cada questão vale um ponto. 
 *O primeiro conjunto de dados a ser lido é o gabarito da prova. 
 *Os outros dados são os números dos alunos e as respostas que deram às questões. 
 *Existem dez alunos matriculados. Calcule e mostre: 
a. O número e a nota de cada aluno;
b. A percentagem de aprovação, sabendo-se que a nota mínima é 6.*/
import javax.swing.*;
public class ExeC2 {
	public static void main(String args[]) {
		String[] gab = new String [10];
		String[] resp = new String [10];
		String[] aluno = new String [10];
		String[] nota = new String [10];
		for(int i=1; i<3; i++) {
			gab[i] = (JOptionPane.showInputDialog("Digite o gabarito da prova - questão " + i + " - a, b, c, ou d"));
		}
		for(int j=1; j<3; j++) {
//			aluno[] = (JOptionPane.showInputDialog("Digite o número do aluno"));
			resp[j] = (JOptionPane.showInputDialog("Digite a resposta - questão " + j + " - a, b, c, ou d"));

		    
		if (gab[i].equals (resp[j])) {   
			nota[i]= nota + 1;
		JOptionPane.showMessageDialog(null,nota);
		}  



	}
	}

4 Respostas

W

na verdade nesse código não tem matriz nenhuma somente vetores, eu só não intendi como tu quer lançar a nota, tu quer um vetor dizendo qual questão ele acertou
e qual questão ele errou ?
ou tu so quer um acumulador, que a cada nota certa aumenta 1 ponto ?

if (gab[i].equals (resp[j])) {     
             nota[i]= nota + 1;  
         JOptionPane.showMessageDialog(null,nota);  
         }

eu nem testei mas esse codigo acima ta fazendo algo bem confuso, tu ta adicionando a cada posicao do vetor strings nota, o vetor nota +1…

bom se for pra acumular a nota, não precisa nem de um vetor, e so usar somente uma variavel normal por exemplo

int nota = nota+1;

agora se tu quer marcar com 1 cada questao que ele acertou e so mudar

nota[i]= nota + 1;  
para 
nota[i] = 1;

assim cada acerto no vetor ficara marcado com 1, ai depois e so ler todas as posicoes do vetor , as que tiverem com 1 serão as questoes corretas
e assim voce consegue saber qual questao ele acertou atraves do numero do indice.

E

Obrigado pela ajuda… mas ainda não estou conseguindo…
então…
depois que eu comparar os vetores gab e resp, tenho que somar um ponto na nota e depois exibir

W

bom alem das coisas que eu falei tinha um erro no uso de indices tai o codigo corrigido mas espero que tenha intendido o problema…
e eu desci o resultado pro escopo mais abaixo, pra mensagem so aparecer quando terminar de comparar todas as respostas

/*Faça um programa para corrigir provas de múltiplas. 
 *Cada prova tem oito questões e cada questão vale um ponto. 
 *O primeiro conjunto de dados a ser lido é o gabarito da prova. 
 *Os outros dados são os números dos alunos e as respostas que deram às questões. 
 *Existem dez alunos matriculados. Calcule e mostre: 
a. O número e a nota de cada aluno;
b. A percentagem de aprovação, sabendo-se que a nota mínima é 6.*/
import javax.swing.*;
public class ExeC2 {
	public static void main(String args[]) {
		String[] gab = new String [10];
		String[] resp = new String [10];
		String[] aluno = new String [10];
		int nota = 0;
		for(int i=1; i<3; i++) {
			gab[i] = (JOptionPane.showInputDialog("Digite o gabarito da prova - questão " + i + " - a, b, c, ou d"));
		}
		for(int j=1; j<3; j++) {
//			aluno[] = (JOptionPane.showInputDialog("Digite o número do aluno"));
			resp[j] = (JOptionPane.showInputDialog("Digite a resposta - questão " + j + " - a, b, c, ou d"));

		    
		if (gab[j].equals (resp[j])) {   
			nota= nota + 1;
		
		}  
	}
		JOptionPane.showMessageDialog(null,""+nota);
 }
}
jgandolfi

Cara primeiro refaça o código usando matrizes para facilitar tipo crie uma matriz AlunoGab[][] pois assim vc associa diretamente o aluno com o gabarito depois use um vetor para entrada com as respostas certas, não precisará colocar o número da questão pois vc usurá o índice.Crie uma variável de classe matriz onde será colocado o numero do aluno com sua nota total de cada um.

Tente fazer ok, eu poderia te dar o código mas isso não ajudaria em seu aprendizado, qualquer coisa é só perguntar bele!

Criado 31 de maio de 2008
Ultima resposta 31 de mai. de 2008
Respostas 4
Participantes 3