// Lab06.java (c) 2000 adolfo@di-mare.com /** @(#)Lab06.java 2007 Ejemplo de una clase que mantiene un vector ordenado. @author Adolfo Di Mare */ import java.io.*; // Clases para leer desde el teclado import java.lang.System; // Esta siempre la importa Java /** Clase para mantener un vector de valores enteros ordenados. */ class Lab06 { /* Capacidad máxima del vector */ public final static int Mx = 5; /** Vector de valores almacenados */ private int m_VEC[]; /** Ultimo componente libre en el vector {@code "m_VEC"} */ private int m_n; /** Constructor por defecto */ public Lab06() { m_n = 0; m_VEC = new int[Mx]; } /** Retorna {@code true} cuando ya no le cabe ningún valor más al vector. */ public boolean lleno() { return m_n >= Mx; } /** Agrega una copia de {@code "v"} al vector. */ public void agregue(int v) { m_VEC[m_n++] = v; reordene(); } /** Retorna la cantidad de valores almacenados en el vector. */ public int cardinalidad() { return m_n; } /** Acceso al valor {@code "V[n]"}. */ public int at(int n) { return m_VEC[n]; } /** Reordena el valor de {@code "this->m_VEC[]"}, de manera que quede ordenado. \pre Se supone que los valores m_VEC[0]...v[m_n-2] ya están en orden. */ private void reordene() { for (int i=m_n-2; i>=0; --i) { if (m_VEC[i] > m_VEC[i+1]) { // intercambia int tmp = m_VEC[i]; m_VEC[i] = m_VEC[i+1]; m_VEC[i+1] = tmp; } } } // reordene() /** Programa principal. */ public static void main( String args[] ) throws IOException { BufferedReader CIN = new BufferedReader( new InputStreamReader(System.in) ); System.out.println( "Comienzo..." ); Lab06 V = new Lab06(); while ( !V.lleno() ) { int m; System.out.println( "Agregue otro número: " ); m = Integer.parseInt( CIN.readLine() ); V.agregue(m); } for (int i=0; i