martes, 11 de junio de 2019

Generar números Enteros aleatorios para un rango de valores


Para generar números aleatorios enteros para un rango de valores, haremos lo siguiente:
1) Crear la Clase Aleatorios.
2) Comprobar la clase en un main utilizando un objeto aleatorio.

Creación de la Clase Aleatorios

import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;

/**
 *
 * @author Prof. Carlos G. Bustamante
 * La siguiente clase generará un número entero aleatorio
 * comprendido entre los valores 1 y Limite (valor que le pasaremos  
 * en el método Constructor).
 */
public class Aleatorios {

    private int Limite;
    private SecureRandom sr = new SecureRandom();

    public Aleatorios(int Limite) {     
        this.Limite = Limite;                     
    }

    public int getLimite() {
        return Limite;
    }

    public void setLimite(int Limite) {
        this.Limite = Limite;
    }
 
    public int getAleatorio() throws NoSuchProviderException, NoSuchAlgorithmException{
       sr = SecureRandom.getInstance("SHA1PRNG", "SUN");
       return sr.nextInt(Limite)+1; // sumamos +1 para que no retorne un cero.
    }

}

Prueba de la clase Aleatorios.

Creamos un objeto (numAle) de la clase Aleatorios para obtener 10 números enteros aleatorios comprendidos entre 1 y 100.



import ejercicios.Clases.Aleatorios;  // ruta de mi archivo clase Aleatorios

import java.awt.Frame;

import java.security.NoSuchAlgorithmException;

import java.security.NoSuchProviderException;

        
/**
 * @author Prof. Bustamante Carlos G.
 */
public class Ejercicios {

    public static void main(String[] args) throws NoSuchProviderException, NoSuchAlgorithmException {
        Frame parent = null;

    Aleatorios numAle = new Aleatorios(100);
    for(int i = 0; i < 10; i++) { // impresion de 10 numeros aleatorios
        System.out.println(i+" Valor :"+numAle.getAleatorio());
    }             
}



jueves, 6 de junio de 2019

Ejercicios para Java (Netbeans)


TEMA: CLASE – Objeto – Métodos.

Ejercicio N° 01. (Contador)

Crea una clase Contador que tendrá un único atributo llamado cont de tipo entero, el cual se actualizara.
La clase tendrá los siguientes constructores:
· Constructor por defecto.
· Constructor con parámetros para inicializar el contador con un valor no negativo. Si el valor inicial que se recibe es negativo el contador tomará el valor cero como valor inicial.

Otros métodos:
·        getter y setter.

    Implementar para la clase los siguientes métodos:
  1. getter y setter.
  2. Incrementar(): incrementa el contador en una unidad.
  3. Incrementar2():incrementa el contador en dos unidades más.
  4. Decrementar(): resta el contador en una unidad. El contador nunca podrá tener un valor negativo. Si al restar se alcanza un valor negativo el contador toma el valor cero.
  5. Decrementar2(): resta el contador en dos unidades menos. El contador nunca podrá tener un valor negativo. Si al restar doble se alcanza un valor negativo el contador toma el valor cero.
  6. Duplicar(): duplica el valor del contador.
  7. Triplicar(): triplica el valor del contador.


Una vez creada la clase, escribe un método main para probar la clase.

Resolución

//Clase Contador
public class Contador {

    private int Cont;

    public Contador() {
    }

    public Contador(int Cont) { // no puede instanciar el objeto con valor negativo.
     if (Cont > 0)        
        this.Cont = Cont;
     else
       this.Cont = 0;
    }
     //constructor copia
    public Contador(final Contador c) {
        Cont = c.Cont;
    }

    public int getCont() {
        return Cont;
    }

    public void setCont(int Cont) {
        if (Cont < 0) {
            this.Cont = 0;
        } else {
            this.Cont = Cont;
        }
    }

    public void Incrementar() {
        Cont++;
      // otra forma valida seriá
     // setCont(  getCont()  +1);
    }

    public void Incrementar2() {
        Cont = Cont + 2;
    }
   
    public void Duplicar(){
        Cont= Cont * 2;
    }

    public void Triplicar(){
        Cont= Cont * 3;
    }
   
    public void Cuatrtiplicar(){
        Cont= Cont * 4;
    }  

    public void Decrementar() {
        Cont--;
        if (Cont < 0)
           Cont = 0; 
    }

    public void Decrementar2() {
   // recordar que la propiedad Cont nunca puede pasar a tener valor negativo
        Cont = Cont - 2;
        if (Cont < 0)
           Cont = 0;         
    }   
}  // fin de la clase Contador