Obrigado. Está resolvido
Resolvido
18 Respostas
Meu Deus…
Pessoal consegue programar estruturado em Java 
Meu Deus…Pessoal consegue programar estruturado em Java
![]()
não entendi… pode-me ajudar?
Meu Deus…Pessoal consegue programar estruturado em Java
![]()
Isso não é programação estruturada é só programação de iniciante.
@Unable
Assim cara, ou tu usa a classe Arrays que tem muitos métodos estáticos para ajudar na manipulação de arrays, o método que tu necessita é o Arrays.sort.
Ou então tu faz métodos na mão para comparar as Strings com compareTo().
Desculpa a indelicadeza,
mas não estamos aqui pra fazer o trabalho para você, e sim pra tirar dúvidas 8)
@Lucas Rinaldi, realmente… depois que fui ver que tava no java básico, quando tava aprendendo também fazia assim 
Meu Deus...Pessoal consegue programar estruturado em Java :(
Isso não é programação estruturada é só programação de iniciante.
@Unable
Assim cara, ou tu usa a classe Arrays que tem muitos métodos estáticos para ajudar na manipulação de arrays, o método que tu necessita é o Arrays.sort.Ou então tu faz métodos na mão para comparar as Strings com compareTo().
eu meti java básico....
eu sei que não tão para fazer o meu trabalho...
mas eu não sei mesmo como fazer....
já usei o array.sort mas da-me erro
case 7:{
Arrays.sort(nomes);
}
Exception in thread "main" java.lang.NullPointerException
at java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:291)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:157)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
at java.util.Arrays.sort(Arrays.java:466)
eu so tenho java à 2 meses precisava mesmo de uma ajuda
Desculpa a indelicadeza,mas não estamos aqui pra fazer o trabalho para você, e sim pra tirar dúvidas 8)
@Lucas Rinaldi, realmente… depois que fui ver que tava no java básico, quando tava aprendendo também fazia assim :P
drigo eu não quero que você me faça trabalho… só quero que me ajude com o erro que tou tendo
OK, começando, o padrão Java é nomes de variáveis começarem com letras minúsculas… quando você coloca, por exemplo
int premio=250, Opção, inscritos=-1,Quem;
Você acaba confundindo quem olha seu código…
então vamos começar pensando no problema:
7 - Ordenar uma lista pelos nomes
8 - Ordenar uma lista pelo número de prêmios
Uma forma bem fácil de ordenar os elementos é utilizando o método compareTo e trocando os elementos fora da ordem de posição…
(esse código que seu professor te passou parece bom)
só não entendi como esses arrays (nome, idade, premio, etc) estão relacionados
Desculpa mas eu não tinha me tocado que pro Arrays.sort funcionar é necessário que o array todo esteja cheio, porque chega uma hora que ele vai tentar comparar Strings null, o que dai lança NullPointerException.
Acho que a única solução é fazer mesmo no braço os métodos de ordenação, ou mexer com coleções mas ai já é uma área mais avançada pra quem só tem dois meses de java.
Não tenho mais nenhuma idéia pra te ajudar, se surgir alguma venho aqui te falar.
Abraços
@UnableDesculpa mas eu não tinha me tocado que pro Arrays.sort funcionar é necessário que o array todo esteja cheio, porque chega uma hora que ele vai tentar comparar Strings null, o que dai lança NullPointerException.
Acho que a única solução é fazer mesmo no braço os métodos de ordenação, ou mexer com coleções mas ai já é uma área mais avançada pra quem só tem dois meses de java.
Não tenho mais nenhuma idéia pra te ajudar, se surgir alguma venho aqui te falar.
Abraços
for (i=1;i<=N-1, i++){
for (J=i+1; j<=N; J++){
if (v[i]>v[j]){
//trocar elementos
aux=v[i];
v[i]=v[j];
v[j]=aux;
Eu penso que qualquer coisa desse genero resolve so não tou a ver bem o que porque nao entendo muito de java…
Não vês nenhuma solução por esse código?
Ele verifica o valor dos elementos…
Compra o 1º com o 2º
se o segundo for maior passa a tomar o primeiro lugar caso contrario compara com o 3º
exemplo
9;5;2;3…
1º passo -> comparar o 9 com o 5 (5 é mais pequeno) logo -> 5;9;2;3
2º passo -> comparar o 5 com o 2 (2 é mais pequeno) logo -> 2;5;9;3
3º passo -> comparar o 2 com o 3 (2 é mais pequeno) logo -> 2;5;9;3
4º passo -> comparar o 5 com o 9 (5 é mais pequeno) logo -> 2;5;9;3
5º passo -> comparar o 5 com o 3 (3 é mais pequeno) logo -> 2;3;9;5
6º passo -> comparar o 9 com o 5 (5 é mais pequeno) logo -> 2;3;5;9
é algo desse género…
não dá?
Obrigado pela paciência desde ja
OK, começando, o padrão Java é nomes de variáveis começarem com letras minúsculas… quando você coloca, por exemploint premio=250, Opção, inscritos=-1,Quem;Você acaba confundindo quem olha seu código…
então vamos começar pensando no problema:
7 - Ordenar uma lista pelos nomes
8 - Ordenar uma lista pelo número de prêmiosUma forma bem fácil de ordenar os elementos é utilizando o método compareTo e trocando os elementos fora da ordem de posição…
(esse código que seu professor te passou parece bom)só não entendi como esses arrays (nome, idade, premio, etc) estão relacionados
Muito obrigado desde já…
de facto o código parece bom mas eu não consigo por funcional…
O que o programa faz é pedir uma ficha de jogador com nome e idade
é feito um sorteio conforme os inscritos…
Depois tenho de dizer quem ganhou mais prémios etc…
Para isso é preciso o comando para comparar e eu não sei utilizar… não tou a entender
esse código que o teu professor te passou é um método de ordenação mais conhecido como o método da bolha ele funciona como o Unable falou
vou mostrar um exemplo ordenando 2 vetores cuja a relação entre eles é os índices (que acredito ser seu casso)
String[] nomeProduto[] = new String[10];
int[] quatidade[] = new int[10];
for (i=1;i<=10-1, i++){
for (j=i+1; j<=10-1; j++){
if (nomeProduto[j].compareTo(nomeProduto[j+1])<0){ //foi usado compareTo por ser uma String
//trocar elementos do vetor nomeProduto
String aux1=nomeProduto[j+1];
nomeProduto[j]=nomeProduto[j+1];
nomeProduto[j]=aux1;
//trocar elementos do vetor quatidade
int aux2=quatidade[j+1];
quatidade[i]=quatidade[j+1];
quatidade[j]=aux2
}
}
}
adapta esse exemplo a tua situação
até!
edit: coisa triste 3 vez que edito porque ta erado o código que escrevi
esse código que o teu professor te passou é um método de ordenação mais conhecido como o método da bolha ele funciona como o Unable falouvou mostrar um exemplo ordenando 2 vetores cuja a relação entre eles é os índices (que acredito ser seu casso)
Obs: não foi testadoString[] nomeProduto[] = new String[10]; int[] quatidade[] = new int[10]; for (i=1;i<=10-1, i++){ for (j=i+1; j<=10-1; j++){ if (nomeProduto[i].compareTo(nomeProduto[j])<0){ //foi usado compareTo por ser uma String //trocar elementos do vetor nomeProduto aux=nomeProduto[i]; nomeProduto[i]=nomeProduto[j]; nomeProduto[j]=aux1; //trocar elementos do vetor quatidade aux=quatidade[i]; quatidade[i]=quatidade[j]; quatidade[j]=aux1 } } }adapta esse exemplo a tua situação
até!
era exactamente isso que queria obrigado...
só tá a dar erro
aux = nomes[i];
nomes[j] = aux1;
Só faltam esses promenores
ops digitei algumas coisa eradas vou modificar no post acima
não entendi… assim?
aux = nomes;
nomes[i] = nomes[j];
nomes[j] = aux;
dá erro a mesma
o código foi modificado no meu primeiro post desse tópico olhe la!
Acabei por usar o seguinte código
case 7:{
System.out.println("Listagem ordenada por nomes (crescente)\n\n");
for (i=1; i<=inscritos; i++){
for (j=0; j<=inscritos-i; j++){
if (nomes[j].compareTo(nomes[j+1])>0){
aux = nomes[j];
nomes[j] = nomes[j+1];
nomes[j+1] = aux;
}
}
}
for(int y=0; y <= inscritos;y++){
System.out.print(nomes[y] + "\n");
}
}
O problema é se eu quiser listar os nomes e as idades certas…
por exemplo
se meu meter os seguintes dados
João 19 anos
Carlos 20 anos
Teresa 18 anos
Ana 21 anos
Manuel 22 anos
ao colocar a linha System.out.print(nomes[y] + " de " + +idades[y]);
fico com
ana de 19
carlos de 20
joao de 18
manuel de 21
teresa de 22
as idades nao correspondem aos nomes mas sim à ordem que eu coloquei
sem progressos ainda!
ordenou né? mas só os nomes porque você ta só trocando as posições do vetor nome para trocar tos outros vetores tem repetir essa parte do código para todos os vetores
aux1 = nomes[j];
nomes[j] = nomes[j+1];
nomes[j+1] = aux1;
aux2 = somaPremios[j];
nomes[j] = somaPremios[j+1];
nomes[j+1] = aux2;
aux3 = idades[j]...
// e assim para todos os vetores senão quebra a integridade dos vetores
até