Vetores simples

11 respostas
G

Boa tarde,

galera eu to cursando o curso de sistemas de informação, ateh agora nao tive nenhum problemaa com as materias, mas agora q entramos em vetores estou tendo grandes problemas, pois nao consigo nem bolar a logica para esses dois exercicio… alguem poderia me dar uma mão?

  1. Faça um programa que exiba o maior elemento de um vetor de 15 posições
  2. Faça um programa que some 2 vetores ?a? e ?b? cujo o tamanho é de 10 posições e exibir o resultado no vetor ?c?

toda ajuda eh bem vinda
valew abraxxx

11 Respostas

wagner_a_lima

1ª)
Crie uma variavel “maiorValor” que vai armazenar o maior valor.
Percorra o vetor. Para cada índice, compare-o com a variável “maiorValor”. Se maior, troque o valor de “maiorValor” pelo valor do índice atual.
Ao final mostre o valor da variável “maiorValor”.

2ª) Siga a idéia da primeira. Se não conseguir. Posta que agente ajuda. :wink:

shoko

Basicamente você deve antes de tudo saber bem a estrutura de loops depois fica facil!

G

sinceramente estou com boas dificuldades…olhem o q consegui fazer com o primeiro exercicio…e nao deu certo

public class Um {

	public static void main(String[] args) {

		int[] posicao;
		int i;
		int maiorvalor=0;
		
		posicao = new int [15];
		
		for (i=0;i<=15;i++){
		
			System.out.println("Digite um número");
			
			posicao[i] = Leitura.readInteger();
			
			if (posicao[i] > maiorvalor)
				maiorvalor = posicao[i];		
		}
System.out.println("O maior valor é: "+maiorvalor);
	}

}
V
int[] posicao;  
         int i;  
         int maiorvalor=0;  
           
         posicao = new int [15];  
           
         for (i=0;i < posicao.length;i++)
        {  
           
             System.out.println("Digite um número");  
               
             posicao[i] = Leitura.readInteger();  
               
             if (posicao[i] > maiorvalor)  
                 maiorvalor = posicao[i];         
         }  
 System.out.println("O maior valor é: "+maiorvalor);

-> No seu algoritmo original havia um erro e uma pratica não recomendavel.

erro: a variavel contadora, no caso i, deve sempre ser menor que o tamanho do vetor, por que o vetor tem neste caso 15 posições, porém, a contagem começa em 0(zero), ou seja, vai até a posição 14.

pratica não recomendavel: não use "i < 15", utilize "i < posicao.lenght", aonde, lenght eh a variavel que armazena o numero de posições do seu vetor.

O algoritmo que colei acima é o algoritmo que vc colou corrigido. Sei das suas dificuldades com vetores, por que, na minha graduação, também tive muitas dificuldades até assimilar o conceito. Mas vá em frente que no fim tudo é muito muito mais facil do que a gente imagina.

Abraços..

G

Valew aíii
exercicio um resolvidooo
[color=red]
agora o outro
2) Faça um programa que some 2 vetores ?a? e ?b? cujo o tamanho é de 10 posições e exibir o resultado no vetor ?c?
[/color]

eu nao entendi bem o q o exercicio qer
eu vou ter q declarar tres vetores de 10 posições???
o q ele está qrendo q eu some no exercicio?

abraxx

pimenta

Vetor a com 10 posições, vetor B com 10 posições e vetor C com 10 posições.

for(int i = 0; i < 10; i++){
   a = a[i];
   b = b[i];
   c[i] = a+b;
}

Algo desse tipo.

Abraços,

G

opaa
olha só, um amigo da minha sala disse q fez com um for dentro de for....mas ele só dise issso, portanto nao consegui concluir a logica dele...

olha como fiz aki baseado no seu codigo

public class Dois {

	public static void main(String[] args) {
		
		int[] a;
		int[] b;
		int[] c;
		
		a = new int[10];
		b = new int[10];
		c = new int[10];
		int i;
		
		    for(i = 0; i < 10; i++){  
			    a = a[i];  
			    b = b[i];  
			    c[i] = a+b;  
			    System.out.println("Soma é: "+c[i]);
			 }  
		}
	}

nao deu certo nao.... o erro foi o seguinte

Exception in thread "main" java.lang.Error: Unresolved compilation problems: Type mismatch: cannot convert from int to int[] Type mismatch: cannot convert from int to int[] The operator + is undefined for the argument type(s) int[], int[]

at Dois.main(Dois.java:18)

abrax

G

kebrando a cabeça um pouco consegui isto aki, a primeira ele ateh faz certo mas depois ele nao continua no loop
por favor pessoal eh de suma importancia para mim

public class Dois {

	public static void main(String[] args) {
		
		int[] a;
		int[] b;
		int[] c;
		a = new int[10];
		b = new int[10];
		c = new int[10];
		int i;
		
		for (i=0;i < a.length;i++){
			System.out.println("Digite o valor de A:");
			a[i] = Leitura.readInteger();

			for (i=0;i < b.length;i++){
			System.out.println("Digite o valor de B:");
			b[i] = Leitura.readInteger();

			for (i=0;i < c.length;i++){
			c[i] = a[i]+b[i];
			System.out.println("A soma do vetor A e B é: "+c[i]);
		}
	}
		}
	}
}
wagner_a_lima

Existem duas possibilidades de entendimento para a questão:

  • A primeira e menos provável é que você “some” (ou melhor, junte) o vetor “a” de 10 posições com um vetor “b” de 10 posições e obtenha um vetor “c” de 20 posições. :?

  • A segunda e um pouco mais provável é que seja somado o conteúdo do primeiro índice do vetor “a” com o primeiro índice do vetor “b” e assim sucessivamente. Pois bem, como o pimenta colocou ai em cima já resolve o problema. Porém, podemos aprimorá-lo para a seguinte forma:
    No início pode parecer um pouco complexo, mas procure utilizá-lo para seus estudos e tente não somente copiar e colar. :wink:

import java.util.Random;

public class Vetor{
	private final Random r = new Random();//objeto da classe Random para geração de números aleatórios
	private static final int numeroMaximo = 1000;//teto do valor que será gerado
	private int tamanhoVetores = 10;//tamanho de cada vetor
	//Declaração dos três vetores
	private int[] a = new int[tamanhoVetores];
	private int[] b = new int[tamanhoVetores];
	private int[] c = new int[tamanhoVetores];
	
	public static void main(String args[]){
		//Criação de um objeto desta classe para chamada dos métodos não estáticos
		Vetor v = new Vetor();
		//Chamada ao método para o preenchimento dos vetores
		v.preencheVetores();
		//Chamada ao método que fará a soma e apresentação na tela
		v.somaVetores();
	}

	//Método que preenche o vetor a e o vetor b
	private void preencheVetores() {
		for (int i=0;i<tamanhoVetores;i++) {
			a[i] = numero();
			b[i] = numero();
		}
	}

	/**
	* Método que faz a soma dos dois vetores para um vetor c
	* Para cada posição do vetor c
	* é colocada a soma da respectiva posição dos vetores a e b
	*/
	private void somaVetores() {
		System.out.println("VETOR c: ");
		for (int i=0;i<tamanhoVetores;i++) {
			c[i] = a[i] + b[i];
			System.out.println("c[" + i +"] = " + c[i]);
		}
	}

	//Método para a geração de int aleatório 
	private int numero() {
		int numero = r.nextInt() % numeroMaximo;
		return (Math.abs(numero));
	}

}
pimenta

Cara, for dentro de for é usado pra percorrer matriz.

Pra soma você vai precisar de um for só… o erro que tinha dado antes foi porque você declarou as variáveis mas não instanciou.

Abraços,

G

muito obrigado a pimento e wagner a lima

como eu estou no 1° periodo ainda sou restrito em aplicar nos exercicio somente os conhecimento q vimos no semestre.... e kebrando a cabeça mais um pouco eu conseguiiiiiii
muito obrigadooo mesmooo

tah ae

public class Dois {  
      
        public static void main(String[] args) {  
              
            int[] a;  
            int[] b;  
            int[] c;  
              
           a = new int[10];  
           b = new int[10];  
           c = new int[10];  
           int i;  
             
               for(i = 0; i < 10; i++){    
            	   System.out.println("Digite valor de A");
                   a[i] = Leitura.readInteger(); 
            	   System.out.println("Digite valor de B"); 
                   b[i] = Leitura.readInteger(); 
                   
                   c[i] = a[i] + b[i];    
                   System.out.println("A "+(i+1)+"ª soma é: "+c[i]);
                }    
           }  
       }
Criado 27 de junho de 2008
Ultima resposta 27 de jun. de 2008
Respostas 11
Participantes 5