Jump to content
pedro_15

Classificações de alunos com array bidimensional

Recommended Posts

pedro_15

import java.util.Scanner;
public class exercicio_2 {
    public static void main(String[] args) {
        int quantidade;
        double media = 0;
        System.out.println("Informe a quantidade de notas:");
        quantidade = new Scanner(System.in).nextInt();
        double vetor[];
        vetor=new double[quantidade];
        for(int i=0 ; i <quantidade ; i++){
            System.out.println("Informe a " +(i+1)+ "ª nota");
            vetor[i]=new Scanner(System.in).nextInt();
        }
        for(int i=0 ; i <quantidade ; i++){
            media = media + vetor[i];
        }
        media = media / quantidade;
        System.out.println ("A média é              : " +media);
        String maior= "Nota(s) acima média    : ", menor= "Nota(s) abaixo da média: ";
        for(int i=0 ; i<quantidade ;i++){
            if(vetor[i]> media){
                maior = maior + vetor[i]+"    ";
            }else{

                menor = menor + vetor[i]+"    ";
            }
        }
        System.out.println(maior);
        System.out.println(menor);
    }
}

Alguem me podera ajudar , e dizer onde estão os erros neste codigo?

Obrigado

Share this post


Link to post
Share on other sites
brunoais

O que é que ele faz que não devia?

O que é que ele não faz que devia fazer?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
pedro_15

O problema é que não sei como fazer as classificaçoes dos 5 alunos em 3 disciplinas.

Share this post


Link to post
Share on other sites
Colector Boy

"Pretende-se pedir ao utilizador as classificações de 5 alunos em 3 disciplinas diferentes (portugues,matematica,ingles). ....utilize um array dimensional.."

Podes utilizar um vector de doubles bidimensional.

Com 3 linhas uma para cada disciplina.

E cada linha com 5 "casas" uma vez que são 5 alunos.

"indique a maior e menor nota da disciplina de matematica"

crias 2 variáveis:

double max=0,min=20;

//dentro do ciclo for

//i-> índice da disciplina

//j->índice do aluno

se max<notas[j] entao

max=notas[j]

se min>notas[j] entao

min=notas[j]

como vês nada de muito difícil

"indique o numero de classificações inferiores a 10 por aluno"

//n_alunos ->numero de alunos

int negas[]=new int[n_alunos];

//também dentro do ciclo

se notas[j]<10 então

negas[j]=negas[j]+1

Já percebeste?

Dei algumas luzes?

Share this post


Link to post
Share on other sites
Colector Boy

1->Deves sempre indentar o código, ou seja, dar determinada formatação:

2-> faltam-te os ciclos fors para percorrer a matriz


import java.util.Scanner;
public class exercicio_2
{
     public static void main(String[] args)
    {
        double max=0,min=20,media=0;
        int i,j,notas,min,max;             //notas nao devia ser uma matriz?
        vetor=new double[quantidade];               //o que e o vector?
       System.out.println("Informe a quantidade de notas:");
       quantidade = new Scanner(System.in).nextInt();
      if max<notas[j]  //onde esta o entao?
      else
     max=notas[j]
    System.out.println("Informe a " +(i+1)+ "ª nota");
 }
     //este código fica dentro do main

     if min>notas[j] else
     System.out.println("Informe a " +(j+1)+ "ª nota");
    min=notas[j]

  quantidade=max+min;
  int negas[]=new int[n_alunos];


  se notas[j]<10 else
  negas[j]=negas[j]+1

  system.out.println (min);
  system.out.println (max);


3->Não faças isto:

if(a>b) system.out.println("a>b") else system.out.println("a<=b?")

Em vez disso faz:

   if(a>b)
   {
     system.out.println("a>b")
  }
  else
  {
    system.out.println("a<=b?")
  }

Pois assim sabes sempre o que está dentro do if e do else e podes acrescentar N linhas.

Se não colocares as chavetas so podes ter uma única instrução

4->

//n_alunos ->numero de alunos

int negas[]=new int[n_alunos]; //contem as negativas de cada aluno

"Podes utilizar um vector de doubles bidimensional.

Com 3 linhas uma para cada disciplina.

E cada linha com 5 "casas" uma vez que são 5 alunos."

Onde está a matriz que disse que podias utilizar?

Só vejo ai um vector.

Tens de fazer algo do género:

double disc[][]=new double[3][5]; //contem as notas dos 5 alunos na 3 disciplinas

podes e deves utilizar variáveis n_disciplinas e n_alunos que são respectivamente o numero de disciplinas e numero de alunos

desta forma o teu programa funciona para vários casos

ficando assim:

double disc[][]=new double[n_disciplinas][n_alunos];

"crias 2 variáveis:

double max=0,min=20;"

as variáveis estão criadas

não tens os ciclos fors para fazer a procura

os ciclos fors são algo deste género: (mais coisa menos coisa)

 for(i=0;i<n_disciplinas;i++)  //i-> índice da disciplina
     {
         for(j=0;j<n_alunos;j++)   //j->índice do aluno
        {
            if (notas[j]<10)
           {
             negas[j]=negas[j]+1
           }

           if (max<notas[j])
         {
           max=notas[j]
         }
         if (min>notas[j])
        {
          min=notas[j]"
        }
     }
}

Já percebeste?

Share this post


Link to post
Share on other sites
Colector Boy

De nada.

1->Devias colocar aqui a evolução do código.

Para ficar como registo.

Para o caso de alguém ter a mesma duvida.

2-> Continuas com erros no código.

Vê bem.

Tens erros no código que me mandaste.

O que raio é isto?

 if max<notas[j]  
       else
      max=notas[j]

No meu post anterior disse-te como devias fazer os ifs.

Falta a condição do if.

As declarações das variáveis devem ser feitas todas no inicio da função.

As inicializações das variáveis devem ser feitas todas no inicio da função e de preferência quando as declaras salvo uma ou outra excepção.

Vê bem o código que me mandaste.

Não está bem estruturado.

Vê com calma e não tenhas pressa desta forma obtens um código estruturado e correcto.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.