Exercicio vetor  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
vinids
Entusiasta Java

Membro desde: 11/10/2011 14:05:21
Mensagens: 24
Offline

Olá pessoal,

Essa é a primeira vez que posto aqui, estou com uma duvida em um exercicio, se alguem puder me ajudar ficarei grato!!Segue:

Utilizando a classe Scanner faça um programa que solicite a entrada de 10
números inteiros, verifique a freqüência de ocorrência de cada número no vetor.



Preciso de um jeito que faça eu não contar o mesmo numero que já apareceu anteriormente, eu não consigo atribuir nulo ou fazer outra coisa...enfim é isso, se puderem melhorar meu codigo ou me mostrar outra forma de fazer!!!
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

O exercício não limita qual o intervalo máximo do número (de 0 até 50, por exemplo?). Caso contrário, vai ser bem difícil resolve-lo.

No exemplo baixo, conta números no intervalo de 0 até 15:

This message was edited 3 times. Last update was at 04/02/2012 10:12:04


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
vinids
Entusiasta Java

Membro desde: 11/10/2011 14:05:21
Mensagens: 24
Offline

Obrigado ViniGodoy..
Mas então no enuciado do exercicio não diz nada sobre limite,
Se eu conseguisse eliminar os numeros quando eles se repetem acho que meu codigo daria certo, mas acho que isso só com a classe Array, estou certo?!
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

A forma mais fácil sem especificar um limite é usando uma classe especial do Java chamada Map.

Daria para fazer um programa simples também se você já soubesse montar suas classes, mas não parece ser o caso desse exercício.


De onde você tirou o exercício?

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
vinids
Entusiasta Java

Membro desde: 11/10/2011 14:05:21
Mensagens: 24
Offline

Tirei daqui:
http://www.t2ti.com/java_starter/modulos/Java_Basico_Modulo_03.pdf

São dez apostilas muito boas e gatuitas, já li a apostila da caelum tambem a fj 11, mas queria fazer mais exercicios e encontrei ela.
Por curiosidade(pois realmente acho não ser o caso do exercicio) como faria usando uma classe de maneira simples, não precisa por o codigo completo, só da uma luz!!
Thanks..
eduardojandre
What is classpath?

Membro desde: 15/01/2008 16:32:47
Mensagens: 9
Offline

Cara não deu para entender muito bem o que tu quer fazer mas se foi o que eu entendi, a melhor maneira e vc criar um objeto com dois atributos numero e quantidade , e criar um lista desse objeto, de forma que a cada numero que vc encontra vc tem um metodo que ou soma 1 na quantidade caso essa elemento ja esteja na lista ou add um novo objeto na lista com o numero novo e com 1 em quantidade...
mais ou menos assim:

e basicamente isso tem q completar... se fizer um toString() no Num ou no listaNum ja facilita bastante..
vinids
Entusiasta Java

Membro desde: 11/10/2011 14:05:21
Mensagens: 24
Offline

eduardojandre, eu entendi sua sugestão, mais o código eu fiquei perdido total...principalmente a classe ListaNum, achei que vc montaria um array, e no metodo adicionar, passa como argumento um int numero (até ai sem problema), mas oq seria o argumento do tipo ListaNum lista!!
Mas mesmo assim valew, vou continuar tentando!!
eduardojandre
What is classpath?

Membro desde: 15/01/2008 16:32:47
Mensagens: 9
Offline

Não entendi bem sua pergunta, poderia explicar melhor?
ListaNum nao deixa de ser um array, um array e uma lista encadeada o java tem pronto arraylists ja so que ate para aprendizado aconselho que vc crie suas proprias listas o que te da mais conhecimento e um poder de customização muito melhor..
tentando explicar melhor vc tem um objeto (num) e tem uma lista desse objeto(listaNum) e vc vai lendo inteiros e caso nao exista nenhum objeto (num) representando esse inteiro vc cria um novo objeto(num) e add a lista (listaNum) caso ja existe vc incrementa a qtd do objeto(num), basicamente vc declara uma lista(listaNum) q vc vai usar para armazenar os objetos e a cada inteiro vc manda add nesse lista e essa logica se ja existe ou nao fica por conta do add... entendeu?
vinids
Entusiasta Java

Membro desde: 11/10/2011 14:05:21
Mensagens: 24
Offline

Mas como eu percorro essa lista, tipo sem o "[" e ']".
Pelo oq eu entendi quando o metodo adicionar é acionado pela primeira vez a lista será nula então vc instancia uma nova lista (linha 27), na variavel lista, mas ao fim do método eu não perderia a referencia a ela, pois a variavel lista desaparece ao final do escopo do método adicionar?!
eduardojandre
What is classpath?

Membro desde: 15/01/2008 16:32:47
Mensagens: 9
Offline

vc pode criar algum metodo pra percorrer ela ou atraves de uma variavel auxilar, recursivamente existe varias maneiras de fazer isso.... isso e um pouco do conceito de ponteiro que em java esta encapsulado mais nao deixa de existir...de fato vc esta certo pelo a construção q fiz realmente a lista esta se perdendo , foi que fiz aqui de cabeça e rapidamente nao me liguei nisso mas e facil de resolver e so vc colocar o metodo add em vez de void retornar uma ListaNum e no final do metodo void dar um return lista, ou entao mudar a forma de construção da lista mas a primeira alternativa e mais facil e rapida...
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team