Fórum Como criar procedimento que leia vetor de qualquer tamanho #471703

01/03/2014

0

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

Eliseu Mendes

Responder

Posts

01/03/2014

André Camargo

Qual a dúvida?
Responder

Gostei + 0

01/03/2014

Eliseu Mendes

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);
	} 
}
Responder

Gostei + 0

02/03/2014

André Camargo

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.

ArrayList<Integer> valores = new ArrayList<Integer>();  
      
    // adiciona itens na lista  
    valores.add(34);  
    valores.add(12); 



para saber o tamanho usa
valores.size();

Responder

Gostei + 0

02/03/2014

Eliseu Mendes

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.

ArrayList<Integer> valores = new ArrayList<Integer>();  
      
    // adiciona itens na lista  
    valores.add(34);  
    valores.add(12); 



para saber o tamanho usa
valores.size();

Responder

Gostei + 0

02/03/2014

André Camargo

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.

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?
Responder

Gostei + 0

02/03/2014

Eliseu Mendes

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.
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.

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?
Responder

Gostei + 0

03/03/2014

André Camargo

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);
    }
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar