Criando vetor

7 respostas
H

Bom dia,

Gostaria que alguem me ajudasse num exercicio.

Implemente um método que receba um vetor de qualquer tamanho com valores long (primitivo) e retorne a quantidade de números armazenados no vetor maiores do que 75.

Fiz isso, mas esta acusando erro que nao foi resolvido.

public int sequencia (long seq[]){
		
		int sequencia[] = new int[10];
		
		if(sequencia.lenght > 75){
			seque++;
		}
		
		System.out.println (" Qtd de nº maiores que 75: " + seque);
	}

7 Respostas

davidbuzatto

Pq vc usou um outro array???
Olha o que você esta fazendo! Comparando o tamanho de sequencia[] com 75 (sendo que você declarou com tamanhpo 10). Nunca vai entrar no if :shock:
E essa variável seque? Vem de onde?

Você tem que percorrer o array passado como parâmetro, usando um for, e a cada vez que o valor da posição atual do array for maior que 75, você usa um contador, adicionando +1;
Corrija ai e mande de novo.

[]´s

H

davidbuzatto:
Pq vc usou um outro array???
Olha o que você esta fazendo! Comparando o tamanho de sequencia[] com 75 (sendo que você declarou com tamanhpo 10). Nunca vai entrar no if :shock:
E essa variável seque? Vem de onde?

Você tem que percorrer o array passado como parâmetro, usando um for, e a cada vez que o valor da posição atual do array for maior que 75, você usa um contador, adicionando +1;
Corrija ai e mande de novo.

[]´s

Obrigado amigo, mas não ficou bem claro a linha 1, o professor começou por ela, quando que usa o int ou o long?

davidbuzatto

halflife1940:
davidbuzatto:
Pq vc usou um outro array???
Olha o que você esta fazendo! Comparando o tamanho de sequencia[] com 75 (sendo que você declarou com tamanhpo 10). Nunca vai entrar no if :shock:
E essa variável seque? Vem de onde?

Você tem que percorrer o array passado como parâmetro, usando um for, e a cada vez que o valor da posição atual do array for maior que 75, você usa um contador, adicionando +1;
Corrija ai e mande de novo.

[]´s

Obrigado amigo, mas não ficou bem claro a linha 1, o professor começou por ela, quando que usa o int ou o long?

int e long são tipos primitivos para representar números interios. o tipo int ocupa 32 bits, enquanto o long ocupa 64 bits, sendo assim, o long consegue representar números maiores.

W

HalfLife1940,

A questão não seria quando se usa int ou long, e sim você tem dois vetores, um vetor no inicio do metodo e você declara outro, tente trabalhar com o que já existe

public int sequencia (long seq[]){	
int sequencia[] = new int[10];

O seu if verifica se o tamanho (lenght) do vetor é maior do que 75 e não o que tem na posição.

if(sequencia.lenght > 75){
			seque++;
		}

Procura aqui no forum mesmo, a utilização do laço for que vai resolver este problema, ai todo vez que passar no for você incrementa seu contador, e ai problema resolvido. Tenta so você não conseguir posta ai denovo que tento te ajudar, mas não esquece que este codigo que voce criou será mudado bastante

H

Cheguei nesse for, esta correto o que eu fiz?

public int sequencia (long seq[]){  
				
			int sequencia[] = new int[10];  
			
			for (sequencia = 0; sequencia < 9; seq++){ // Percorre o vetor e incrementa
				
				if (sequencia == 75)      // Verifica se possui o nº75
                                               }

                             System.out.println (" Quantidade de nº maiores que 75: " + seq);		
   }
}
davidbuzatto

Pq vc precisa de um array dentro do método?
Vc não está entendendo isso.
Seu arrai interno não tem nada "dentro". Você precisa fazer as comparações no array que é passado por parâmetro e obter o tamanho dele dinamicamente dentro do for.

public int sequencia( long[] seq ) {

    // contador para os itens maiores que 75
    int cont = 0;

    // itera por todas as posições de "seq" (array passado como parâmetro)
    for ( int i = 0; i < seq.length; i++ ) {

        // se o valor da posição i (0, 1, 2, 3, ... tamanhoArray(length) for maior que 75
        // incrementa o contador
        if ( seq[i] > 75 ) {
            cont++;
        }

    }

    // retorna o contador
    return cont;

}

Note que o método sequencia vai retornar a quantidade de valores maiores que 75. Ai basta vc usar o método em algum outro método da sua classe

// código de algum outro método...
// array para teste
int[] array = new int[]{ 1, 2, 3, 54, 23, 65, 75, 75, 234, 75, 234, 2 };

// sequencia vai retornar o valor 5
System.out.println( "Quantidade de nº maiores que 75: " + sequencia( array ) );

[]´s

H
davidbuzatto:
Pq vc precisa de um array dentro do método? Vc não está entendendo isso. Seu arrai interno não tem nada "dentro". Você precisa fazer as comparações no array que é passado por parâmetro e obter o tamanho dele dinamicamente dentro do for.
public int sequencia( long[] seq ) {

    // contador para os itens maiores que 75
    int cont = 0;

    // itera por todas as posições de "seq" (array passado como parâmetro)
    for ( int i = 0; i < seq.length; i++ ) {

        // se o valor da posição i (0, 1, 2, 3, ... tamanhoArray(length) for maior que 75
        // incrementa o contador
        if ( seq[i] > 75 ) {
            cont++;
        }

    }

    // retorna o contador
    return cont;

}

Note que o método sequencia vai retornar a quantidade de valores maiores que 75. Ai basta vc usar o método em algum outro método da sua classe

// código de algum outro método...
// array para teste
int[] array = new int[]{ 1, 2, 3, 54, 23, 65, 75, 75, 234, 75, 234, 2 };

// sequencia vai retornar o valor 5
System.out.println( "Quantidade de nº maiores que 75: " + sequencia( array ) );

[]´s

Muito obrigado agora entendi, no final você definiu os valores do array e imprimiu a mensagem.

Criado 7 de setembro de 2010
Ultima resposta 8 de set. de 2010
Respostas 7
Participantes 3