Busca Personas o escribi una página aqui !! Busca Personas o escribi una página aqui !! Historia Clínica Historia Clínica Cementerio Virtual Sé columnista de Alfinal.com
Entrá al fascinante mundo de los médicos, conoce como hacen tus controles de Salud

Buscar por Tema

Algunos son ateos sólo cuando hace mal tiempo.
Hay cuatro clases de problemas, los que no tienen solución y no hay que gastar recursos en ellos, los que tienen solución, los que se resuelven solos y podemos arruinarlos tratando deresolverlos nosotros y los que ya están resueltos y no estamos enterados. El éxito está en saber reconocer cada uno de ellos.

Avisar de ésta página a un amigo Enviar página a un amigo        PUBLICAR UN COMENTARIO DE ESTA PAGINA Comentá éste artículo        OPINA Que opina de los INDIGNADOS ?

Artículos sugeridosARTÍCULOS SUGERIDOS.

Juego del Ahorcado
El Juego del ahorcado

Confesate
Confesate y Liberate !!
Pandemia de Gripe Porcin
Nada se Crea, Todo se Transforma
Elecciones 2003 en R. Argentina: Candidatos y Par
Contratos CAPITAL HUMANO
Árabe Sedient
El valor de lo propio
Taketa
gelardi ministro interior fernandez
Cultura y decadencia Social
insuficiencia cardiaca

PERL

Conociendo matrices (arrays)

 

by alfi

 

El conocimiento de matrices en cualquier lenguaje de programación es de suma utilidad.

Las matrices o Arrays son grupos de datos acumulados en una simple variable.

En tanto que las variables llamadas scalar (son scalar aquellas que empiezan con $, ejemplo $valor), sólo pueden almacenar un solo valor, las matrices (son matrices las que empiezan con @, ejemplo @valor) pueden almacenar muchos.

 

Un ejemplo de matriz simple, es la que contiene los dias de la semana:

@days = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");

Fijese que cada dia de la semana esta entrecomillado y separado del siguiente con una coma.


#!/usr/bin/perl

@days = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");

print "Content-type: text/html\n\n";

print "These are the days of the week: ";
print "@days";


Usando comillas, los scripts traspasan la información y los contenidos de una matriz son impresos con un espacio entre cada uno de ellos.

Sin embargo, a veces resulta util que los elementos de una matriz no esten delimitados por comillas, en cuyo caso deberemos eliminarlas usando el argumento qw.

 

@days = qw(Monday Tuesday Wednesday Thursday Friday Saturday Sunday);

 

En esta linea, los elementos de la matriz no tienen ni entrecomillado(") ni comas (,)

Sus elementos están separados por espacios

 

Las matrices son capaces de contener otras variables como scalars ($) y otras matrices (@)

 

Al igual que Visual Basic y JavaScript entre otros lenguajes, PERL en sus matrices comienza a numerar los elementos desde el cero 0, en lugar de 1.

Una matriz de diez elementos, tendrá numerados sus elementos asi: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Si vemos cuidadosamente al empezar desde el cero, los diez elementos finalizan en el 9 !!!

 

Si continuamos con la matriz de los dias @days, para imprimir el cuarto elemento debemos hacer lo siguiente:

 

print "El valor del cuarto elemento de la matriz es $days[3]";

 

Nótese que se generó un concepto nuevo $days[3]

Cada elemento de la matriz se puede analizar por separado usando el mismo nombre de la matriz, pero con el signo $ delante en lugar del signo @. Asi de este modo, haremos referencia solo y exclusivamente a un elemento de esa matriz cuyo nombre es igual al de la variable scalar que estamos escribiendo.

Por otra parte, para hacer referencia al cuarto elemento de la matriz @days, deberemos escribir $days[3] ya que el primer elemento es el $days[0] !!!

 

Los siete elementos de la matriz son entonces:

$days[0] = "Monday";
$days[1] = "Tuesday";
$days[2] = "Wednesday";
$days[3] = "Thursday";
$days[4] = "Friday";
$days[5] = "Saturday";
$days[6] = "Sunday";

 

Si quisieramos saber el numero de elementos de una matriz y asignarlo a una variable scalar, es facil hacerlo, en el caso de la matriz @days el numero de elementos se analiza asi:

 

$days = @days; ## esto nos dice el indice del último elemento

Pero para conocer la cantidad de elementos exacta deberemos agregar 1 ya que el primer indice es igual a cero

$days = @days+1;

 

Ahora una curiosidad, que sucedería si en lugar de escribir $days[3], con lo cual ya sabemos que obtendremos el cuarto elemento de la matriz el cual es THURSDAY, escribimos esto otro:

 

$days[-4];

 

PERL, comenzará a contar cuatro elementos desde el final, con lo cual en este ejemplo de @days, obtendremos tambien THURSDAY

Por lo tanto el último elemento de una matriz es -1

 

Otras curiosidades, por ejemplo usted quiere conocer el primer elemento de una matriz y asignarlo a una variable scalar ($)

($result)=@days;

Naturalmente tambien podemos hacer $result = $days[0];

 

Si queremos asignar los dos primeros elementos de una matriz a variables de tipo scalar podemos hacer:

($result1,$result2)=@days;

También en este caso podemos hacer $result1 = $days[0]; $result2 = $days[1];

 

 

OPERACIONES DE ADICION DE ELEMENTOS EN UNA MATRIZ

Para copiar una matriz en otra es tan facil como hacer la asignación:

@array1 = @array2;

 

Para agregar un nuevo valor al comienzo de una matriz, usaremos el comando UNSHIFT

$elemento="nuevo_elemento";

unshift(@array,$elemento);

 

Pero también el mismo efecto se obtiene haciendo lo siguiente:

$elemento="nuevo_elemento";

@array=($elemento,@array);

 

Para agregar un nuevo valor al final de la matriz haremos lo siguiente:

(@array,newelement);
@array=(@array,newelement);

 

Si queremos combinar dos matrices en una nueva, haremos lo más simple:

@newarray=(@firstarray,@secondarray);

 

 

 

OPERACIONES DE SUSTRACCIÓN DE ELEMENTOS EN UNA MATRIZ

 

Para eliminar el primer elemento de una matriz haremos lo siguiente:

$result=shift(@array);

Hemos removido de la matriz el primer elemento y lo hemos guardado en una variable scalar.


Para eliminar el último elemento de una matriz:

$result=pop(@array);

 

OPERACION DE REEMPLAZO DE UN ELEMENTO DE LA MATRIZ

 

Para reemplazar un elemento de la matriz haremos


$array[3]=$newelement;

En éste caso hemos reemplazado el tercer elemento de la matriz con el valor de la variable scalar $newelement

 

ORDENAMIENTO DE LOS ELEMENTOS DE UNA MATRIZ

Para ordenar una matriz en orden alfabético (según el codigo ASCII):
@array=sort(@array);

 

Para ordenarla en sentido inverso del alfabeto, es un poco más complejo:

sort {$b cmp $a} (@array);

 

Para ordenar una matriz en orden numérico ascendente:
sort {$a <=> $b} (@array);

 

Para ordenar una matriz en orden numerico descendente:
sort {$b <=> $a} (@array);

 

Para imprimir una matriz ordenadamente sin alterar la matriz original:
print sort(@array);

 

Para revertir el orden de los elementos de una matriz, poniendo el último en primer lugar y asi sucesivamente:
reverse (@array);

 

ACCESO MULTIPLE: dos o más elementos de una matriz son accedidos simultáneamente

@values = @array[0,3,4];

 

Fijese que el valor se acumula en una matriz, ya que es más de un solo dato, si pusieramos una variable tipo scalar, solo almacenaria el primer dato de todos los seleccionados.

En la nueva matriz los elementos estarán indexados ordenadamente y no como ocurre en el ejemplo 0,3,4

Pero si queremos generar una matriz donde los elementos traspasados estén ordenados igual a como lo estaban en la matriz original, deberemos hacer:

@values[0,3,4] = @days[0,3,4];

 

Otra manera es:

@array[0,3,4] = ("Hello","Out","There");

 

Avisar de ésta página a un amigo Enviar esta página a un amigo

Artículos sugeridos ARTÍCULOS SUGERIDOS


Discurso del Cacique Mexicano Guaicaipuro Cuautemoc
La Tormenta de Arena en el Desierto
el futuro del cancer
Custos Ambientais, Werno Herckert
A contabilidade descobrindo seu lado social
Custos ambientais e sua gesta
La ordeñadora
El pan de pit
Educación: ADAPTACIÓN AL AMBITO ESCOLAR EN LA ARGENTINA
NUTRIVITA
CUIDADO AL ATENDER EL CELULAR
Petróleo y producción 2
En la escuela
Aplicacoes Ambientais
ANSES YA FORMA PARTE DE LA ASOCIACIÓN INTERNACIONAL DE LA SEGURIDAD SOCIAL  
CRESCIMENTO ECONÔMICO A QUALQUER PREÇO
CONFESA TUS PECADOS Y LIBERAT
CIE 10 = O
auditoria del servicio de facturacion del hospita
Fluidodinamica computacional y sus aplicaciones X
Suscribite a las Novedades de Alfinal.com Recibi todas las novedades de Alfinal.com



Alfinal.com no se responsabiliza por el contenido de los artículos publicados.
Si el contenido de algun artículo ofende a terceros, comuniquelo a alfinal.com.

visitas desde enero de 2000