Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. public class Numero {
  2. public final int valor;
  3.  
  4. public Numero(int v){
  5. valor = v;
  6. }
  7.  
  8. public String toString(){
  9. return Integer.toString(valor);
  10. }
  11. }
  12.  
  13. //clase nro 2
  14. public class NumeroPosicionado {
  15. private Numero numero;
  16. private int posicion;
  17.  
  18. public NumeroPosicionado(int n, int p){
  19. numero = new Numero(n);
  20. posicion = p;
  21. }
  22.  
  23. //ctor copia
  24. public NumeroPosicionado(Numero n, int p){
  25. numero = n;
  26. posicion = p;
  27. }
  28.  
  29. public Numero getNumero(){
  30. return numero;
  31. }
  32.  
  33. public int getValor(){
  34. return numero.valor;
  35. }
  36.  
  37. public int getPosicion(){
  38. return posicion;
  39. }
  40.  
  41. public String toString(){
  42. return "valor : " + numero + " posicion : " + posicion;
  43. }
  44. }
  45.  
  46. //clase que actual como vector de NumerosPosicionados
  47. public class ContenedorDeNumerosPosicionados {
  48. public static final int CAPACIDAD_PRE_DEFINIDA = 10;
  49. private NumeroPosicionado[] numeros;
  50. int posActual = 0;
  51.  
  52. public ContenedorDeNumerosPosicionados(){
  53. this(CAPACIDAD_PRE_DEFINIDA);
  54. }
  55. public ContenedorDeNumerosPosicionados(int capacidad){
  56. numeros = new NumeroPosicionado[capacidad];
  57. }
  58.  
  59. public void agregarNumero(int n){
  60. insertarEnPosicion(n,getPosActual());
  61. incrementarPos();
  62. }
  63.  
  64. public int size(){
  65. return getPosActual();
  66. }
  67.  
  68.  
  69. public int getValorDeNumero(int pos){
  70. return getNumero(pos).getValor();
  71. }
  72.  
  73. public String toString(){
  74. StringBuilder resultado = new StringBuilder("[");
  75. for(int num = 0; num < size(); ++num){
  76. resultado.append(numeros[num].getNumero());
  77. if(num < size() - 1)
  78. resultado.append(",");
  79. }
  80. resultado.append("]");
  81. return resultado.toString();
  82. }
  83.  
  84. private void insertarEnPosicion(int n , int pos){
  85. numeros[pos] = new NumeroPosicionado(n,pos + 1);
  86. }
  87.  
  88. private void incrementarPos(){
  89. posActual++;
  90. }
  91.  
  92. public NumeroPosicionado getNumero(int pos){
  93. return numeros[pos];
  94. }
  95.  
  96. public int capacidad(){
  97. return numeros.length;
  98. }
  99.  
  100. public int getPosActual(){
  101. return posActual;
  102. }
  103. }
  104.  
  105. //clase de prueba
  106. public class DemoDeNumeros {
  107. public static void main(String[] args){
  108. String n = JOptionPane.showInputDialog("tamano de vector?");
  109. ContenedorDeNumerosPosicionados nums = new ContenedorDeNumerosPosicionados(Integer.parseInt(n));
  110. Random generadorDeNumeros = new Random(System.currentTimeMillis());
  111.  
  112. for(int i = 0; i < nums.capacidad(); ++i)
  113. nums.agregarNumero(generadorDeNumeros.nextInt(1000));
  114. //mostrar resultados
  115. System.out.println("Numeros Generados : " + nums);
  116. System.out.println("Menor: "+vmin(nums,nums.size(),nums.getNumero(nums.size() - 1)));
  117. }
  118.  
  119. public static NumeroPosicionado vmin(ContenedorDeNumerosPosicionados nums,
  120. int size,NumeroPosicionado menor){
  121. if(size <= 0)
  122. return menor;
  123. else if(nums.getValorDeNumero(size -1) < menor.getValor())
  124. return vmin(nums,--size,nums.getNumero(size));
  125. else
  126. return vmin(nums,--size,menor);
  127. }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement