Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Numero {
- public final int valor;
- public Numero(int v){
- valor = v;
- }
- public String toString(){
- return Integer.toString(valor);
- }
- }
- //clase nro 2
- public class NumeroPosicionado {
- private Numero numero;
- private int posicion;
- public NumeroPosicionado(int n, int p){
- numero = new Numero(n);
- posicion = p;
- }
- //ctor copia
- public NumeroPosicionado(Numero n, int p){
- numero = n;
- posicion = p;
- }
- public Numero getNumero(){
- return numero;
- }
- public int getValor(){
- return numero.valor;
- }
- public int getPosicion(){
- return posicion;
- }
- public String toString(){
- return "valor : " + numero + " posicion : " + posicion;
- }
- }
- //clase que actual como vector de NumerosPosicionados
- public class ContenedorDeNumerosPosicionados {
- public static final int CAPACIDAD_PRE_DEFINIDA = 10;
- private NumeroPosicionado[] numeros;
- int posActual = 0;
- public ContenedorDeNumerosPosicionados(){
- this(CAPACIDAD_PRE_DEFINIDA);
- }
- public ContenedorDeNumerosPosicionados(int capacidad){
- numeros = new NumeroPosicionado[capacidad];
- }
- public void agregarNumero(int n){
- insertarEnPosicion(n,getPosActual());
- incrementarPos();
- }
- public int size(){
- return getPosActual();
- }
- public int getValorDeNumero(int pos){
- return getNumero(pos).getValor();
- }
- public String toString(){
- StringBuilder resultado = new StringBuilder("[");
- for(int num = 0; num < size(); ++num){
- resultado.append(numeros[num].getNumero());
- if(num < size() - 1)
- resultado.append(",");
- }
- resultado.append("]");
- return resultado.toString();
- }
- private void insertarEnPosicion(int n , int pos){
- numeros[pos] = new NumeroPosicionado(n,pos + 1);
- }
- private void incrementarPos(){
- posActual++;
- }
- public NumeroPosicionado getNumero(int pos){
- return numeros[pos];
- }
- public int capacidad(){
- return numeros.length;
- }
- public int getPosActual(){
- return posActual;
- }
- }
- //clase de prueba
- public class DemoDeNumeros {
- public static void main(String[] args){
- String n = JOptionPane.showInputDialog("tamano de vector?");
- ContenedorDeNumerosPosicionados nums = new ContenedorDeNumerosPosicionados(Integer.parseInt(n));
- Random generadorDeNumeros = new Random(System.currentTimeMillis());
- for(int i = 0; i < nums.capacidad(); ++i)
- nums.agregarNumero(generadorDeNumeros.nextInt(1000));
- //mostrar resultados
- System.out.println("Numeros Generados : " + nums);
- System.out.println("Menor: "+vmin(nums,nums.size(),nums.getNumero(nums.size() - 1)));
- }
- public static NumeroPosicionado vmin(ContenedorDeNumerosPosicionados nums,
- int size,NumeroPosicionado menor){
- if(size <= 0)
- return menor;
- else if(nums.getValorDeNumero(size -1) < menor.getValor())
- return vmin(nums,--size,nums.getNumero(size));
- else
- return vmin(nums,--size,menor);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement