GENERAR NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM Y MÉTODO NEXTINT. EJERCICIO EJEMPLO RESUELTO. (CU00672B)

Documentos relacionados
DOCUMENTAR PROYECTOS JAVA CON JAVADOC. COMENTARIOS, SÍMBOLOS, TAGS (DEPRECATED, PARAM, RETURN, ETC.) (CU00680B)

LA CLASE ARRAYLIST DEL API DE JAVA. MÉTODOS ADD, SIZE, ETC. CONCEPTO DE CLASE GENÉRICA O PARAMETRIZADA (CU00665B)

EJERCICIOS RESUELTOS. EJEMPLOS CON NÚMEROS ALEATORIOS EN JAVA. RANDOM NEXTINT, NEXTDOUBLE, ETC. (CU00909C)

EJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS. LA PALABRA CLAVE THIS (CU00652B)

GENERACIÓN DE NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00908C)

CLASE ARRAYS DEL API JAVA. MÉTODOS PARA ARRAYS EQUALS (COMPARAR), COPYOF (COPIAR), FILL (RELLENAR). EJEMPLOS. (CU00676B)

SOBREESCRIBIR MÉTODOS EN JAVA: TOSTRING, EQUALS. EJEMPLOS Y EJERCICIOS RESUELTOS. COMPARAR OBJETOS. (CU00694B)

TIPO Y MÉTODO ITERATOR. ERROR JAVA.UTIL.CONCURRENT MODIFICATIONEXCEPTION. RESUMEN DE TIPOS DE BUCLES EN JAVA. (CU00667B)

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

Java ENTRADA ESTÁNDAR

Clase adicional 2. Estructuras básicas de control. Temas

REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C)

ARRAYS O ARREGLOS. EJEMPLOS CON OBJETOS Y TIPOS PRIMITIVOS. CAMPO LENGTH. RESUMEN TIPOS DE COLECCIONES JAVA. (CU00669B)

Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)

EJERCICIOS DE PROGRAMACIÓN EN C. DIBUJAR UN ROMBO O DIAMANTE. CALCULAR SUMATORIOS. (CU00542F)

CLASE DATE DEL API JAVA. MÉTODOS BEFORE, AFTER, TOLOCALESTRING, TOGMTSTRING Y GETTIME. EJEMPLOS. (CU00924C)

PROGRAMACIÓN ORIENTADA A OBJETOS. Java se parece mucho a C pero sin todo lo que nos traía problemas.

PROGRAMACIÓN ORIENTADA A OBJETOS. Java se parece mucho a C pero sin todo lo que nos traía problemas.

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS

PROYECTOS JAVA. CLÁUSULAS PACKAGE E IMPORT. JERARQUÍA Y VISIBILIDAD DE CLASES. ORGANIZACIÓN EN BLUEJ. EJEMPLOS. (CU00674B)

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Programación en JAVA. Ejercicios de SECUENCIA

LA PALABRA CLAVE THIS EN JAVA. CONTENIDO NULL POR DEFECTO DE UN OBJETO. SOBRECARGA DE NOMBRES. EJEMPLOS (CU00654B)

CONCEPTO O DEFINICIÓN DE HERENCIA EN JAVA Y EN PROGRAMACIÓN ORIENTADA A OBJETOS. QUÉ ES? EXTENDS. EJEMPLOS. (CU00684B)

Tema 7: Polimorfismo. Índice

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

Lenguaje de Programación MSc. Daniel Alejandro Yucra Sotomayor

IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B)

GENERAR NÚMEROS O SECUENCIAS ALEATORIOS EN C. SRAND Y RAND. TIME NULL. RAND_MAX. (CU00525F)

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:

Curso Informática Lección 2. Introducción a la programación en Java

StringBuffer, Math y Wrapper

En este capitulo se estudiarán los conceptos relacionados a métodos, como lo son sobrecarga, métodos estáticos.

INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)

Programación Java. Introducción a Archivos de datos de Entrada

Instrucción de selección múltiple switch.

Estructuras de control selectivas

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

La clase estándar Scanner

Estructura de datos y Programación

Bloque II. Elementos del lenguaje de programación Java

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

EJEMPLO EJERCICIO RESUELTO CON POLIMORFISMO, SOBREESCRITURA DE MÉTODOS Y HERENCIA JAVA. CÓDIGO (CU00691B)

INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C)

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

TIPOS DE BUCLES O CICLOS DE REPETICIÓN EN PHP: WHILE, DO WHILE Y FOR. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00822B)

La Plataforma J2SE (Java 7) PROGRAMA HOLA MUNDO

PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B)

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

EJERCICIOS BÁSICOS DE PROGRAMACIÓN EN C RESUELTOS. VARIABLES, PRINTF, SCANF, CÁLCULOS. (CU00527F)

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C)

INTERFACE COLLECTION DE JAVA.UTIL DEL API JAVA. EJERCICIOS Y EJEMPLOS RESUELTOS. MÉTODOS ADD, REMOVE, SIZE. STREAMS (CU00917C)

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.

Curso de Java Introducción a la Programación I

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Práctica No. 2. Tipos de Datos y Entrada/Salida Estándar

REDONDEAR A 2 O MÁS DECIMALES EN JAVA. PROBLEMA Y ERRORES DE PRECISIÓN DECIMAL Y REDONDEO. BIGINTEGER, BIGDECIMAL (CU00907C)

LA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C)

Introducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens

Curso Informática Lección 6. Métodos de objetos y clases

Un string nulo es aquél que no contiene caracteres, pero es un objeto de la clase String. Sin embargo,

Programación Orientada a Objetos

Arreglos Unidimensionales En este tipo de arreglo se hace uso de un índice solamente para hacer referencia a una posición particular del arreglo.

Práctica 5c. Práctica 5c. José M. Ordax

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Práctica 1 Pasa la calculadora

Capítulo 3. Introducción a la programación. Continuar

Tema 3. Estructuras de control y programación estructurada

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Estructuras de control condicionales

3. Tipos primitivos de dato

Apunte JAVA + SVN. Emi Höss

PROGRAMACIÓN GENÉRICA

CÓMO CREAR CONSTRUCTORES E INICIALIZAR OBJETOS EN JAVA. EJERCICIO EJEMPLO RESUELTO. (CU00639B)

REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C)

AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F)

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

Clases abstractas e interfaces en Java

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Metodología y Tecnología de la Programación

EXAMEN PARCIAL 23 de Octubre de 2015 Programación I. Grado en Matemáticas e Informática ETSIINF UPM

CONCEPTO Y DEFINICIÓN DE CLASE EN JAVA. OBJETOS DEL MUNDO REAL Y ABSTRACTOS. EJEMPLOS. EJERCICIO (CU00644B)

Examen escrito de Programación I

Sintaxis básica, variables y 7pos

EL MÉTODO EQUALS EN JAVA. DIFERENCIA ENTRE IGUALDAD E IDENTIDAD. COMPARAR OBJETOS. EJEMPLOS. (CU00662B)

TEMA 1. Introducción a la programación. CONSIDERACIONES GENERALES.

Estructuras de control repetitivas/iterativas

Select Case Visual Basic. Palabras clave To, Is. Instrucción Según (Caso) Hacer. Ejemplos y ejercicios resueltos (CU00325A)

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Tema 3 Constantes, Variables y Tipos

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

Transcripción:

APRENDERAPROGRAMAR.COM GENERAR NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM Y MÉTODO NEXTINT. EJERCICIO EJEMPLO RESUELTO. (CU00672B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión: 2029 Resumen: Entrega nº72 curso Aprender programación Java desde cero. Autor: Alex Rodríguez

GENERAR NÚMEROS ALEATORIOS EN JAVA Hay varias maneras de generar números aleatorios en Java. Entre ellas, métodos previstos por las clases Math y Random. La terminología puede resultarnos inicialmente confusa, pues la clase Math dispone de un método denominado random(), mientras que Random es a su vez el nombre de otra clase. La generación de números aleatorios por ordenador no es tan sencilla como pueda parecer debido a que la operación de los ordenadores es determinística: se apoya en el hecho de que todo cálculo es predecible y repetible. Por ello conviene tener presente que sería más apropiado usar el término pseudoaleatorio para referirnos a los números aparentemente aleatorios que podemos obtener de un ordenador. Vamos a ver un extracto de la documentación de la clase Random (ten en cuenta que pueden existir pequeñas diferencias según la versión de Java que estés utilizando). Para utilizarla habremos de indicar en cabecera import java.util.random; o de forma más general import java.util.*;. Para generar números (pseudo) aleatorios vamos a tener que crear un objeto de tipo Random y luego invocar un método sobre ese objeto que nos devuelva el (pseudo) aleatorio. Veamos el extracto de documentación: java.util Class Random java.lang.object java.util.random Un objeto de esta clase se usa para generar una secuencia (stream) de números pseudoaleatorios a partir de un valor inicial o semilla. Si dos instancias de la clase Random son creadas con la misma semilla, y se ejecutan las mismas instrucciones para ambas instancias, se generarán y devolverán idénticas secuencias de números. Constructor Summary (se omiten algunos constructores) Random() Crea un generador de números aleatorios. Usando este constructor, en cada invocación Java se encarga de que la semilla para generación de aleatorios sea siempre distinta.

Method Summary (sólo algunos métodos, otros se omiten) boolean double nextboolean() Devuelve un valor true o false de forma pseudoaletoria. La probabilidad de obtener un valor u otro es de aproximadamente la mitad. nextdouble() Devuelve un pseudoaleatorio de tipo double, uniformemente distribuido entre 0.0 y 1.0. float nextfloat() Devuelve un pseudoaleatorio de tipo float, uniformemente distribuido entre 0.0 y 1.0. int int long Otros nextint() Devuelve un pseudoaleatorio de tipo int con valores entre 0 y 2 32 producidos con aproximadamente la misma probabilidad. nextint(int n) Devuelve un pseudoaleatorio de tipo int comprendido entre cero (incluido) y el valor especificado (excluido). nextlong() Devuelve un pseudoaleatorio de tipo long. Existen más métodos (consultar la documentación del API de Java para ampliar información) Vamos a escribir un programa que utiliza la clase Random. Además también utiliza el print en lugar del println y el carácter de escape \n para forzar cambio de línea y retorno de carro. Utilizaremos la clase EntradaDeTeclado que ya hemos escrito y usado en programas anteriores, aunque con una pequeña variación en el constructor. Escribe el código de las siguientes clases. import java.util.scanner; //Importación de la clase Scanner desde la biblioteca Java public class EntradaDeTeclado { // Definimos la clase EntradaDeTeclado aprenderaprogramar.com private String entradateclado; //Variable de instancia (campo) del método //Constructor public EntradaDeTeclado () { entradateclado=""; } //Cierre del constructor public void pedirentrada () { //Método de la clase Scanner entradaescaner = new Scanner (System.in); entradateclado = entradaescaner.nextline (); } //Cierre del método pedirentrada public String getentrada () { return entradateclado; } //Cierre del método getentrada } //Cierre de la clase

import java.util.arraylist; import java.util.random; //Ejemplo aprenderaprogramar.com //Esta clase define objetos que contienen tantos enteros aleatorios entre 0 y 1000 como se definan public class SerieDeAleatorios { //Campos de la clase private ArrayList<Integer> seriealeatoria; //Constructor public SerieDeAleatorios (int numeroitems) { seriealeatoria = new ArrayList<Integer> (); //Inicializamos el ArrayList lleno de ceros for (int i=0; i<numeroitems; i++) { seriealeatoria.add(0); } System.out.println ("Serie inicializada. El número de elementos en la serie es: " + getnumeroitems() ); } //Cierre del constructor public int getnumeroitems() { return seriealeatoria.size(); } //Cierre del método public void generarseriedealeatorios () { Random numaleatorio; numaleatorio = new Random (); for (int i=0; i < seriealeatoria.size(); i++) { seriealeatoria.set(i, numaleatorio.nextint(1000) ); } System.out.print ("Serie generada! "); } //Cierre del método public void mostrarserie() { System.out.print ("Procedemos a mostrar la serie: "); for (Integer tmpobjeto : seriealeatoria) { //Uso de for each System.out.print (" " + tmpobjeto.tostring() ); } //Cierre del for extendido } //Cierre del método } //Cierre de la clase // Programa Test de obtención de números pseudoaleatorios aprenderaprogramar.com public class TestPseudoAleatorios { public static void main (String [ ] Args) { Integer tmpinteger = 0; EntradaDeTeclado entradamain = new EntradaDeTeclado(); char tecla = 'S'; while (tecla =='S') { System.out.print ("Por favor introduzca el número de elementos en la serie de números aleatorios: "); entradamain.pedirentrada(); tmpinteger = tmpinteger.valueof (entradamain.getentrada() ); SerieDeAleatorios seriedeprueba = new SerieDeAleatorios ( (int) tmpinteger); seriedeprueba.generarseriedealeatorios(); seriedeprueba.mostrarserie(); tecla = ' '; System.out.println ("\n Generar otra serie (S/N):"); while (tecla!='n' && tecla!='n' && tecla!='s' && tecla!='s') { entradamain.pedirentrada(); //Ojo tenemos que comparar usando equals porque los string son objetos!!!! if (entradamain.getentrada().equals("n") entradamain.getentrada().equals("n") ) { tecla = 'N'; } else if (entradamain.getentrada().equals("s") entradamain.getentrada().equals("s") ) { tecla = 'S'; } } //Cierre del while interior } //Cierre del while exterior System.out.println ("Gracias por utilizar el programa"); } } //Cierre del main y de la clase

El resultado del programa será similar a este: Por favor introduzca el número de elementos en la serie de números aleatorios: 3 Serie inicializada. El número de elementos en la serie es: 3 Serie generada! Procedemos a mostrar la serie: 745 777 24 Generar otra serie (S/N): S Por favor introduzca el número de elementos en la serie de números aleatorios: 7 Serie inicializada. El número de elementos en la serie es: 7 Serie generada! Procedemos a mostrar la serie: 314 520 402 944 71 248 839 Generar otra serie (S/N): N Gracias por utilizar el programa EJERCICIO Crea un programa Java que permita jugar a adivinar un número como se expone a continuación. El programa debe iniciarse indicando Se ha generado un número aletatorio entero entre 1 y 100, intente adivinarlo. El usuario introducirá un número y si el número aleatorio generado por el ordenador es menor deberá indicarse No has acertado: el número es menor. Prueba otra vez. Si el usuario introduce un número menor que el número aleatorio deberá indicarse No has acertado: el número es mayor. El programa terminará cuando el usuario introduzca el número aleatorio que había escogido el ordenador. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com. Próxima entrega: CU00673B Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&itemid=188