Notas

17 respostas Resolvido
java
Maria_Angela_Guerini

Estou tentado fazer um programa que recebe a nota obtida na primeira prova por todos os estudantes de uma turma e no final exiba quantas notas estão abaixo da nota mínima para aprovação (seis), quantos estão com nota regular (entre 6 e 7,9) e quantos estão com nota satisfatória (a partir de oito). Esse programa tem que exibir também a média geral das notas e média das notas em cada faixa (abaixo da média, regulares e satisfatórios).
isso que fiz, não ta dando muito certo:

int nota, alunos, maior = 1, menor = 1;
int media = 0;
int cont = 0;
alunos = Entrada.leiaInt("Quantos alunos tem em sua sala");
   for (int i = 0; i < alunos; i++)
   {
     nota = Entrada.leiaInt("Informe sua nota!");

     if ( nota < 6)
     {
       nota += cont;
       cont++;
       System.out.println("Notas a baixo da média: "+cont);

       if ((nota == 6) || (nota == 7) || (nota == 9))
       {
         System.out.println("Notas regulares: "+nota);
       }
       if (nota == 8)
       {
         System.out.println("Notas satisfatórias: "+nota);

Alguém pode me ajudar?

17 Respostas

Rodrigomarden

Você poderia descrever oque exatamente não está dando certo?

E no seu código está faltando fechar algumas chaves { }
Como a do for, a do primeiro if e do terceiro if. Recomendo utilizar else if no segundo e no terceiro.

Maria_Angela_Guerini

Olá, eu só não coloquei as chaves para a mensagem mão ficar muito grande. Bom, quando eu digito o numero de alunos, tipo 6, ele vai pedir 6 notas respectivamente, só que no final, a cada nota que digito, ele imprime uma mensagem. Eu só consegui fazer ate essa parte, o que estaria faltando depois disso seria calcular a media tambem, mas não fiz ainda pq estou seguindo passo por passo, até que empaquei nesse ai!

Rodrigomarden

Certo, eu fiz aqui mas não testei, rode e vê se atende ao que você quer.

int alunos, maior = 1, menor = 1;
int mediaGeral = 0, mediaAbaixo = 0, mediaRegular = 0, mediaSatisfatoria = 0;
int contAbaixo = 0, contRegular = 0, contSatisfatoria = 0;

alunos = Entrada.leiaInt("Quantos alunos tem em sua sala");

int notas[] = new int[alunos];

for (int i = 0; i < alunos; i++)
{
	nota[i] = Entrada.leiaInt("\nInforme a nota do aluno "+(i+1)+);
}

for (int i = 0; i < alunos; i++) {

mediaGeral++;

if ( nota[i] < 6)
{
	contAbaixo++;
	mediaAbaixo += nota[i];
}

else if (nota[i] >=6 && nota[i] <=7)
{
	contRegular++;
	mediaRegular += nota[i];
}
else if (nota <= 8)
{
	contSatisfatoria++;
	mediaSatisfatoria += nota[i];
}
}

System.out.printl("\nQuantidade de alunos com nota abaixo da média: "+ contAbaixo);
System.out.printl("\nQuantidade de alunos com nota regular: "+ contRegular);
System.out.printl("\nQuantidade de alunos com nota satisfatoria: "+ contSatisfatoria);
System.out.printl("\nMédia geral: "+ mediaGeral/alunos);
System.out.printl("\nMedia de notas abaixo de 6: "+ mediaAbaixo/contAbaixo);
System.out.printl("\nMedia de notas entre 6 e 7 (Regulares): "+ mediaRegular/contRegular);
System.out.printl("\nMedia de notas acima de 8 (Satisfatorias): "+ mediaSatisfatoria/contSatisfatoria);
Maria_Angela_Guerini

Ele deu erro nessa parte, ai eu tirei o ultimo + e ele apresentou 17 erros cannot find symbol!

Rodrigomarden

Tente agora:

int alunos, maior = 1, menor = 1;
int mediaGeral = 0, mediaAbaixo = 0, mediaRegular = 0, mediaSatisfatoria = 0;
int contAbaixo = 0, contRegular = 0, contSatisfatoria = 0;

alunos = Entrada.leiaInt("Quantos alunos tem em sua sala");

int notas[] = new int[alunos];

for (int i = 0; i < alunos; i++)
{
notas[i] = Entrada.leiaInt("\nInforme a nota do aluno "+(i+1));
}

for (int i = 0; i < alunos; i++) {

mediaGeral++;

if ( notas[i] < 6)
{
contAbaixo++;
mediaAbaixo += notas[i];
}

else if (notas[i] >=6 && notas[i] <=7)
{
contRegular++;
mediaRegular += notas[i];
}
else if (notas[i] <= 8)
{
contSatisfatoria++;
mediaSatisfatoria += notas[i];
}
}

System.out.println("\nQuantidade de alunos com nota abaixo da média: "+ contAbaixo);
System.out.println("\nQuantidade de alunos com nota regular: "+ contRegular);
System.out.println("\nQuantidade de alunos com nota satisfatoria: "+ contSatisfatoria);
System.out.println("\nMédia geral: "+ mediaGeral/alunos);
System.out.println("\nMedia de notas abaixo de 6: "+ mediaAbaixo/contAbaixo);
System.out.println("\nMedia de notas entre 6 e 7 (Regulares): "+ mediaRegular/contRegular);
System.out.println("\nMedia de notas acima de 8 (Satisfatorias): "+ mediaSatisfatoria/contSatisfatoria);
Maria_Angela_Guerini

Agora ele mostrou erro nas Entradas(cannot find symbol)!

Rodrigomarden

Eu nunca havia usado essa forma para ler valores em java, eu apenas copiei o que você colocou em seu código.
Você instanciou a classe Scanner, declarou o objeto para poder ler os valores?

Maria_Angela_Guerini

não usei a classe scanner, até porque so leiga nela ainda!

Rodrigomarden

De onde você está utilizando o Entrada.leiaInt então? É algum método na sua classe?

Maria_Angela_Guerini

A principio seria só pra ele armazenar o que fosse digitado em “alunos”

Rodrigomarden

Sim, isso eu entendo, mas de onde ela está vindo? está sendo importado de algum lugar? algum método ou classe?

Ela funciona em outros programas que você já fez?

Que IDE você está utilizando?

Maria_Angela_Guerini

Ele não esta sendo importado, nem classe e nem metodo! Eu uso o Drjava!

Rodrigomarden

É, eu nunca utilizei dessa forma e é estranho não estar vindo de nenhum lugar.
Para implementar o Scanner é bem fácil, basta apenas dar import na java.util.Scanner

E criar um objeto a partir dela: Scanner entrada = new Scanner(System.in);

Segue um link com um tutorial mais detalhado: http://www.javaprogressivo.net/2012/08/java-recebendo-dados-do-usuario-classe.html

Rodrigomarden
Solucao aceita

Eu realizei um teste no código aqui e está funcionando perfeitamente:

Scanner entrada = new Scanner(System.in);
	
int alunos, maior = 1, menor = 1;
float mediaGeral = 0, mediaAbaixo = 0, mediaRegular = 0, mediaSatisfatoria = 0;
int contAbaixo = 0, contRegular = 0, contSatisfatoria = 0;

System.out.println("Quantos alunos tem em sua sala");
alunos = entrada.nextInt();

int notas[] = new int[alunos];

for (int i = 0; i < alunos; i++)
{
	System.out.println("\nInforme a nota do aluno "+(i+1));
	notas[i] = entrada.nextInt();
}

for (int i = 0; i < alunos; i++) {

	mediaGeral += notas[i];

	if ( notas[i] < 6)
	{
		contAbaixo++;
		mediaAbaixo += notas[i];
	}

	else if (notas[i] >=6 && notas[i] <=7)
	{
		contRegular++;
		mediaRegular += notas[i];
	}
	else if (notas[i] >= 8)
	{
		contSatisfatoria++;
		mediaSatisfatoria += notas[i];
	}
}

System.out.println("\nQuantidade de alunos com nota abaixo da média: "+ contAbaixo);
System.out.println("\nQuantidade de alunos com nota regular: "+ contRegular);
System.out.println("\nQuantidade de alunos com nota satisfatoria: "+ contSatisfatoria);
System.out.println("\nMédia geral: "+ mediaGeral/alunos);
System.out.println("\nMedia de notas abaixo de 6: "+ mediaAbaixo/contAbaixo);
System.out.println("\nMedia de notas entre 6 e 7 (Regulares): "+ mediaRegular/contRegular);
System.out.println("\nMedia de notas acima de 8 (Satisfatorias): "+ mediaSatisfatoria/contSatisfatoria);
Maria_Angela_Guerini

Mds, deu certo, gente, muito obrigada!

H
import java.util.Scanner;

public class Wtestes {
    
    public void lerDados(){
        int alunos, maior = 1, menor = 1;
        float mediaGeral = 0, mediaAbaixo = 0, mediaRegular = 0, mediaSatisfatoria = 0;
        int contAbaixo = 0, contRegular = 0, contSatisfatoria = 0;

        Scanner ler = new Scanner(System.in);
        System.out.println("Quantos alunos tem em sua sala");
        alunos = ler.nextInt();

        float notas[] = new float[alunos];

        for (int i = 0; i < alunos; i++)
        {
            System.out.println("\nInforme a nota do aluno "+(i+1));
            notas[i] = ler.nextFloat();
        }

        for (int i = 0; i < alunos; i++) {

            mediaGeral += notas[i];

            if ( notas[i] < 6)
            {
                contAbaixo++;
                mediaAbaixo += notas[i];
            }

            else if (notas[i] >=6 && notas[i] <=7.9)
            {
                contRegular++;
                mediaRegular += notas[i];
            }
            else if (notas[i] >= 8)
            {
                contSatisfatoria++;
                mediaSatisfatoria += notas[i];
            }
        }

        System.out.println("\nQuantidade de alunos com nota abaixo da média: "+ contAbaixo);
        System.out.println("\nQuantidade de alunos com nota regular: "+ contRegular);
        System.out.println("\nQuantidade de alunos com nota satisfatoria: "+ contSatisfatoria);
        System.out.println("\nMédia geral: "+ mediaGeral/alunos);
        System.out.println("\nMedia de notas abaixo de 6: "+ mediaAbaixo/contAbaixo);
        System.out.println("\nMedia de notas entre 6 e 7 (Regulares): "+ mediaRegular/contRegular);
        System.out.println("\nMedia de notas acima de 8 (Satisfatorias): "+ mediaSatisfatoria/contSatisfatoria);

    }

    public static void main(String[] args) {
        Wtestes teste = new Wtestes();
        teste.lerDados();
    }
}

Eu fiz desse jeito, com algumas mudanças de notas para float pois pode ser decimais. Teste ai!

Rodrigomarden

De nada,
Recomendo estudar um pouco sobre o scanner e entender o código, pois pelo seu código inicial dá para ver que você teve um pouco de dificuldade em entender oque se pedia exatamente.

Criado 12 de abril de 2017
Ultima resposta 12 de abr. de 2017
Respostas 17
Participantes 3