Jump to content

Adicionar aluno em array


supaturk
 Share

Recommended Posts

saudações!

preciso de ajuda nesse método,onde preciso armazenar um aluno em uma dada posição do Array,

n estou a perceber.

import java.util.Arrays;
   public class Vetor {

    private Alunos[] alunos = new Alunos[10];


   public void adicionap(int p, Alunos aluno){
    for(int i = 0; i < this.alunos.length; i++){
	    if(this.alunos[i] == null){
	    if( p >= 0 && p<= this.alunos.length ){
		    this.alunos[p] = aluno;
	    }
		    }


    }





}
Link to comment
Share on other sites

Olha bem para o objectivo da função.

Colocar o aluno "aluno" na posição "p" do array.

Não te parece que estas a complicar?

Volta a ler a frase anterior e tenda resolver isso sem da maneira mais simples que que te vier a cabeca

sim parece, eu não quero adicionar no fim da lista,quero adicionar na primeira posição vazia do array,ou

em alguma posição que ja estava ocupada,n consigo perceber isso.

Link to comment
Share on other sites

não posso colocar um aluno por cima do outro.

depende ...

sem tocar em assuntos de gestão de erro, a única coisa que necessitas de fazer é uma verificação inicial a determinar as seguintes situações:

- índice de inserção válido

- o elemento do array se encontra "vazio"

se isso for verdadeiro, insere o elemento no array, ponto

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

depende ...

sem tocar em assuntos de gestão de erro,

não posso porque o exercicio pede isso.

a única coisa que necessitas de fazer é uma verificação inicial a determinar as seguintes situações:

- índice de inserção válido

- o elemento do array se encontra "vazio"

se isso for verdadeiro, insere o elemento no array, ponto

Supatuk, o "for" ele percorre pra achar o valor vazio "null". Mas o exercício pede pra colocar num posição passada por parâmetro. Então tira o "for".

Já que você diz que só vai incluir se tiver vazio, então questio na se aluno[p] == null então inclui

public void adicionap(int p, Alunos aluno){
  if(p >= 0 && p <= alunos.length){
   if(alunos[p] == null){
 alunos[p] = aluno;

   } else
 System.out.println("posição" + " " + p + " ocupada.." );
  } 
}

tentei assim....

Link to comment
Share on other sites

não posso porque o exercicio pede isso.

eu acho é que nem percebeste o que disse nessa conjunto de palavras.

o que eu não queria falar é a gestão de erros, o que fazer quando a acção pretendida é impossibilitada por alguma razão:

- lanças uma excepção ?

- se não lanças uma excepção, como notificas que o aluno foi guardado ou não ?

- afinal o aluno irá ser guardado onde se não pode ser guardado na posição pedida ?

a questão é que sem resolver o problema base (insersão do aluno na posição do array), para quê pensar em extras ...

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

eu acho é que nem percebeste o que disse nessa conjunto de palavras.

o que eu não queria falar é a gestão de erros, o que fazer quando a acção pretendida é impossibilitada por alguma razão:

- lanças uma excepção ?

- se não lanças uma excepção, como notificas que o aluno foi guardado ou não ?

- afinal o aluno irá ser guardado onde se não pode ser guardado na posição pedida ?

a questão é que sem resolver o problema base (insersão do aluno na posição do array), para quê pensar em extras ...

eu concordo com voçê, mas sou vago nesse mundo de programação,e estou tentando me aprofundar,

tento resolver os exercicios sem olhar em foruns que dao respostas prontas,e o único fórum que conheço que ajudam a

resolver os problemas sem dá a resposta exata é aqui,assim acho progressivo.poderia analizar o código

e ajudar nesse sentido? o que falta para armazenar o dado aluno na referida posição?

Link to comment
Share on other sites

olha para o código que apresentaste anteriormente:

public void adicionap(int p, Alunos aluno){
  if(p >= 0 && p <= alunos.length){
   if(alunos[p] == null){
        alunos[p] = aluno;

   } else
        System.out.println("posição" + " " + p + " ocupada.." );
  } 
}

vamos lá colocar isto com uma indentação legível e analisar:

public void adicionap(int p, Alunos aluno){
   if(p >= 0 && p <= alunos.length){
       if(alunos[p] == null){ // <--- um "if" seguido de um segundo "if", em 90% dos casos, é tudo o mesmo "if"
           alunos[p] = aluno; // <--- guardar o aluno no array já está feito aqui
       } else
           System.out.println("posição" + " " + p + " ocupada.." );
   }
   // o que fazer caso p < que 0 ou p > alunos.length ??? aqui não tens nada
}
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

olha para o código que apresentaste anteriormente:

public void adicionap(int p, Alunos aluno){
  if(p >= 0 && p <= alunos.length){
if(alunos[p] == null){
	 alunos[p] = aluno;

} else
	 System.out.println("posição" + " " + p + " ocupada.." );
  }
}

vamos lá colocar isto com uma indentação legível e analisar:

public void adicionap(int p, Alunos aluno){
if(p >= 0 && p <= alunos.length){
	if(alunos[p] == null){ // <--- um "if" seguido de um segundo "if", em 90% dos casos, é tudo o mesmo "if"
		alunos[p] = aluno; // <--- guardar o aluno no array já está feito aqui
	} else
		System.out.println("posição" + " " + p + " ocupada.." );
}
// o que fazer caso p < que 0 ou p > alunos.length ??? aqui não tens nada
}

tentei mostrar uma exceção mas deu erro,mesmo colocando em uma posição válida.

vamos lá colocar isto com uma indentação legível e analisar:

public void adicionap(int p, Alunos aluno){
if(p >= 0 && p <= alunos.length){
	if(alunos[p] == null){ // <--- um "if" seguido de um segundo "if", em 90% dos casos, é tudo o mesmo "if"
		alunos[p] = aluno; // <--- guardar o aluno no array já está feito aqui
	} else
		System.out.println("posição" + " " + p + " ocupada.." );
}
// o que fazer caso p < que 0 ou p > alunos.length ??? aqui não tens nada
}

// o que fazer caso p < que 0 ou p > alunos.length ??? aqui não tens nada
deu um erro.
Link to comment
Share on other sites

tentei mostrar uma exceção mas deu erro,mesmo colocando em uma posição válida.

vamos lá colocar isto com uma indentação legível e analisar:

public void adicionap(int p, Alunos aluno){
		if(p >= 0 && p <= alunos.length){
			if(alunos[p] == null){
				alunos[p] = aluno;

			} else
				System.out.println("posição" + " " + p + " ocupada.." );
		}

		else {
			throw new IllegalArgumentException("posição" + " " + p + " " + "inválida.");
		}


}

// o que fazer caso p < que 0 ou p > alunos.length ??? aqui não tens nada

Link to comment
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
 Share

×
×
  • 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.