• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

lamuria

Inserir um intervalo de valores

12 mensagens neste tópico

pessoal tenho aqui um código fonte em que o o método criado não está a fazer nada. alguém me pode ajudar solucionar o problema?

o objectivo do programa é:

inserir um intervalo de valores e dps o método deveria retornar um valor dentro do intervalo que eu inseri.

import java.util.*;

public class ex2{

public static int genRandom(int inf, int sup){

int Randomvalue= ((int)Math.random())*100;

if(inf<=Randomvalue && Randomvalue<=sup){

System.out.println(inf+"<="+Randomvalue+"<="+sup);

}

return Randomvalue;

}

public static void main(String[] args){

int inf, sup;

Scanner input= new Scanner (System.in);

inf = input.nextInt();

sup = input.nextInt();

int valores= genRandom(inf, sup);

}

}

obrigado

EDIT: Assunto modificado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

import java.util.*;
public class ex2
{
   public static void main(String[] args)
   { 
      int inf, sup;
      Scanner teclado = new Scanner (System.in);
      System.out.println("Digite o número mais baixo do intervalo: ");
      inf = teclado.nextInt();
      teclado.nextLine(); //limpa o buffer
      
      System.out.println("Digite o número mais alto do intervalo: ");
      sup = teclado.nextInt();
      teclado.nextLine(); //limpa o buffer
      
      System.out.println("Número aleatorio dentro do intervalo: ");
      System.out.println( genRandom(inf, sup) );
      
      
   }
   
   public static int genRandom(int inf, int sup)
   {
      int intervaloDeValores = sup - inf;
      int randomvalue = (int)(Math.random() * intervaloDeValores) + inf; 
      
      return randomvalue;
    }
}

A explicação é simples: crias um valor aleatorio que esteja dentro do tramo (superior menos inferior) e depois somas o valor inferior para que o valor mínimo do aleatorio seja o mínimo do tramo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que tal assim?

import java.util.Random;

-----

-----

Random rdm = new Random();

int numero = rdm.nextInt(maximo) + minimo;

o nextInt vai.t dar um numero entre 0 e maximo, e depois acrescentas o minimo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que tal assim?

import java.util.Random;

-----

-----

Random rdm = new Random();

int numero = rdm.nextInt(maximo) + minimo;

o nextInt vai.t dar um numero entre 0 e maximo, e depois acrescentas o minimo.

Acho que o objectivo dele é arranjar um numero aletoario dentro de um intervalo especifico.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim eu sei.

O nextInt(50), neste caso, gera-te um numero aleatorio entre 0 e 49, porque a contar com o zero faz 50 numeros.

A ideia é acrescentar o valor do inicio do intervalo ao resultado.

Por exemplo, queremos um numero entre 1 e 40. Fazemos:

int variavel = rdm.nextInt(40) + 1;

O nextInt(40) vai-te dar um numero entre 0 e 39, e acrescentas 1 ao resultado, para se der 0 ele passa a 1,

ou se der 39 passa a 40.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim eu sei.

O nextInt(50), neste caso, gera-te um numero aleatorio entre 0 e 49, porque a contar com o zero faz 50 numeros.

A ideia é acrescentar o valor do inicio do intervalo ao resultado.

Por exemplo, queremos um numero entre 1 e 40. Fazemos:

int variavel = rdm.nextInt(40) + 1;

O nextInt(40) vai-te dar um numero entre 0 e 39, e acrescentas 1 ao resultado, para se der 0 ele passa a 1,

ou se der 39 passa a 40.

e se quiseres entre 30 e 78 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Random rdm = new Random();

it var = rdm.nextInt(49) + 30;

se der 0, fica 0 + 30 = 30, se der 48 (49 nao conta porque com 0 faz 49 numeros), fica 48 + 30 = 78.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Random rdm = new Random();

it var = rdm.nextInt(49) + 30;

se der 0, fica 0 + 30 = 30, se der 48 (49 nao conta porque com 0 faz 49 numeros), fica 48 + 30 = 78.

Acho que existe um metodo mais simples de fazer isto, mas se funciona obrigado. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol se houver com menos d 2 linhas d codigo, diz-me. :D:):P

(new java.util.Random()).nextInt(49)+30;

:b

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora