Algoritmo matriz e vetor!

1 resposta
D

Faça uma classe em JAVA que carregue uma matriz com as notas de cinco alunos em três provas. Lembre-se que essa quantidade de alunos e provas é uma suposição e que sua classe poderia ser alterada para funcionar com números muito maiores.

Cada nota digitada deve ser validada e as notas válidas estão entre 0 e 10. Sempre que uma nota inválida for digitada uma nova digitação deve ser solicitada.

Carregue também um vetor com o tipo de média (A ? Aritmética e P ? Ponderada). Lembre-se que cada aluno terá um tipo de média e que os tipos digitados devem ser validados e os tipos válidos são: A, a, P, p. Sempre que um tipo inválido for digitado uma nova digitação deve ser solicitada. Os pesos da média ponderada são: 2, 3 e 10.

Mostre:

a) O número de cada aluno (nº da linha ou da coluna), a média e a situação (aprovado ou reprovado, considerando para aprovação média de no mínimo 7)
b) A média de todos os alunos juntos em cada prova
c) A maior nota de cada aluno e em que prova aconteceu, DESCONSIDERAR empates.
d) A menor nota em cada prova e a que aluno pertence, CONSIDERAR empates.

o exercicio é esse e o código que eu fiz é este?só que qd da a média de todos os alunos juntos em cada prova ele da errado o q eu fiz de errado alguém pode me ajudar?
obrigado!

import java.util.Scanner;  
      
    public class exx3 {  
      
        public static void main(String[] args) {  
            final int NUMERO_DE_ALUNOS = 5;  
            double nota[][] = new double[NUMERO_DE_ALUNOS][3];  
            String tipoMedia[] = new String[NUMERO_DE_ALUNOS];  
            double media[] = new double[NUMERO_DE_ALUNOS];  
            double mediaProva = 0;  
            double maiorNota = 0;  
            double menorNota = 0;  
            String donoMaiorNota = null;  
            String donoMenorNota = null;  
      
      
            Scanner dado = new Scanner(System.in);  
      
            for (int i = 0; i < NUMERO_DE_ALUNOS; i++) {  
                System.out.println("digite as notas dos alunos" + (i + 1));  
                for (int j = 0; j < 3; j++) {  
                    System.out.println("notas da prova " + (j + 1));  
                    nota[i][j] = dado.nextDouble();  
                    while (nota[i][j] > 10 || nota[i][j] < 0) {  
                        System.out.println("nota inválida");  
                        System.out.println("digite novamente");  
                        nota[i][j] = dado.nextDouble();  
                    }  
                    mediaProva = nota[i][j];  
                    if (i == 0) {  
                        maiorNota = nota[i][j];  
                        menorNota = nota[i][j];  
                        donoMaiorNota = "" + (i + 1);  
                        donoMenorNota = "" + (i + 1);  
                    } else {  
                        if (maiorNota < nota[i][j]) {  
                            maiorNota = nota[i][j];  
                            donoMaiorNota = "" + (i + 1);  
                        }  
                        if (menorNota > nota[i][j]) {  
                            menorNota = nota[i][j];  
                            donoMenorNota = "" + (i + 1);  
                        } else if (menorNota == nota[i][j]) {  
                            donoMenorNota = donoMenorNota + "empatou com " + (i + 1);  
                        }  
      
                    }  
                }  
                do {  
                    System.out.println("digite o tipo da média A-aritmédia e P-ponderada");  
                    tipoMedia[i] = dado.next();  
                } while (!(tipoMedia[i].equalsIgnoreCase("p") || tipoMedia[i].equalsIgnoreCase("A")));  
      
                if (tipoMedia[i].equalsIgnoreCase("p")) {  
                    media[i] = (nota[i][0] * 2 + nota[i][1] * 3 + nota[i][2] * 10) / 15;  
                    System.out.println("a média foi " + media[i]);  
                    System.out.println("media válida");  
                } else if (tipoMedia[i].equalsIgnoreCase("A")) {  
                    media[i] = (nota[i][0] + nota[i][1] + nota[i][2]) / 3;  
                    System.out.println("a média foi " + media[i]);  
                }  
      
                if (media[i] >= 7) {  
                    System.out.println("aluno aprovado");  
                } else {  
                    System.out.println("aluno reprovado");  
                }  
            }  
            System.out.println("\nDados das prova\n");  
            for (int i = 0; i < 3; i++) {  
                System.out.println("Media da prova "+(i+1)+" ="+ (mediaProva/NUMERO_DE_ALUNOS));  
                System.out.println("Maior nota da prova " + (i + 1) + " foi :" + maiorNota + " do aluno" + donoMaiorNota);  
                System.out.println("Menor nota da prova " + (i + 1) + " foi :" + menorNota + " do(s) aluno(s) " + donoMenorNota);  
            }  
        }  
    }

1 Resposta

D

os dados da prova esta saindo errado o que eu fiz de errado? obrigado!

Criado 26 de setembro de 2011
Ultima resposta 26 de set. de 2011
Respostas 1
Participantes 1