• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ex-dead

Copiar de um array para outro

12 mensagens neste tópico

boas!

a minha duvida é a seguinte...

eu tenho 1 array chamado array1 com estes valores  {0.01,0.02,0.05,0.10,0.20,0.50,1,2,5,10,20,50,100,200,500}..

como podem ver o valor 0.01 esta na posição 0, o valor 0.05 ta na posição 2,etc...

aquilo que eu quero é ter um outro array (por exemplo array2) em que o utilizador escolhe por exemplo o valor 0.05 e que esse valor fique guardado exactamente na mesma posição em que está no array1... se o utilizador escolheu o vlaor 0.05 este valor ficará guardado na posição 2 do array2, ja que, é nessa posição que esse valor está no array1.

sabem me dizer como faço isto?

obrigado desde já!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim por alto ....

crias outro vector com o tamanho do primeiro

qdo souberes qual e o valor que pretendes ... fazes um loop para percorrer o primeiro array e vez qual e a posicao em que esse valor esta e vais ao vector e inseres nessa posicao :P

boas programacoes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim por alto ....

crias outro vector com o tamanho do primeiro

qdo souberes qual e o valor que pretendes ... fazes um loop para percorrer o primeiro array e vez qual e a posicao em que esse valor esta e vais ao vector e inseres nessa posicao :P

boas programacoes

eu sei que tenho que ter um array com o tamanho do outro..

fica tipo isto né?

        private double[] tipoDinhe= {0.01,0.02,0.05,0.10,0.20,0.50,1,2,5,10,20,50,100,200,500};
private double[] tipoDinhe2=[15];

o que não sei é como fazer o loop para percorrer o array e meter o valor no segundo array :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

GeSHi (java):

        private double[] tipoDinhe= {0.01,0.02,0.05,0.10,0.20,0.50,1,2,5,10,20,50,100,200,500};

private double[] tipoDinhe2=[15];

Created by GeSHI 1.0.7.20

bem o que tens aqui e algo semelhante a dizeres que tens um array de double chamado tipoDinhe com 15 posicoes

e o tipodinhe2 e um array com uma posicao que tem o valor 15 nessa posicao

para fazeres loop's em java tens for e tens while agora es tu que tens de dicidir o que queres fazer ...

acho que talvez devias ver uns codigos java antes de fazeres isto nao que isto tenha nenhuma complexidade mas para comecares a dominar as instrucoes de loop e afectacao e de criacao de objectos

boas programacoes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem o que tens aqui e algo semelhante a dizeres que tens um array de double chamado tipoDinhe com 15 posicoes

e o tipodinhe2 e um array com uma posicao que tem o valor 15 nessa posicao

para fazeres loop's em java tens for e tens while agora es tu que tens de dicidir o que queres fazer ...

acho que talvez devias ver uns codigos java antes de fazeres isto nao que isto tenha nenhuma complexidade mas para comecares a dominar as instrucoes de loop e afectacao e de criacao de objectos

boas programacoes

lol enganei me a escrever o codigo :X

private double[] tipoDinhe= {0.01,0.02,0.05,0.10,0.20,0.50,1,2,5,10,20,50,100,200,500};
private double[] tipoDinhe2= new double[15];

eu sei +/- como funcionam os loops.. tenh q ver é como faço para escrever um que leia os varios valores e imprima os escolhidos para o outro array...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok. entao qual e a parte que te preocupa

podes mostrar um pouco de codigo para se puder te orientar ...

boas programacoes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para começar acho que para segurança devias em vez de passar o 15 como tamanho do segundo array passar o  tipoDinhe.length , ou seja o tamanho do array 1 ...

Agora voltanto à parte dos loops..

Imaginemos um for...

for(int i=0;i<array.length;++i)
   if(valorQprocuras == array[i])
        segundoArray[i]=valorQprocuras   /*ou array[i]*/


Isto agora dá para optimizar.. isto é apenas um exemplo.... pois se encontraste o valor não precisas de continuar a percorrer o for por exemplo... ou fazes com um while.. mas espero que tenhas percebido o esquema..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hmm... agora é que reparei.. acho que me adiantei um pouco...

ainda a ver com a msm duvida... eu tenho os 2 array:

private double[] tipoDinhe= {0.01,0.02,0.05,0.10,0.20,0.50,1,2,5,10,20,50,100,200,500};
private double[] tipoDinhe2= new double[15];

como é que eu faço para:

peço um valor ao utilizador, e ele escreve por exemplo 0.02 e terá que ficar guardado na posição2 do array tipoDinhe...

O programa vai guardar logo isso na posição 2? ou vou ter que andar a fazer if's  ou case's para guardar cada valor na posição certa?

como só comecei agora a fazer o código só reparei nisso agora :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para começar acho que para segurança devias em vez de passar o 15 como tamanho do segundo array passar o  tipoDinhe.length , ou seja o tamanho do array 1 ...

Agora voltanto à parte dos loops..

Imaginemos um for...

for(int i=0;i<array.length;++i)
   if(valorQprocuras == array[i])
        segundoArray[i]=valorQprocuras   /*ou array[i]*/


Isto agora dá para optimizar.. isto é apenas um exemplo.... pois se encontraste o valor não precisas de continuar a percorrer o for por exemplo... ou fazes com um while.. mas espero que tenhas percebido o esquema..

eu penso que percebi mas deixa me começar com o código e já te digo se compreendi msm ou nao...

quando tiver a duvida que coloquei em cima resolvida já passo para isto e ja digo qualquer coisa!

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hmm... agora é que reparei.. acho que me adiantei um pouco...

ainda a ver com a msm duvida... eu tenho os 2 array:

private double[] tipoDinhe= {0.01,0.02,0.05,0.10,0.20,0.50,1,2,5,10,20,50,100,200,500};
private double[] tipoDinhe2= new double[15];

como é que eu faço para:

peço um valor ao utilizador, e ele escreve por exemplo 0.02 e terá que ficar guardado na posição2 do array tipoDinhe...

O programa vai guardar logo isso na posição 2? ou vou ter que andar a fazer if's  ou case's para guardar cada valor na posição certa?

como só comecei agora a fazer o código só reparei nisso agora :\

Uma possivel solução para isto é fazeres uma inserção ordenada,isto se basta para isso que os valores estejam por ordem vê por exemplo o algoritmo insertion Sort. Ainda não explicaste bem o problema, ou pelo menos eu ainda não percebi o porque de precisares de fazer isso.

Outro pormenor ali o 0.02 não está na posição 2... está na posição 1, os indices dos arrays começam em 0, toma atenção a isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma possivel solução para isto é fazeres uma inserção ordenada,isto se basta para isso que os valores estejam por ordem vê por exemplo o algoritmo insertion Sort. Ainda não explicaste bem o problema, ou pelo menos eu ainda não percebi o porque de precisares de fazer isso.

Outro pormenor ali o 0.02 não está na posição 2... está na posição 1, os indices dos arrays começam em 0, toma atenção a isso.

insertion sort? penso que estás a falar disto certo? http://pt.wikipedia.org/wiki/Insertion_sort

Sim eu sei que é na posição 1... foi distração minha quando escrevi :S

quanto ao que eu quero é o seguinte... aquilo que tou a fazer é um exercicio que me deram..

tenho q criar 1 prog que faça tipo depositos de moedas e notas... guardo o tipo de moeda/nota que o utilizador escolheu no array1 (por exemplo ele quer depositar moedas de 10 centimos, escreve 0.10) .

no fim o utilizador escolhe ver os varios valores que tem depositados...

por exemplo tem 2 moedas de 10 centimos e 1 de 5 centimos... aquilo que o prog tem que fazer é percorrer o array1 e copiar apenas os tipos de moedas/notas utilizados para o array2, para q depois sejam feitas as contas...

Se não me expliquei direito digam..

cumps, vou ver isso que me disseste de insertion sort :P

EDIT:

Foi isto que me explicaram que eu tinha que fazer... mas agora que tou a olhar para o código,  isto n tem muita logica.

hmm.......

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Da forma como me explicaram... isto não vai fazer o pretendido no final.

Como faço para apagar o topico do forum? Ou tenho que pedir a algum admin para o fazer?

Desculpem terem perdido tempo...tentei adiantar as duvidas para n perder tanto tempo.. afinal não vai dar para fazer desta forma...

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora