Autor Tema: Crear números aleatorios en Java dentro de un rango o intervalo extremo CU00672B  (Leído 3569 veces)

hymsoft

  • Intermedio
  • ***
  • Mensajes: 103
  • hymsoft
    • Ver Perfil
Buen dia!!

Este es mi código para la generación de números aleatorios ejercicio CU00672B del curso básico de programación en lenguaje Java.

Código: [Seleccionar]
/**
 * Clase para manipular la entrada por teclado
 *
 * @author Hugo Segura con correcciones de aprenderaprogramar.com
 */

import java.util.Scanner;

public class EntradaPorTeclado
{
   public EntradaPorTeclado(){}//constructor por defecto
   
   /* Este metodo retorna un String como reultado de lo ingresado
    * por el usuario mediante el teclado
    * El parametro es un String para mostrar un mensaje
    */
   public String pedirEntrada(String mensaje_a_mostrar){
       String entradaTeclado = "";
       
       System.out.print(mensaje_a_mostrar);
       Scanner entradaScanner = new Scanner(System.in);
       entradaTeclado = entradaScanner.nextLine();
       return entradaTeclado;
    }//cierre entradaTeclado
}//Cierre clase

Código: [Seleccionar]
/**
 * Clase AdivinaElNumero para la resolucion del ejercicio CU00672B
 *
 * @author Hugo Segura
 * @version (a version number or a date)
 */
import java.util.Random;

public class AdivinaElNumero
{
    public static void main(String[] args){
        int suNumero = -1;//Guarda el numero ingresado por el usuario
       
        System.out.print("Juguemos a adivinar un número...\n\n");
        //genero el numero aleatorio entre 1-100
        Random aleatorio = new Random();//objeto para generar el numero Pseudoaleatorio
        int miNumero = aleatorio.nextInt(100);
        System.out.println(miNumero);// para "saber" cual es miNumero mientras pruebo el programa
        System.out.println("Se a generado un numero aleatorio entero entre 1 y 100. Intente Adivinarlo");
        do {
            EntradaPorTeclado suEntrada = new EntradaPorTeclado();//objeto para solicitar el ingreso por teclado
            /*Aunque se que esta mal, voy a suponer que el usuario ingresa un numero, entonces no voy a hacer
             * este control y guardo en la variable suNumero, el String devuelto por la clase EntradaPorTeclado,
             * convertido en un entero.
            */
            suNumero = Integer.parseInt(suEntrada.pedirEntrada("Ingrese un numero entre 1 y 100: "));
            if (suNumero < miNumero){
                System.out.println("No has acertado: el número es mayor");
            }
           
            if(suNumero > miNumero){
                System.out.println("No has acertado: el numero es menor");
            }
               
        }while (suNumero != miNumero);
        //si salio del do-while es porque miNumero y suNumero son iguales
        System.out.println("Has acerteado. Gracias por jugar...");
       
       
    }//cierre del main
}//cierre de la clase
« Última modificación: 01 de Agosto 2016, 21:41 por Alex Rodríguez »
"Una persona inteligente es aquel que sabe ser tan inteligente como para contratar gente mas inteligente que el"

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola hymsoft, el ejercicio está bien resuelto con un único problema: el número que generas no está entre 1 y 100, sino entre 0 Y 99

int miNumero = aleatorio.nextInt(100);

Según el api de java

public int nextInt(int bound)

Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)


Es decir, el número está entre 0 incluido y el valor indicado excluido. Tendrías que corregir el intervalo para que fuera correcto.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".