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.
public function agregar(matriz:Array):voidAgrega los elementos de la matriz pasada por parámetro a la matriz actual.
- matriz:Array — Matriz de elementos que se desean agregar a la matriz actual
- Parámetros
public function crearMatrizNumerica(desde:int, hasta:int):voidAgrega valores numéricos enteros desde y hasta los valores pasados por los parámetros.
- desde:int— Numero entero desde donde inicia la matriz numérica.
- hasta:int— Numero entero hasta donde llega la matriz numérica.
- Parámetros
public function desordenar():voidDesordena de manera aleatoria los elementos de la matriz.
public function enviarAlInicio(indice:uint):voidEnvía el elemento del indice pasado por parámetro al primer lugar de la matriz.
- indice:uint— Valor entero positivo que corresponde al número de indice del elemento a mover.
- Parámetros
public function enviarAlUltimo(indice:uint):voidEnvía el elemento del indice pasado por parámetro al ultimo lugar de la matriz
- indice:uint— Valor entero positivo que corresponde al número de indice del elemento a mover.
- Parámetros
public function vaciar():voidElimina todos los elementos de la matriz
Este es el código de la clase.
Actionscript:
-
package as3.toronana.matrices {
-
-
/**
-
* La clase Matriz extiende de la clase Array y le agrega nuevas funcionalidades.
-
* @author Damian Musumeci | http://as.toronana.com.ar
-
* @version 1.0
-
* @see http://as.toronana.com.ar/199-clase-matriz/
-
*/
-
public dynamic class Matriz extends Array {
-
-
/** @private */
-
public function Matriz(...argumentos) {
-
this.agregar(argumentos);
-
}
-
-
/** Desordena de manera aleatoria los elementos de la matriz */
-
public function desordenar():void {
-
var M:Array = [];
-
for (var i:uint = 0; i<this.length; i++) {
-
M.splice(Math.round((Math.random() * (this.length - 1))), 0, this[i])
-
M.reverse();
-
}
-
this.vaciar();
-
this.agregar(M);
-
}
-
-
/** Elimina todos los elementos de la matriz */
-
public function vaciar():void {
-
for (var i:int=this.length-1; i>=0; i--) {
-
this[i] = null;
-
this.length = 0;
-
}
-
}
-
-
/** Agrega a la matriz actual los elementos de la matriz pasada por parametro.
-
* @param matriz Matriz de elementos que se desean agregar a la matriz actual
-
*/
-
public function agregar(matriz:Array):void {
-
for (var i:int = 0; i <matriz.length; i++) {
-
this.push(matriz[i]);
-
}
-
}
-
-
/** Envía el elemento del indice pasado por parámetro al ultimo lugar de la matriz
-
* @param indice Valor entero positivo que corresponde al número de indice del elemento a mover.
-
*/
-
public function enviarAlUltimo(indice:uint):void {
-
this.push(this[indice]);
-
this.splice(indice, 1);
-
}
-
-
/** Envía el elemento del indice pasado por parámetro al primer lugar de la matriz
-
* @param indice Valor entero positivo que corresponde al número de indice del elemento a mover.
-
*/
-
public function enviarAlInicio(indice:uint):void {
-
this.unshift(this[indice]);
-
this.splice(indice+1, 1);
-
}
-
-
/** Agrega valores numéricos enteros desde y hasta los valores pasados por los parametros.
-
* @param desde Numero entero desde donde inicia la matriz numérica.
-
* @param hasta Numero entero hasta donde llega la matriz numérica.
-
*/
-
public function crearMatrizNumerica(desde:int, hasta:int):void {
-
var i:int;
-
if (desde <hasta) {
-
for (i = desde; i <= hasta ; i++) this.push(i);
-
}else {
-
for (i = desde; i>= hasta; i--) this.push(i);
-
}
-
}
-
-
}
-
}
Aquí les dejo un ejemplo de implementación y la clase.
Descargar: Matriz
Descargado 418 veces
Para más detalles, pueden ver la documentación de la clase aquí
Dic 01 at 09:36
gracias Damian, lo que buscaba! groso profe como siempre!
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.