javing_crazy Posted May 6, 2012 at 05:41 PM Report #453422 Posted May 6, 2012 at 05:41 PM Boas, Será que alguém me sabe dizer como faço um programa em java que leia uma sequência de inteiros e termina quando for introduzido qualquer caracter que não seja um inteiro. Obrigado
KTachyon Posted May 6, 2012 at 06:23 PM Report #453437 Posted May 6, 2012 at 06:23 PM Lês o input e fazes parsing aos valores inteiros. Colocas o parsing num bloco try-catch e, quando der excepção, terminas. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
javing_crazy Posted May 6, 2012 at 06:41 PM Author Report #453439 Posted May 6, 2012 at 06:41 PM Lês o input e fazes parsing aos valores inteiros. Colocas o parsing num bloco try-catch e, quando der excepção, terminas. O problema é que ainda não dei esses blocos try-catch, nem faço ideia do que seja nem como se utiliza, portanto não estou autorizado a utilizar 😄 Não existe outra forma simples utilizando os ciclos? Obrigado
AngusYoung Posted May 6, 2012 at 06:49 PM Report #453442 Posted May 6, 2012 at 06:49 PM Sim. Vais recebendo a input, usando: for(int input != VariavelDeParagem) { Executar algo; } Isto porque, saber a composicão do granito, os estágios da evolucão psicológica humana ou as deambulacões do Sartre não indicam puto sobre as competências de alguém num determinado campo específico e muito menos sobre o que as pessoas gostam de fazer ou a sua capacidade de aprendizagem. - bubulindo, 15 de Fevereiro de 2013 - 02:01
KTachyon Posted May 6, 2012 at 06:56 PM Report #453443 Posted May 6, 2012 at 06:56 PM Então cria um método que verifique a constituição do input que retorne true se for possível transformar em inteiro, e false se tiver caracteres não numéricos. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
javing_crazy Posted May 6, 2012 at 07:44 PM Author Report #453448 Posted May 6, 2012 at 07:44 PM É que eu não consigo declarar um array sem inicializar logo com as dimensões senão já tinha resolvido o problema, não tou a ver outra maneira 😄
Rui Carlos Posted May 6, 2012 at 09:23 PM Report #453465 Posted May 6, 2012 at 09:23 PM Mas precisas de guardar os números lidos? Caso não precises, não estou a ver para que é que queres um array, basta uma variável escalar, e guardas os valores lidos sempre nas mesmas variáveis. Rui Carlos Gonçalves
javing_crazy Posted May 6, 2012 at 11:47 PM Author Report #453469 Posted May 6, 2012 at 11:47 PM Sim, o problema é que eu preciso de guardar os valores em arras ou de outra maneira pois eu vou precisar de os comparar.
Rui Carlos Posted May 7, 2012 at 12:18 AM Report #453471 Posted May 7, 2012 at 12:18 AM Sim, o problema é que eu preciso de guardar os valores em arras ou de outra maneira pois eu vou precisar de os comparar. Nesse caso pode usar um ArrayList. Rui Carlos Gonçalves
javing_crazy Posted May 7, 2012 at 12:31 AM Author Report #453472 Posted May 7, 2012 at 12:31 AM Não estou autorizado a utilizar métodos da classe Array do package java.util
Rui Carlos Posted May 7, 2012 at 02:23 AM Report #453477 Posted May 7, 2012 at 02:23 AM Que operações é que vais ter que fazer com os valores lidos? Algo me diz que não precisas de guardar todos os valores lidos... Rui Carlos Gonçalves
javing_crazy Posted May 7, 2012 at 02:43 AM Author Report #453478 Posted May 7, 2012 at 02:43 AM Que operações é que vais ter que fazer com os valores lidos? Algo me diz que não precisas de guardar todos os valores lidos... O programa que eu preciso de fazer tem necessita que o utilizador execute o programa, de seguida fica à espera que ele introduzida inteiros e termine de ler até que seja introduzido outro caractere que não seja um inteiro, e no final indicar o número de inteiros iguais introduzidos, ou seja, se introduzir no input por exemplo: "3 6 8 9 3 9 1 3 10 22 10", o resultado será de , pois existem 3 ocorrências de "3" + 2 ocorrências de "9" + 2 ocorrências de "10". Obrigado
Rui Carlos Posted May 7, 2012 at 04:22 AM Report #453480 Posted May 7, 2012 at 04:22 AM Não percebi bem qual era o resultado pretendido, mas uma alternativa a guardares os inteiros lidos, é ires contando as suas ocorrências, ou seja, para esse input, chegavas ao fim com [1, 0, 3, 0, 0, 1, 0, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]. No início terias que definir o definias o valor máximo que podia ser introduzido (por exemplo 1000), e criavas um array de 1001 posições. Também tens a alternativa de redimensionares o array sempre que for necessário, mas tal parece-me uma solução parva, quando podias usar um ArrayList, e como tal pressuponho que tal não seja o objectivo do exercício. Rui Carlos Gonçalves
javing_crazy Posted May 7, 2012 at 08:21 PM Author Report #453631 Posted May 7, 2012 at 08:21 PM É um trabalho que tenho de fazer, e no enunciado diz que não posso utilizar em nenhum programa os métodos da classe array do package java.util por isso não sei mesmo como fazer
KTachyon Posted May 7, 2012 at 08:25 PM Report #453632 Posted May 7, 2012 at 08:25 PM A solução que o Rui Carlos te deu não envolve nenhum método da classe Array. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
javing_crazy Posted May 8, 2012 at 11:33 PM Author Report #453985 Posted May 8, 2012 at 11:33 PM Tenho de ler como String. A opção que tomei foi depois de ler como string, converter em um array de chars, só que agora não tou a ver como vou avaliar os valores, alguém pode dar uma ajuda?
Rui Carlos Posted May 8, 2012 at 11:42 PM Report #453986 Posted May 8, 2012 at 11:42 PM int x = Integer.parseInt(str); Rui Carlos Gonçalves
javing_crazy Posted May 8, 2012 at 11:52 PM Author Report #453987 Posted May 8, 2012 at 11:52 PM int x = Integer.parseInt(str); O problema é que eu tenho de ler uma string em que os inteiros estão separados por espaços e vou ter que os guardar pois vou precisar de os comparar como referi anteriormente
Baderous Posted May 8, 2012 at 11:54 PM Report #453988 Posted May 8, 2012 at 11:54 PM Usa o método split para os separar.
javing_crazy Posted May 8, 2012 at 11:59 PM Author Report #453989 Posted May 8, 2012 at 11:59 PM Usa o método split para os separar. Também pensei nisso mas disseram-me que não posso utilizar, por isso é que é mais complicado verificar se na posição do array de chars estiver um numero seguido de um espaço, não sei como colocar esse numero juntamente com o anterior, pois também não sei quantos algarismos têm os números introduzidos.
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