Como criar procedimento que leia vetor de qualquer tamanho
Crie dois procedimentos , um que leia e outro que escreva um vetor de qualquer tamanho. No programa principal use a chamada ao procedimento para ler dois vetores de 10 posições. Faça um terceiro procedimento que execute a multiplicação dos elementos de mesmo índice de dois vetores, colocando o resultado em um terceiro vetor. Esse procedimento deverá mostrar o vetor resultante mas para isso chame o procedimento de escrita. O vetores devem sempre ser passados por parâmetro
Eliseu Mendes
Curtidas 0
Respostas
André Camargo
01/03/2014
Qual a dúvida?
GOSTEI 0
Eliseu Mendes
01/03/2014
Cara consegui fazer perguntando o usuário o tamanho do vetor, gostaria de saber se tem fazer esse procedimento sem perguntar o usuário o tamanho.
Qual a dúvida?
package exerc8;
import java.util.Scanner;
public class exerc8 {
Scanner leia = new Scanner(System.in);
public void lervetor(int[]vetor,int y){
for(int i = 0;i < y;i++){
System.out.print("Leia vetor: ");
vetor[i] = leia.nextInt();
}
}
public void multiplicar(int[]vetor, int[]vetor2, int[]vetor3, int y){
for(int i = 0;i < y;i++){
vetor3[i] = vetor[i]*vetor2[i];
}
}
public void escrita (int y, int[] vetor){
for(int i = 0;i < y;i++){
System.out.println ("Resultado do vetor: "+vetor[i]);
}
}
public static void main(String[]args){
exerc8 c1 = new exerc8 ();
int []vetor1 = new int[10];
int []vetor2 = new int[10];
int []vetor3 = new int[10];
int x;
System.out.println("Qual o tamanho do vetor: ");
x = c1.leia.nextInt();
c1.lervetor(vetor1,x);
c1.lervetor(vetor2, x);
c1.multiplicar(vetor1, vetor2, vetor3, x);
c1.escrita(x, vetor3);
}
}
GOSTEI 0
André Camargo
01/03/2014
Tu já predefiniu o tamanho de um vetor no início e não com a informação digitada!
Se puder usar um arraylist, tem como é um vetor dinâmico ou lista.
para saber o tamanho usa
Se puder usar um arraylist, tem como é um vetor dinâmico ou lista.
ArrayList<Integer> valores = new ArrayList<Integer>();
// adiciona itens na lista
valores.add(34);
valores.add(12);
para saber o tamanho usa
valores.size();
GOSTEI 0
Eliseu Mendes
01/03/2014
Mas eu queia saber apenas a questão do modulo de lervetor, tipo se tivesse declarado um vetor[10] e um vetor[20], com a chamado do modulo desse para ler os dois.
public void lervetor(int[]vetor,int y){
for(int i = 0;i < y;i++){
System.out.print("Leia vetor: ");
vetor[i] = leia.nextInt();
}
}Tu já predefiniu o tamanho de um vetor no início e não com a informação digitada!
Se puder usar um arraylist, tem como é um vetor dinâmico ou lista.
para saber o tamanho usa
Se puder usar um arraylist, tem como é um vetor dinâmico ou lista.
ArrayList<Integer> valores = new ArrayList<Integer>();
// adiciona itens na lista
valores.add(34);
valores.add(12);
para saber o tamanho usa
valores.size();
GOSTEI 0
André Camargo
01/03/2014
Mas eu queia saber apenas a questão do modulo de lervetor, tipo se tivesse declarado um vetor[10] e um vetor[20], com a chamado do modulo desse para ler os dois.
public void lervetor(int[]vetor,int y){
for(int i = 0;i < y;i++){
System.out.print("Leia vetor: ");
vetor[i] = leia.nextInt();
}
}Tu já predefiniu o tamanho de um vetor no início e não com a informação digitada!
Se puder usar um arraylist, tem como é um vetor dinâmico ou lista.
para saber o tamanho usa
Se puder usar um arraylist, tem como é um vetor dinâmico ou lista.
ArrayList<Integer> valores = new ArrayList<Integer>();
// adiciona itens na lista
valores.add(34);
valores.add(12);
para saber o tamanho usa
valores.size();
Verifica se eu entendi, tu quer mandar ler os dois vetores?, dai basta colocar um retorno no método e passar somente o tamanho a ser lido e receber o retorno no vetor correto?, é isto?
GOSTEI 0
Eliseu Mendes
01/03/2014
Sim, quero ler o vetor, mas como vc pode ver no código eu perguntei ao usuário o tamanho do vetor, para que assim eu pudesse usar o valor na estrutura FOR no modulo, mas eu gostaria de fazer sem precisar perguntar ao usuário.
Verifica se eu entendi, tu quer mandar ler os dois vetores?, dai basta colocar um retorno no método e passar somente o tamanho a ser lido e receber o retorno no vetor correto?, é isto?
Mas eu queia saber apenas a questão do modulo de lervetor, tipo se tivesse declarado um vetor[10] e um vetor[20], com a chamado do modulo desse para ler os dois.
public void lervetor(int[]vetor,int y){
for(int i = 0;i < y;i++){
System.out.print("Leia vetor: ");
vetor[i] = leia.nextInt();
}
}Tu já predefiniu o tamanho de um vetor no início e não com a informação digitada!
Se puder usar um arraylist, tem como é um vetor dinâmico ou lista.
para saber o tamanho usa
Se puder usar um arraylist, tem como é um vetor dinâmico ou lista.
ArrayList<Integer> valores = new ArrayList<Integer>();
// adiciona itens na lista
valores.add(34);
valores.add(12);
para saber o tamanho usa
valores.size();
Verifica se eu entendi, tu quer mandar ler os dois vetores?, dai basta colocar um retorno no método e passar somente o tamanho a ser lido e receber o retorno no vetor correto?, é isto?
GOSTEI 0
André Camargo
01/03/2014
Testa o código ahi, acredito que seja isto que você esteja querendo.
public int[] lervetor() {
int op = 1;
int valor;
String leituradovetoremtexto = ":";
while (op != 0) {
System.out.print("Leia vetor: ");
valor = leia.nextInt();
leituradovetoremtexto += ":" + valor;
System.out.print("Informe 0 para parar a leitura ");
op = leia.nextInt();
}
//precisamos retirar os : iniciais da variavel ::
leituradovetoremtexto = leituradovetoremtexto.substring(2);
String[] vetortexto;
vetortexto = (leituradovetoremtexto.split(":"));
int[] vetor = new int[vetortexto.length];
for (int i = 0; i < vetortexto.length; i++) {
vetor[i] = Integer.parseInt(vetortexto[i]);
}
return vetor;
}
public void multiplicar(int[] vetor, int[] vetor2, int[] vetor3, int y) {
for (int i = 0; i < y; i++) {
vetor3[i] = vetor[i] * vetor2[i];
}
}
public void escrita(int[] vetor) {
for (int i = 0; i < vetor.length; i++) {
System.out.println("Resultado do vetor: " + vetor[i]);
}
}
public static void main(String[] args) {
Teste c1 = new Teste();
int[] vetor1;
vetor1 = c1.lervetor();
c1.escrita(vetor1);
}
GOSTEI 0