Clase Matriz

Ago 04

En un proyecto que trabaje a fines del año pasado, me surgió la necesidad de realizar algunas operaciones con matrices. Y para no tenerlas por separado las fui incorporando a una clase que denomine "Matriz".
La clase Matriz es una clase que he extendido de la clase Array, (es decir tiene todos los métodos y propiedades de un array) a la cual le he agregado 6 nuevos métodos.

  • agregar();
    public function agregar(matriz:Array):void
    Agrega los elementos de la matriz pasada por parámetro a la matriz actual.

        Parámetros

      1. matriz:Array — Matriz de elementos que se desean agregar a la matriz actual
  • crearMatrizNumerica ()
    public function crearMatrizNumerica(desde:int, hasta:int):void
    Agrega valores numéricos enteros desde y hasta los valores pasados por los parámetros.

        Parámetros

      1. desde:int— Numero entero desde donde inicia la matriz numérica.
      2. hasta:int— Numero entero hasta donde llega la matriz numérica.
  • desordenar()
    public function desordenar():void
    Desordena de manera aleatoria los elementos de la matriz.

    1. enviarAlInicio()
      public function enviarAlInicio(indice:uint):void
      Envía el elemento del indice pasado por parámetro al primer lugar de la matriz.

          Parámetros

        1. indice:uint— Valor entero positivo que corresponde al número de indice del elemento a mover.
    2. enviarAlUltimo()
      public function enviarAlUltimo(indice:uint):void
      Envía el elemento del indice pasado por parámetro al ultimo lugar de la matriz

          Parámetros

        1. indice:uint— Valor entero positivo que corresponde al número de indice del elemento a mover.
    3. vaciar()
      public function vaciar():void
      Elimina todos los elementos de la matriz

    4. Este es el código de la clase.

      Actionscript:
      1. package as3.toronana.matrices {
      2.    
      3.     /**
      4.     * La clase Matriz extiende de la clase Array y le agrega nuevas funcionalidades.
      5.     * @author Damian Musumeci | http://as.toronana.com.ar
      6.     * @version 1.0
      7.     * @see http://as.toronana.com.ar/199-clase-matriz/
      8.     */
      9.     public dynamic class Matriz extends Array {
      10.        
      11.         /** @private */
      12.         public function Matriz(...argumentos) {
      13.             this.agregar(argumentos);
      14.         }
      15.        
      16.         /** Desordena de manera aleatoria los elementos de la matriz */
      17.         public function desordenar():void {
      18.             var M:Array = [];
      19.             for (var i:uint = 0; i<this.length; i++) {
      20.                 M.splice(Math.round((Math.random() * (this.length - 1))), 0, this[i])
      21.                 M.reverse();
      22.             }
      23.             this.vaciar();
      24.             this.agregar(M);
      25.         }
      26.        
      27.         /** Elimina todos los elementos de la matriz */
      28.         public function vaciar():void {
      29.             for (var i:int=this.length-1; i>=0; i--) {
      30.                 this[i] = null;
      31.                 this.length = 0;
      32.             }
      33.         }
      34.        
      35.         /** Agrega a la matriz actual los elementos de la matriz pasada por parametro.
      36.          * @param matriz Matriz de elementos que se desean agregar a la matriz actual
      37.          */
      38.         public function agregar(matriz:Array):void {
      39.             for (var i:int = 0; i <matriz.length; i++) {
      40.                 this.push(matriz[i]);
      41.             }   
      42.         }
      43.        
      44.         /** Envía el elemento del indice pasado por parámetro al ultimo lugar de la matriz
      45.          * @param indice Valor entero positivo que corresponde al número de indice del elemento a mover.
      46.          */
      47.         public function enviarAlUltimo(indice:uint):void {
      48.             this.push(this[indice]);
      49.             this.splice(indice, 1);
      50.         }
      51.        
      52.         /** Envía el elemento del indice pasado por parámetro al primer lugar de la matriz
      53.          * @param indice Valor entero positivo que corresponde al número de indice del elemento a mover.
      54.          */
      55.         public function enviarAlInicio(indice:uint):void {
      56.             this.unshift(this[indice]);
      57.             this.splice(indice+1, 1);
      58.         }
      59.        
      60.         /** Agrega valores numéricos enteros desde y hasta los valores pasados por los parametros.
      61.          * @param desde Numero entero desde donde inicia la matriz numérica.
      62.          * @param hasta Numero entero hasta donde llega la matriz numérica.
      63.          */
      64.         public function crearMatrizNumerica(desde:int, hasta:int):void {
      65.             var i:int;
      66.             if (desde <hasta) {
      67.                 for (i = desde; i <= hasta ; i++) this.push(i);
      68.             }else {
      69.                 for (i = desde; i>= hasta; i--) this.push(i);
      70.             }
      71.         }
      72.        
      73.     }
      74. }

      Aquí les dejo un ejemplo de implementación y la clase.
      Descargar Matriz Version 1 Descargar: Matriz
      Descargado 418 veces

      Para más detalles, pueden ver la documentación de la clase aquí

      ¿Te sirvió esta información?
      Contribuye para que este sitio siga existiendo.

      ____________________

      2 Comments

      Escriba su comentario

      1. leo
        Dic 01 at 09:36

        gracias Damian, lo que buscaba! groso profe como siempre!

      2. admin
        Dic 01 at 10:18

        Por nada leo.. Usted se lo merece :)
        Además despues de mas de 400 descargas. Que alguien diga gracias, se siente bien.

      Publique su comentario