[color=darkred]Pessoal, estou com problemas em um trabalho aqui.
Preciso cria um método que exclua um determinado item da fila.
O código que eu tenho é o seguinte.[/color]
importjavax.swing.JOptionPane;classFilas{privateinttamanho;privateString[]fila;privateintqtde;publicFilas(intx){tamanho=x;fila=newString[tamanho];qtde=-1;}publicvoidpush(){if(qtde==tamanho-1){JOptionPane.showMessageDialog(null,"Fila cheia...");return;}qtde++;fila[qtde]=JOptionPane.showInputDialog("Entre com o nome: ");printall();}publicvoidprintall(){if(qtde==-1)JOptionPane.showMessageDialog(null,"Fila vazia...");else{Stringstr="Fila atual:\n";String[]fila_aux=newString[tamanho];//nao pode ser qtde+1 por causa de fila=fila_aux//Transfere para fila auxiliarfor(inti=0;i<=qtde;i++){str+=fila[i]+"\n";fila_aux[i]=fila[i];fila[i]=null;//apaga conteúdo}fila=fila_aux;JOptionPane.showMessageDialog(null,str);}}}classJ_Exerc1{publicstaticvoidmain(Stringargs[]){FilasaFila=newFilas(4);intmenu=0;menu=Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada...\n"+"1- Inserir"+"\n2- Excluir"+"\n3- Imprimir"));switch(menu){case1:aFila.push();case2:aFila.printall();}}}
[color=darkred]Li alguns tópicos, mas sou iniciante em java, e não consegui achar um lógica plausível para me ajudar.
Se puderem eu ficaria agradecido.
Obrigado![/color]
Cuidado que em Java, sempre que você terminar um case, é aconselhável você usar um break, senão vai ter alguns problemas.
Já começou a escrever o método "pop" (excluir)?
Isso mesmo, foi erro meu :)
Apenas esqueci de colocar...
É exatamente isso que eu preciso saber como que faz, é usando o método POP que se exclui?
E
entanglement
Em vez de “push” e “pop” eu daria os nomes de “incluir” (ou inserir) e “excluir” (ou remover) , se você está fazendo isso como um trabalho de escola.
Acho que é mais certinho usar os nomes que o professor deu às operações da fila - se ele usou “push” e “pop”, use “push” e “pop”.
Se ele usou “anhäufen” e “entstapeln” use “anhaeufen” e “entstapeln” - sei lá se seu professor é alemão ou japonês (nesse caso, segundo o Google Translator, “積み重ね” e “スタックを解除” - sei lá se isso está certo
R
rcarauta
E ae cara estou passando o que fiz até agora resolvi o problema já está inserindo o que faltou foi colocar o comando break depois do case porque se não todos os cases acontecerão e como é uma repetição deve ser colocado um loop while para continua inserindo até lota ou vc digitar sair está assim até agora:
classFilas{privateinttamanho;privateString[]fila;privateintqtde;publicFilas(intx){tamanho=x;fila=newString[tamanho];qtde=-1;}publicvoidpush(){if(qtde==tamanho-1){JOptionPane.showMessageDialog(null,"Fila cheia...");return;}qtde++;fila[qtde]=JOptionPane.showInputDialog("Entre com o nome: ");printall();}publicvoidprintall(){if(qtde==-1)JOptionPane.showMessageDialog(null,"Fila vazia...");else{Stringstr="Fila atual:\n";String[]fila_aux=newString[tamanho];//nao pode ser qtde+1 por causa de fila=fila_aux //Transfere para fila auxiliar for(inti=0;i<=qtde;i++){str+=fila[i]+"\n";fila_aux[i]=fila[i];fila[i]=null;//apaga conteúdo }fila=fila_aux;JOptionPane.showMessageDialog(null,str);}}}publicclassTrabalho{publicstaticvoidmain(Stringargs[]){FilasaFila=newFilas(4);booleansair=true;while(sair){intmenu=0;menu=Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada...\n"+"1- Inserir"+"\n2- Excluir"+"\n3- Imprimir\n4 - Sair"));switch(menu){case1:aFila.push();break;case2:aFila.printall();break;case4:sair=false;break;}}}}
Não passou nem 30 minutos e vc simplesmente criou o mesmo post novamente.
Aprenda a esperar e não poluir o tópico.
Da próxima vez espere algumas horas, caso alguém não responde poste algum comentário no seu próprio post.
Duplicar post é contra a regra do forum.
F
FreyBonan
Cara, acho que eu fiz sem querer…
Não fiz por mal, dei dois cliques na tela e foi pra opção de editar.
Aí eu mandei um enviar, mas nem vi que duplicou.
Foi mal…
Bom pessoa, e quanto ao método excluir?
Alguém pode me dar uma força?
Obrigado pela ajuda nos nomes, e break
F
FreyBonan
rcarauta:
E ae cara estou passando o que fiz até agora resolvi o problema já está inserindo o que faltou foi colocar o comando break depois do case porque se não todos os cases acontecerão e como é uma repetição deve ser colocado um loop while para continua inserindo até lota ou vc digitar sair está assim até agora:
classFilas{privateinttamanho;privateString[]fila;privateintqtde;publicFilas(intx){tamanho=x;fila=newString[tamanho];qtde=-1;}publicvoidpush(){if(qtde==tamanho-1){JOptionPane.showMessageDialog(null,"Fila cheia...");return;}qtde++;fila[qtde]=JOptionPane.showInputDialog("Entre com o nome: ");printall();}publicvoidprintall(){if(qtde==-1)JOptionPane.showMessageDialog(null,"Fila vazia...");else{Stringstr="Fila atual:\n";String[]fila_aux=newString[tamanho];//nao pode ser qtde+1 por causa de fila=fila_aux //Transfere para fila auxiliar for(inti=0;i<=qtde;i++){str+=fila[i]+"\n";fila_aux[i]=fila[i];fila[i]=null;//apaga conteúdo }fila=fila_aux;JOptionPane.showMessageDialog(null,str);}}}publicclassTrabalho{publicstaticvoidmain(Stringargs[]){FilasaFila=newFilas(4);booleansair=true;while(sair){intmenu=0;menu=Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada...\n"+"1- Inserir"+"\n2- Excluir"+"\n3- Imprimir\n4 - Sair"));switch(menu){case1:aFila.push();break;case2:aFila.printall();break;case4:sair=false;break;}}}}
Qualquer dúvida só me fala abraço
Opa, agora sim :)
E quanto ao método excluir?
Pode me dar uma dica?
Obrigado
E
entanglement
É o contrário do método push, não?
Se alguma coisa vai ser incrementada no push, ela deve ser decrementada no pop
R
rcarauta
Fiz essa solução aqui pode haver soluções melhores, mas essa funciona legal da uma olhada ai. Ta imprimindo, saindo, inserindo, e excluindo. Ele nesse código ta excluindo sempre o ultimo item da uma olhada.
importjavax.swing.JOptionPane;classFilas{privateinttamanho;privateString[]fila;privateintqtde;publicFilas(intx){tamanho=x;fila=newString[tamanho];qtde=-1;}publicvoidpush(){if(qtde==tamanho-1){JOptionPane.showMessageDialog(null,"Fila cheia...");return;}qtde++;fila[qtde]=JOptionPane.showInputDialog("Entre com o nome: ");printall();}publicvoidpop(){for(inti=0;i<fila.length;i++){if(qtde==i){fila[i]="n";qtde--;}}printall();}publicvoidprintall(){if(qtde==-1)JOptionPane.showMessageDialog(null,"Fila vazia...");else{Stringstr="Fila atual:\n";String[]fila_aux=newString[tamanho];// nao pode ser qtde+1 por// causa de// fila=fila_aux// Transfere para fila auxiliarfor(inti=0;i<=qtde;i++){if(fila[i]!="n"){str+=fila[i]+"\n";fila_aux[i]=fila[i];fila[i]=null;}// apaga conteúdo}fila=fila_aux;JOptionPane.showMessageDialog(null,str);}}}publicclassTrabalho{publicstaticvoidmain(Stringargs[]){FilasaFila=newFilas(4);booleansair=true;while(sair){intmenu=0;menu=Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada...\n"+"1- Inserir"+"\n2- Excluir"+"\n3- Imprimir\n4 - Sair"));switch(menu){case1:aFila.push();break;case2:aFila.pop();break;case3:aFila.printall();break;case4:sair=false;break;}}}}
F
FreyBonan
rcarauta:
Fiz essa solução aqui pode haver soluções melhores, mas essa funciona legal da uma olhada ai. Ta imprimindo, saindo, inserindo, e excluindo. Ele nesse código ta excluindo sempre o ultimo item da uma olhada.
importjavax.swing.JOptionPane;classFilas{privateinttamanho;privateString[]fila;privateintqtde;publicFilas(intx){tamanho=x;fila=newString[tamanho];qtde=-1;}publicvoidpush(){if(qtde==tamanho-1){JOptionPane.showMessageDialog(null,"Fila cheia...");return;}qtde++;fila[qtde]=JOptionPane.showInputDialog("Entre com o nome: ");printall();}publicvoidpop(){for(inti=0;i<fila.length;i++){if(qtde==i){fila[i]="n";qtde--;}}printall();}publicvoidprintall(){if(qtde==-1)JOptionPane.showMessageDialog(null,"Fila vazia...");else{Stringstr="Fila atual:\n";String[]fila_aux=newString[tamanho];// nao pode ser qtde+1 por// causa de// fila=fila_aux// Transfere para fila auxiliarfor(inti=0;i<=qtde;i++){if(fila[i]!="n"){str+=fila[i]+"\n";fila_aux[i]=fila[i];fila[i]=null;}// apaga conteúdo}fila=fila_aux;JOptionPane.showMessageDialog(null,str);}}}publicclassTrabalho{publicstaticvoidmain(Stringargs[]){FilasaFila=newFilas(4);booleansair=true;while(sair){intmenu=0;menu=Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada...\n"+"1- Inserir"+"\n2- Excluir"+"\n3- Imprimir\n4 - Sair"));switch(menu){case1:aFila.push();break;case2:aFila.pop();break;case3:aFila.printall();break;case4:sair=false;break;}}}}
Muito bom cara!
Era isso mesmo que eu queria saber, principalmente a parte comentada!
Continuarei postando dúvidas aqui, e, espero que me continuem me ajudando HAHA
Obrigado pessoal!