supaturk Posted November 14, 2015 at 04:08 PM Report Share #589689 Posted November 14, 2015 at 04:08 PM 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 More sharing options...
HappyHippyHippo Posted November 14, 2015 at 04:20 PM Report Share #589690 Posted November 14, 2015 at 04:20 PM 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 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
supaturk Posted November 14, 2015 at 04:27 PM Author Report Share #589691 Posted November 14, 2015 at 04:27 PM 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 More sharing options...
Hercles Posted November 14, 2015 at 04:46 PM Report Share #589692 Posted November 14, 2015 at 04:46 PM O metodo recebe um posição, certo? O que vc quer? Percorrer e achar a posição vazia ou incluir na posição passada por parâmetro? Link to comment Share on other sites More sharing options...
supaturk Posted November 14, 2015 at 04:49 PM Author Report Share #589693 Posted November 14, 2015 at 04:49 PM O metodo recebe um posição, certo? O que vc quer? Percorrer e achar a posição vazia ou incluir na posição passada por parâmetro? incluir na posição passada por parâmetro. Link to comment Share on other sites More sharing options...
Hercles Posted November 14, 2015 at 04:54 PM Report Share #589694 Posted November 14, 2015 at 04:54 PM Existe alguma condição no exercício dizendo que só vai armazenar se tiver vazio? Link to comment Share on other sites More sharing options...
supaturk Posted November 14, 2015 at 05:04 PM Author Report Share #589696 Posted November 14, 2015 at 05:04 PM Existe alguma condição no exercício dizendo que só vai armazenar se tiver vazio? if(this.alunos == null) Link to comment Share on other sites More sharing options...
Hercles Posted November 14, 2015 at 05:09 PM Report Share #589697 Posted November 14, 2015 at 05:09 PM Não e isso. O que eu entendi e que o exército pede só pra colocar na posicao passada por parametro no array ... Acho legal vc fazer a condição pra Nao tenta colocar fora do array. O que daria erro... Mas o for e desnecessário Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted November 14, 2015 at 05:51 PM Report Share #589701 Posted November 14, 2015 at 05:51 PM Já reparaste que estas a pedir duas coisas diferentes? Ou queres meter onde não existe nada ou queres meter num a posição especifica. Dessa forma qualquer tipo de tentativa de ajuda tornasse frustrante. 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
supaturk Posted November 14, 2015 at 06:00 PM Author Report Share #589702 Posted November 14, 2015 at 06:00 PM Quero passar a posição por parâmetro, e na chamada do metodo no main passar o valor da posicao, se tiver vazio eu adicionou um aluno.talvez tenha me expressado mal. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted November 14, 2015 at 06:11 PM Report Share #589703 Posted November 14, 2015 at 06:11 PM E continuas a não dizer com clareza o que deve fazer. Se adicionas ae a posição estiver vazia, o que acontece se não estiver? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
supaturk Posted November 14, 2015 at 06:33 PM Author Report Share #589705 Posted November 14, 2015 at 06:33 PM Aí eu não vou poder colocar, esse não é o propósito, não posso colocar um aluno por cima do outro. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted November 14, 2015 at 06:39 PM Report Share #589706 Posted November 14, 2015 at 06:39 PM 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 Portugol Plus Link to comment Share on other sites More sharing options...
Hercles Posted November 14, 2015 at 08:15 PM Report Share #589709 Posted November 14, 2015 at 08:15 PM 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 Link to comment Share on other sites More sharing options...
supaturk Posted November 15, 2015 at 12:14 PM Author Report Share #589737 Posted November 15, 2015 at 12:14 PM 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 More sharing options...
HappyHippyHippo Posted November 15, 2015 at 12:16 PM Report Share #589738 Posted November 15, 2015 at 12:16 PM 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 Portugol Plus Link to comment Share on other sites More sharing options...
supaturk Posted November 15, 2015 at 12:29 PM Author Report Share #589740 Posted November 15, 2015 at 12:29 PM 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 More sharing options...
HappyHippyHippo Posted November 15, 2015 at 12:37 PM Report Share #589741 Posted November 15, 2015 at 12:37 PM 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 Portugol Plus Link to comment Share on other sites More sharing options...
supaturk Posted November 15, 2015 at 01:12 PM Author Report Share #589742 Posted November 15, 2015 at 01:12 PM 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 More sharing options...
supaturk Posted November 15, 2015 at 01:51 PM Author Report Share #589743 Posted November 15, 2015 at 01:51 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now