Erro de Sintaxe? [RESOLVIDO]

2 respostas
LucasAdri07

Olá pessoal.

Fiz esse calculo de média para ver se o aluno é dispensado da escola após o fim do perdiodo de curso ou se é retido.

public class MediaFinalAluno {

    public static void main(String[] args) {
        double nota1ano1 = 10;
        double nota2ano1 = 8;
        double nota3ano1 = 8;
        double nota4ano1 = 7;
        double nota5ano1 = 5;
        double nota6ano1 = 9;
        double nota7ano1 = 4;
        double nota8ano1 = 8;
        double nota9ano1 = 6;
        double nota10ano1 = 10;
        double nota11ano1 = 9;
        double nota12ano1 = 8;
        double mediaPrimeiroBimestre = nota1ano1 + nota2ano1 + nota3ano1;
        double mediaSegundoBimestre = nota4ano1 + nota5ano1 + nota6ano1;
        double mediaTerceiroBimestre = nota7ano1 + nota8ano1 + nota9ano1;
        double mediaQuartoBimestre = nota10ano1 + nota11ano1 + nota12ano1;
        double mediaFinalAlunoAno1 = mediaPrimeiroBimestre / 3 + mediaSegundoBimestre / 3 + mediaTerceiroBimestre / 3 + mediaQuartoBimestre / 3;
        mediaFinalAlunoAno1 = mediaFinalAlunoAno1 / 4;
        System.out.println("Resultado Escolar 1º Ano do Ensino Médio");
        System.out.printf("\nMedia do Primeiro Bimestre = %.1f %n", (mediaPrimeiroBimestre / 3));
        System.out.printf("Media do Segundo Bimestre = %.1f %n", (mediaSegundoBimestre / 3));
        System.out.printf("Media do Terceiro Bimestre = %.1f %n", (mediaTerceiroBimestre / 3));
        System.out.printf("Media do Quarto Bimestre = %.1f %n", (mediaQuartoBimestre / 3));
        System.out.printf("Media Final do Aluno = %.1f %n", (mediaFinalAlunoAno1));
        if (mediaFinalAlunoAno1 > 7) {
            System.out.println("\nAluno Aprovado");
        } else if (mediaFinalAlunoAno1 < 5) {
            System.out.println("\nReprovado");
        } else {
            System.out.println("\nAluno Aprovado Com Dependencia");
        }
        double nota1ano2 = 8;
        double nota2ano2 = 10;
        double nota3ano2 = 7;
        double nota4ano2 = 6;
        double nota5ano2 = 4;
        double nota6ano2 = 8;
        double nota7ano2 = 9;
        double nota8ano2 = 10;
        double nota9ano2 = 4;
        double nota10ano2 = 3;
        double nota11ano2 = 8;
        double nota12ano2 = 5;
        double mediaPrimeiroBimestreAno2 = nota1ano2 + nota2ano2 + nota3ano2;
        double mediaSegundoBimestreAno2 = nota4ano2 + nota5ano2 + nota6ano2;
        double mediaTerceiroBimestreAno2 = nota7ano2 + nota8ano2 + nota9ano2;
        double mediaQuartoBimestreAno2 = nota10ano2 + nota11ano2 + nota12ano2;
        double mediaFinalAlunoAno2 = mediaPrimeiroBimestreAno2 / 3 + mediaSegundoBimestreAno2 / 3 + mediaTerceiroBimestreAno2 / 3 + mediaQuartoBimestreAno2 / 3;
        mediaFinalAlunoAno2 = mediaFinalAlunoAno2 / 4;
        System.out.println("\nResultado Escolar 2º Ano do Ensino Médio");
        System.out.printf("\nMedia do Primeiro Bimestre = %.1f %n", (mediaPrimeiroBimestreAno2 / 3));
        System.out.printf("Media do Segundo Bimestre = %.1f %n", (mediaSegundoBimestreAno2 / 3));
        System.out.printf("Media do Terceiro Bimestre = %.1f %n", (mediaTerceiroBimestreAno2 / 3));
        System.out.printf("Media do Quarto Bimestre = %.1f %n", (mediaQuartoBimestreAno2 / 3));
        System.out.printf("Media Final do Aluno = %.1f %n", (mediaFinalAlunoAno2));
        if (mediaFinalAlunoAno2 > 7) {
            System.out.println("\nAluno Aprovado");
        } else if (mediaFinalAlunoAno2 < 5) {
            System.out.println("\nReprovado");
        } else {
            System.out.println("\nAluno Aprovado Com Dependencia");
        }

        double nota1ano3 = 7;
        double nota2ano3 = 4;
        double nota3ano3 = 9;
        double nota4ano3 = 5;
        double nota5ano3 = 2;
        double nota6ano3 = 4;
        double nota7ano3 = 5;
        double nota8ano3 = 10;
        double nota9ano3 = 7;
        double nota10ano3 = 5;
        double nota11ano3 = 6;
        double nota12ano3 = 4;
        double mediaPrimeiroBimestreAno3 = nota1ano3 + nota2ano3 + nota3ano3;
        double mediaSegundoBimestreAno3 = nota4ano3 + nota5ano3 + nota6ano3;
        double mediaTerceiroBimestreAno3 = nota7ano3 + nota8ano3 + nota9ano3;
        double mediaQuartoBimestreAno3 = nota10ano3 + nota11ano3 + nota12ano3;
        double mediaFinalAlunoAno3 = mediaPrimeiroBimestreAno3 / 3 + mediaSegundoBimestreAno3 / 3 + mediaTerceiroBimestreAno3 / 3 + mediaQuartoBimestreAno3 / 3;
        mediaFinalAlunoAno3 = mediaFinalAlunoAno3 / 4;
        double mediaFinalAlunoTotal = mediaFinalAlunoAno1 + mediaFinalAlunoAno2 + mediaFinalAlunoAno3 / 3;
        System.out.println("\nResultado Escolar 3º Ano do Ensino Médio");
        System.out.printf("\nMedia do Primeiro Bimestre = %.1f %n", (mediaPrimeiroBimestreAno3 / 3));
        System.out.printf("Media do Segundo Bimestre = %.1f %n", (mediaSegundoBimestreAno3 / 3));
        System.out.printf("Media do Terceiro Bimestre = %.1f %n", (mediaTerceiroBimestreAno3 / 3));
        System.out.printf("Media do Quarto Bimestre = %.1f %n", (mediaQuartoBimestreAno3 / 3));
        System.out.printf("Media Final Aluno = %.1f %n", (mediaFinalAlunoAno3));
        if (mediaFinalAlunoAno3 > 7) {
            System.out.println("\nAluno Aprovado");
        } else if (mediaFinalAlunoAno3 < 5) {
            System.out.println("\nReprovado");
        } else {
            System.out.println("\nAluno Aprovado Com Dependencia");
        }
        System.out.printf("\nMedia Final do Aluno Após o Periodo do Curso = %.1f %n", (mediaFinalAlunoTotal));
        if (mediaFinalAlunoTotal > 5) {
            System.out.println("\nAluno atingiu a média e concluiu o curso com sucesso.");
        } else {
            System.out.println("\nAluno não atingiu a média suficiente para a conclusão do curso.");
        }
    }
}

Porem na hora de imprimir o valor da Media Final do Aluno Após o Periodo do Curso ele imprimi com valores errados, gostaria de saber onde está o erro na hora de ele calcular esse valor final.

O resultado acaba saindo assim:

Resultado Escolar 1º Ano do Ensino Médio

Media do Primeiro Bimestre = 8,7
Media do Segundo Bimestre = 7,0
Media do Terceiro Bimestre = 6,0
Media do Quarto Bimestre = 9,0
Media Final do Aluno = 7,7

Aluno Aprovado

Resultado Escolar 2º Ano do Ensino Médio

Media do Primeiro Bimestre = 8,3
Media do Segundo Bimestre = 6,0
Media do Terceiro Bimestre = 7,7
Media do Quarto Bimestre = 5,3
Media Final do Aluno = 6,8

Aluno Aprovado Com Dependencia

Resultado Escolar 3º Ano do Ensino Médio

Media do Primeiro Bimestre = 6,7
Media do Segundo Bimestre = 3,7
Media do Terceiro Bimestre = 7,3
Media do Quarto Bimestre = 5,0
Media Final Aluno = 5,7

Aluno Aprovado Com Dependencia

Media Final do Aluno Após o Periodo do Curso = 16,4

Aluno atingiu a média e concluiu o curso com sucesso.

No caso o valor em negrito está errado.

2 Respostas

marcelo.bellissimo

É um problema em como você escreveu o cálculo, você não levou em conta a ordem de precedência das operações. Veja:

double mediaFinalAlunoTotal = mediaFinalAlunoAno1 + mediaFinalAlunoAno2 + mediaFinalAlunoAno3 / 3;

Deste jeito, a divisão será executada antes das somas. Pra corrigir, faça isso:

double mediaFinalAlunoTotal = (mediaFinalAlunoAno1 + mediaFinalAlunoAno2 + mediaFinalAlunoAno3) / 3;

Os parenteses tem preferencia sobre todos os operadores, então o que estiver dentro dele será executado primeiro.

LucasAdri07

Valeu Marcelo, realmente era esse problema, corrigi e está normal agora.
Vlws :smiley:

Criado 18 de março de 2010
Ultima resposta 18 de mar. de 2010
Respostas 2
Participantes 2