Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Registro de Notas

Pra mim foi bem complexo pensar em uma forma de calcular as notas negativas e registrar as notas inválidas , depois pensei em uma ideia , acho que não tanto correta, mas acho que valeu a tentativa, depois eu fui ver o exercicio do professor e vi que era bem mais simples do que parecia.

import java.util.Scanner;

public class Main {
    static void main(String[] args) {

        Aluno2 aluno2 = new Aluno2("Weid");

        aluno2.adicionarNota(3.0);
        aluno2.adicionarNota(4.0);
        aluno2.adicionarNota(5.0);
        aluno2.adicionarNota(6.0);
        aluno2.adicionarNota(9.0);
        aluno2.adicionarNota(10.0);
        aluno2.adicionarNota(-10.0);

       System.out.println("Total de notas Invalidas: " + aluno2.getNotasInvalidas());
        System.out.println(aluno2.notasInvalidas());




    }

}

import java.util.ArrayList;

public class Aluno2 {
    private String nomeDisciplina;
    private ArrayList<Double> notas;
    private ArrayList<Double> notasNegativas;
    private int notasInvalidas;


    public Aluno2(String nomeDisciplina) {
        this.nomeDisciplina = nomeDisciplina;
        this.notas = new ArrayList<>();
        this.notasNegativas = new ArrayList<>();
    }

    public int getNotasInvalidas() {
        return notasInvalidas;
    }

    public ArrayList<Double> getNotas() {
        return notas;
    }

    public void adicionarNota(Double nota){
        if(nota >=1 && nota <=10){
            notas.add(nota);

        } else{
            notasInvalidas++;
            notasNegativas.add(nota);
        }
    }

    public double calculaMedia(){
        int soma = 0;
        for(double nota : notas){
            soma+=nota;

        }

        double media = (double) soma/notas.size();
        return  Math.round(media * 100.0)/100.0;
    }


    public String notasInvalidas (){
        return "Notas invalidas Ignoradas : " + notasNegativas;
    }



}
1 resposta
solução!

Olá, Weid! Tudo bem?

No geral, a sua solução está correta, mas acabou ficando mais robusta do que o exercício pedia.

Enquanto a proposta era apenas desconsiderar notas inválidas, você optou por armazená-las, criando uma espécie de controle de erros. Essa abordagem faz bastante sentido em cenários reais de back-end e mostra um bom raciocínio.

Analisando o código, há apenas alguns pontos de ajuste para que a lógica funcione corretamente e o programa rode sem comportamentos inesperados.

O primeiro deles está no tipo da variável soma. No método calculaMedia, ela foi declarada como int, mas como as notas são double, isso faz com que a parte decimal seja descartada durante os cálculos. Para evitar esse problema, o ideal é que a variável também seja do tipo double.

Outro ponto está na validação do intervalo da nota. Atualmente, a condição começa em nota >= 1, mas o valor 0 normalmente também é considerado uma nota válida. Nesse caso, o mais adequado seria validar a partir de nota >= 0.

Fora esses ajustes, a separação de responsabilidades entre os métodos está muito boa e demonstra que você já está aplicando corretamente o conceito de encapsulamento.

Continue nesse caminho. Esse tipo de pensamento mais cuidadoso e estruturado é um ótimo sinal de evolução na programação
Bons estudos!

Sucesso

Imagem da comunidade