Verifica números negativos

8 respostas
B

Grande comunidade,

Preciso separar em um vetor de inteiros os números que são positivos e negativos…o algoritmo ja ta pronto, mas queria saber se existe algum método que retorna se o número é negativo.

Obrigado

8 Respostas

erickcellani

naum sei se eu vou t ajudar mas se vc pegar uma variavel e colocar um - na frente deixará o número negativo

exemplo:

int[][] matriz = new int[1][1];
matriz[0][0] = 1;
-matriz[0][0];

isso retornará - 1

maquiavelbona

barijava:
Grande comunidade,

Preciso separar em um vetor de inteiros os números que são positivos e negativos…o algoritmo ja ta pronto, mas queria saber se existe algum método que retorna se o número é negativo.

Obrigado

Sai mais barato para o processamento a comparação simples. Mas podes usar o método compare ,que existe em bastante classes numéricas.

Até!

B

E aí pessoal,

Hoje com mais tempo resolvi o problema de verificar se o número é negativo ou não, abaixo segue o código.

import javax.swing.JOptionPane;
import java.util.Random;

public class vetor

{

//declaração de variáveis privadas da classe

private int vetor_1[] = new int[8];

private int vetor_2[] = new int[8];

private int vetor_3[] = new int[8];
//método construtor que gera um vetor com números aleatórios
public vetor()
{
	Random gera = new Random();
	
	for(int i=0;i<=7;i++)
	{
		vetor_1[i] = gera.nextInt();
		vetor_2[i] = 0;
		vetor_3[i] = 0;			
	}
}

//método que separa o vetor original em vetores de números pares e impares
public void separa()
{
	int pos_p=0, pos_i=0;
	float sinal;
	
	for(int i=0;i<=7;i++)
	{
		sinal = Math.signum(vetor_1[i]);
		
		if(sinal == 1.0)
		{
			vetor_2[pos_p] = vetor_1[i];
			pos_p++;
		}
		
		else
		{
			vetor_3[pos_i] = vetor_1[i];
			pos_i++;
		} 			
	}
}

//método que exibe o vetor original e os vetores resultantes
public void mostra()
{
	String vetor_origem="", vetor_par="", vetor_impar="";
	
	for(int i=0;i<=7;i++)
	{
	    if(i==7)
	    {
	    	vetor_origem += vetor_1[i]+". ";
	        vetor_par +=  vetor_2[i]+". ";
	        vetor_impar += vetor_3[i]+". ";
	    }
	    
	    else
	    {
	    	vetor_origem += vetor_1[i]+", ";
	        vetor_par += vetor_2[i]+", ";
	        vetor_impar += vetor_3[i]+", ";		    	
	    }
	    	    	    		  
	}	
	
	JOptionPane.showMessageDialog(null,("Vetor original: "+vetor_origem+"\nVetor dos numeros pares: "+vetor_par+"\nVetor dos numeros impares: "+vetor_impar));
}

}

class index

{

public static void main(String[] args)

{

vetor teste = new vetor();

teste.separa();

teste.mostra();

System.exit(0);

}	

}

Abraço a todos.

T

Acho que assim é mais simples, só não sei se é o que você procurava.

import java.util.Random;
public class vetor {
	public static void main(String[] args){
		// Define o vetor
		int v1[] = new int[8];              
		// Cria uma variável String com valor nulo
		String mensagem = "";               
		// Cria uma variável Random para gerar os números do vetor
		Random gera = new Random();         
		// Preenche o vetor com os valores gerados
		for(int i = 0; i &lt 7; i++)            
		{
			v1[i] = gera.nextInt();
			// Verifica se é par ou ímpar
			if(v1[i]%2==0)                  
				mensagem += "v["+i+"] = "+v1[i]+" ==&gt PAR\n";
			else
				mensagem += "v["+i+"] = "+v1[i]+" ==&gt IMPAR\n";
		}
		// Exibe o resultado
		System.out.println(mensagem);       
		
		
	}
}
B

Entaum Taurus me desculpe, eu na verdade errei nos comentários e declaracao de variáveis dos métodos, ao invés de números pares e ímpares o certo é positivos e negativos, abaixo segue o código com os comentários e variáveis corretos. O algoritmo contrói um vetor de inteiros com oito posições com numeros gerados aleatoriamente, os numeros positivos e negativos do vetor são separados em outros dois vetores de 8 posições.

import javax.swing.JOptionPane;
import java.util.Random;

public class vetor

{

//declaração de variáveis protegidas da classe

private int vetor_1[] = new int[8];

private int vetor_2[] = new int[8];

private int vetor_3[] = new int[8];
//método construtor que gera um vetor com números aleatórios
public vetor()
{
	Random gera = new Random();
	
	for(int i=0;i<=7;i++)
	{
		vetor_1[i] = gera.nextInt();
		vetor_2[i] = 0;
		vetor_3[i] = 0;			
	}
}

//método que separa o vetor original em vetores de números positivos e negativos
public void separa()
{
	int pos_p=0, pos_i=0;
	float sinal;
	
	for(int i=0;i<=7;i++)
	{
		sinal = Math.signum(vetor_1[i]);
		
		if(sinal == 1.0)
		{
			vetor_2[pos_p] = vetor_1[i];
			pos_p++;
		}
		
		else
		{
			vetor_3[pos_i] = vetor_1[i];
			pos_i++;
		} 			
	}
}

//método que exibe o vetor original e os vetores resultantes
public void mostra()
{
	String vetor_origem="", vetor_pos="", vetor_neg="";
	
	for(int i=0;i<=7;i++)
	{
	    if(i==7)
	    {
	    	vetor_origem += vetor_1[i]+". ";
	        vetor_pos +=  vetor_2[i]+". ";
	        vetor_neg += vetor_3[i]+". ";
	    }
	    
	    else
	    {
	    	vetor_origem += vetor_1[i]+", ";
	        vetor_pos += vetor_2[i]+", ";
	        vetor_neg += vetor_3[i]+", ";		    	
	    }
	    	    	    		  
	}	
	
	JOptionPane.showMessageDialog(null,("Vetor original: "+vetor_origem+"\nVetor dos numeros positivos: "+vetor_pos+"\nVetor dos numeros negativos: "+vetor_neg));
}

}

class index

{

public static void main(String[] args)

{

vetor teste = new vetor();

teste.separa();

teste.mostra();

System.exit(0);

}	

}
T

barijava, você poderia me explicar o que o Math.signum faz?

Sou novo em Java e no Fórum, gostaria de entender melhor o que isso faz… ^^

F

para saber se o numero é negativo você pode simplesmente fazer:

int numero = ...

if(numero < 0){
  // negativo...
}
else{
  // positivo...
}
T

Muito boa essa analise…
Bem mais simples… ^^

Criado 18 de abril de 2007
Ultima resposta 23 de abr. de 2007
Respostas 8
Participantes 5