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
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
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
[quote=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[/quote]
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é!
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.
Acho que assim é mais simples, só não sei se é o que você procurava.
[code]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 < 7; i++)
{
v1[i] = gera.nextInt();
// Verifica se é par ou ímpar
if(v1[i]%2==0)
mensagem += “v[”+i+"] = “+v1[i]+” ==> PAR\n";
else
mensagem += “v[”+i+"] = “+v1[i]+” ==> IMPAR\n";
}
// Exibe o resultado
System.out.println(mensagem);
}
}[/code]
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);
}
}
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… ^^
para saber se o numero é negativo você pode simplesmente fazer:
int numero = ...
if(numero < 0){
// negativo...
}
else{
// positivo...
}
Muito boa essa analise…
Bem mais simples… ^^