Defina uma função que copia (replica) um vector de inteiros, tendo o novo vector um tamanho dado como argumento.
Exemplo: copy({1, 2, 3}, 6) → {1, 2, 3, 0, 0, 0}
Eu fiz o meu programa:
public class copia {
/*public static int[] copy(int[] v, int length){ int[] v1 = new int[length]; int tamanho = 0; while(tamanho < v.length){ v1[tamanho] = v[tamanho]; tamanho++; } return v1; }*/publicstaticint[]copy(int[]v){int[]v1=newint[v.length];inttamanho=0;while(tamanho<v1.length){v1[tamanho]=v[tamanho];tamanho++;}returnv1;}}
O meu problema é que não sei fazer a parte que falta acrescentar ao programa para imprimir o resultado no ecrã, alguem me pode ajudar???
bom, pelo que entendi do que vc falou, vc ta fazendo errado
fiz de um jeito fácil de vc entender aqui, vo te explicar
importjava.util.Scanner;publicclassCopia{publicstaticint[]copiar(int[]vet,inttamanho){//o método copiar recebendo a array e o tamanho que vc mandarint[]vet2=newint[tamanho];//criando a nova array do tamanho especificadofor(inti=0;i<vet.length;i++){//for que passa pelas arrays, atribuindo os valores de vet ao vet2vet2[i]=vet[i];}returnvet2;//retorna o vet2}publicstaticvoidmain(String[]args){int[]vet=newint[3];//a primeira arrayScannerleitura=newScanner(System.in);//criando uma nova variável de leitura (não sei se vc sabe, através da classe Scanner pode-se capturar valores digitados e atribuí-los para uma variável)for(inti=0;i<3;i++){//for que passará pela array vetSystem.out.println("Digite um número para a posicao "+i+": ");vet[i]=leitura.nextInt();//cada posição da array receberá um valor digitado por vc, através da variável leitura, que é uma variável Scanner, que invoca o método nextInt()}for(inti=0;i<3;System.out.print(vet[i]+" "),i++);//exibe a primeira arraySystem.out.println();int[]v=copiar(vet,6);//cria uma nova array, e atribui a chamada do metodo copiar à essa nova array (ela receberá o retorno do método)for(inti=0;i<6;System.out.print(v[i]+" "),i++);//exibe o novo vetor}}
Pelo que entendi do q vc falo é isso aí, qualquer coisa só perguntar
e se vc nao entendeu a parte do Scanner, testa com valores fixos aí, só pra ver se entendeu o que vc queria
jvkirk
M
MariaDaniela
jvkirk:
bom, pelo que entendi do que vc falou, vc ta fazendo errado
fiz de um jeito fácil de vc entender aqui, vo te explicar
importjava.util.Scanner;publicclassCopia{publicstaticint[]copiar(int[]vet,inttamanho){//o método copiar recebendo a array e o tamanho que vc mandarint[]vet2=newint[tamanho];//criando a nova array do tamanho especificadofor(inti=0;i<vet.length;i++){//for que passa pelas arrays, atribuindo os valores de vet ao vet2vet2[i]=vet[i];}returnvet2;//retorna o vet2}publicstaticvoidmain(String[]args){int[]vet=newint[3];//a primeira arrayScannerleitura=newScanner(System.in);//criando uma nova variável de leitura (não sei se vc sabe, através da classe Scanner pode-se capturar valores digitados e atribuí-los para uma variável)for(inti=0;i<3;i++){//for que passará pela array vetSystem.out.println("Digite um número para a posicao "+i+": ");vet[i]=leitura.nextInt();//cada posição da array receberá um valor digitado por vc, através da variável leitura, que é uma variável Scanner, que invoca o método nextInt()}for(inti=0;i<3;System.out.print(vet[i]+" "),i++);//exibe a primeira arraySystem.out.println();int[]v=copiar(vet,6);//cria uma nova array, e atribui a chamada do metodo copiar à essa nova array (ela receberá o retorno do método)for(inti=0;i<6;System.out.print(v[i]+" "),i++);//exibe o novo vetor}}
Pelo que entendi do q vc falo é isso aí, qualquer coisa só perguntar
e se vc nao entendeu a parte do Scanner, testa com valores fixos aí, só pra ver se entendeu o que vc queria
jvkirk
Muito obrigada :)
E os comentários ao longo do programa ajudaram bastante a entender o seu funcionamento!!! :)