abril 26, 2013

Pilas (Stack)

Una pila o stack es una lista de elementos a la cual se le pueden insertar o extraer elementos solo por uno de sus extremos. Las pilas son estructuras de datos en las que la inserción de datos se hace por el frente y la eliminación de los datos de igual manera se hace por el frente, se elimina un dato por el mismo lado de donde se inserta; debido a esta característica de inserción y eliminación de datos también se le conoce como estructura LIFO (Last-In, First-Out: Ultimo en entrar, primero en salir).

Una representación analógica de una pila con objetos cotidianos, podría ser una pila de platos: En una mesa se colocan muchos platos uno encima del otro (una pila de platos), para colocar un nuevo plato en la pila se coloca el plato en la cima de la pila. Para sacar un plato de la pila es necesario sacar el plato que esta encima de la pila (el ultimo plato que fue colocado en la pila de platos).

(a) Una pila de libros. (b) Una pila de CD's. (c) Una pila de platos.

Al igual que en en la analogía de la pila de platos, en las pilas de datos la información se almacena de la misma manera y se inserta nueva información y se elimina un dato del mismo modo. Ahora, para comodidad del lector vamos a representar una pila de datos de la siguiente manera:


En la figura anterior podemos observar una pila de datos con 4 elementos apilados. Podrían ser 4 elementos de cualquier tipo, hablando de programación en Java podrían ser: int, string o incluso objetos.

abril 24, 2013

Longitud de un arreglo

Al manejar arreglos, nos es de mucha ayuda mucho saber su longitud. Pero no solo su longitud de capacidad nos puede ser de ayuda, hay ciertos casos en los que podríamos llegar a necesitar saber la longitud de cada elemento que se encuentra dentro de nuestro arreglo. Para esto, el siguiente programa te muestra una forma de hacerlo.

/**
 * Archivo: LongitudDeUnArreglo.java
 * @author Bello Cerecero
 * @since 24/04/2013
 * @version 1.0
 */
public class LongitudDeUnArreglo 
{
  public static void main(String[] args) 
  {
    String[] arreglo = new String[10];
    arreglo[0] = "Hola";
    arreglo[1] = "Tarde";
        
    System.out.print("La longitud del arreglo es: ");
    System.out.println(arreglo.length);       
    System.out.print("La long. del dato en la posicion 0 es: ");
    System.out.println(arreglo[0].length());
    System.out.print("La long. del dato en la posicion 1 es: ");
    System.out.println(arreglo[1].length());
  }
}
El programa lo que haces es: crear un arreglo de tipo String con una longitud de 10 (linea 11).
Después, al arreglo en la posición 0 le asignamos la String "Hola" y en la posición 1 le asignamos la String "Tarde" (lineas 12 y 13). 
Ahora en la linea 15 imprimimos en consola solamente, en la linea 16 colocando el nombre de nuestro array que para este ejemplo es: "arreglo" y llamando al método "length", nos imprimirá en consola la longitud del arreglo, que para este ejemplo es 10.
En la linea 16 imprimimos en consola solamente. En la linea 17 haciendo referencia al elemento que se encuentra en la posición 0 dentro del arreglo y llamando al método "length()" (la diferencia con el anterior método son los paréntesis), esto nos retornara la longitud del elemento "Hola" que es 4.
Lo mismo pasa en la linea 18.

La salida del programa es la siguiente:

abril 23, 2013

Conversión de grados a radianes

Este método te ayudara a resolver tu conversión de grados a radianes, solo tienes que pasarle el angulo al que quieres hacer la conversión.

public double conversionGaR(double angulo)
{
  double radianes = (angulo*3.14169)/180;
  return radianes;
}

Bien, como vemos es un método muy simple, con un solo parámetro (el angulo) y al hacer la operación retornara la conversión (double).

abril 18, 2013

Uso de la palabra THIS

La palabra this es una referencia al propio objeto en el que estamos. Supongamos que en un método un parámetro tiene el mismo nombre que alguna de nuestra variable de clase, entonces para poder distinguir la sentencia sería de la siguiente manera: this.nombreVariable = nombreParametro

Existen otros tres posibles usos para la palabra this, estos son:
- this.atributo. Para acceder a una propiedad del objeto actual.
- this.método(parámetros). Permite llamara un método del objeto actual con los parámetros indicados.
- this(parámetros). Permite llamar a un constructor del objeto actual. Esta llamada sólo puede ser empleada      en la primera línea de un constructor.

Estos tres usos serán vistos en otras publicaciones, por ahora solo veremos como se hace la referencia al objeto actual. Para esto se realizo el siguiente programa:


/**
 * Archivo: PalabraThis.java
 * @author BelloCerecero
 * @version 1.0
 * @since 18-abril-2013
 */

public class PalabraThis 
{
   private int puntoX;
   private int puntoY;

   public void actualizar(int puntoX, int puntoY)
   {
      this.puntoX = puntoX;
      this.puntoY = puntoY;
   }
}


Bien, como vemos tenemos dos variables atributos, que son "puntoX" y "puntoY" y creamos un método al que llamamos "actualizar" que recibe dos parámetros que tienen el mismo nombre que nuestras variables atributo, entonces en la linea 15 a la variable "puntoX" le agregamos la palabra reservada "this" así que queda de la siguiente manera "this.puntoX", al hacer esto estamos dejando en claro que hacemos referencia a la variable atributo y no al parámetro. Así que a la variable atributo se le asignara el parámetro "puntoX" (sin la palabra reservada this) lo mismo pasa en la linea 16.