ARRAYS(LISTAS)

¿Que es un ARRAY?

Es una lista de datos ordenados numéricamente.

Por ejemplo, una lista( array ) de los numeros del 5 al 7 sería: primero el 5,segundo el 6 y tercero el 7. En ruby la lista la escribiríamos : [5,6,7] y es una lista de tipo numérico.

Una lista( array ) de amigos sería : ["pepe","juan","pedro"], es una lista de tipo cadena donde primer amigo sería "pepe", el segundo "juan" y el tercero "pedro".

Una lista( array ) de tipo mixto, sería por ejemplo una lista de amigos y años: ["pepe",25,"juan",30,"pedro",27], el primer dato de la lista es el amigo "pepe", el segundo su edad: 25, el tercero el amigo juan, el cuarto su edad: 30.....


En ruby un array lo expresamos así:

[primer elemento,segundo elemento,....,ultimo elemento]

VARIABLE TIPO ARRAY

En Ruby, los arrays se pueden(suelen) guardar en una variable de tipo array. Una variable tipo array se inicializa asi: variable=array o con mas detalle:

variable=[elemento,....,elemento]

Ejemplos:



#creando un array con numeros
# del 5 al 7
puts "array de numeros del 5 al 7"
var=[5,6,7]

#creando un array con cadenas
puts "creando un array de cadenas"
var1=["pepe","juan","pedro"]

#creando un array mixto
puts "creando un array mixto"
var2=["pepe",25,"juan",30,"pedro",27]

#un array de rangos
puts "creando un array de rangos"
var3=[(1..2),(2..3),(4..8)]

#creando otro array mixto
#numerico,cadena,rango,booleano
puts "creando otro array mixto"
var4=[8,"hola",(3..4),true]
array de numeros del 5 al 7

creando un array de cadenas

creando un array mixto

creando un array de rangos

creando otro array mixto

EXPLORANDO ARRAYS

¡ATENCIÓN!.En ruby los arrays comienzan en cero. En el array [5,6,7], el elemento cero es el 5, el elemento uno es el 6 y el elemento 2 es el 7

¿Como acceder a los elementos de un array?

array[indice]

Por ejemplo el elemento 3 del array que representa una variable que llamamos var1 es: var1[3]


#creando un array con numeros
# del 5 al 7
puts "array de numeros del 5 al 7"
var1=[5,6,7]
puts "todo var1",var1
print "var1[0]=",var1[0],"\n"
#creando un array con cadenas
puts "creando un array de cadenas"
var2=["pepe","juan","pedro"]
puts "todo var2",var2
print "var2[1]=",var2[1],"\n"
#creando un array mixto
puts "creando un array mixto"
var3=["pepe",25,"juan",30,"pedro",27]
puts "todo var3",var3
print "var3[2]=",var3[2],"\n"
#un array de rangos
puts "creando un array de rangos"
var4=[(1..2),(2..3),(4..8)]
puts "todo var4",var4
print "var4[1]=",var4[1],"\n"
#creando otro array mixto
#numerico,cadena,rango,booleano
puts "creando otro array mixto"
var5=[8,"hola",(3..4),true]
puts "todo var5",var5
print "var5[3]=",var5[3],"\n"
array de numeros del 5 al 7
todo var1
5
6
7
var1[0]=5
creando un array de cadenas
todo var2
pepe
juan
pedro
var2[1]=juan
creando un array mixto
todo var3
pepe
25
juan
30
pedro
27
var3[2]=juan
creando un array de rangos
todo var4
1..2
2..3
4..8
var4[1]=2..3
creando otro array mixto
todo var5
8
hola
3..4
true
var5[3]=true

MODIFICANDO ARRAYS

En un array ya creado(mejor dicho en una variable tipo array), podemos modificar o añadir elementos con la sintaxis:

array[indice]=dato

Si en vez de un dato asignamos un nil, borramos el elemento.

Podemos crear una variable tipo array vacia para 'rellenar' de esta manera :

variable=[]

#modificando arrays

#creamos uno vacio
miarray=[]

#vamos metiendo datos
miarray[0]="soy el 0"
miarray[1]=1
contador=2
for dato in ('a'..'c')
miarray[contador]=dato
contador=contador+1
end

# vamos a ver que tenemos en miarray
#
puts 'veamos miarray'
puts miarray
puts "-----------------"
puts "veamoslo de otra forma"
contador=0
for dato in miarray
if dato!=nil
print contador," ",dato,"\n"
end
contador=contador+1
end

#ahora quiero que solo tenga datos
#el indice 0
miarray[0]="unico dato"
for dato in (1..4)
miarray[dato]=nil
end
puts "veamos miarray"
puts miarray
puts "-------------"

puts "veamoslo de otra forma"
contador=0
for dato in miarray
if dato!=nil
print contador," ",dato,"\n"
end
contador=contador+1
end
veamos miarray
soy el 0
1
a
b
c
-----------------
veamoslo de otra forma
0 soy el 0
1 1
2 a
3 b
4 c
veamos miarray
unico dato
nil
nil
nil
nil
-------------
veamoslo de otra forma
0 unico dato

ARRAYS DE ARRAYS

Un elemento de un array puede ser también un array, y así se nos abre un mundo enorme de posibilidades.


La forma fundamental de inializar un array, hemos quedado que era:

array=[elemento,...,elemento]

Un 'multiarray' lo inicializaremos mas o menos asi:

multiarray=[[elmento,...,elemento],...,[elemento,...,elemento]]

Esto sería un array de arrays. Pero la cosa puede ir mas lejos si los array de arrays se definen como arrays...


Ejemplo:

#creamos un array con arrays de nombres y apellidos
#
puts "array de nombre y apellidos"
miarray=[["antonio","fulano","detal"],
[
"perico","delos","palotes"]]

for datoArray in miarray
for dato in datoArray
print dato," "
end
puts #salto de linea
end
puts "------------"
# metemos los numeros del cero al nueve
# de dos en dos
#
puts "numeros de dos en dos"
array=[]
for i in (0..4)
array[i]=[]
for j in (0..1)
array[i][j]=2*i+j
print "array[",i,"][",j,"]=",array[i][j],"\n"
end
end

puts "---numeros pares----"
for arr in array
print arr[0]," "
end
puts
puts
"---numeros impares----"
for arr in array
print arr[1]," "
end
puts

array de nombre y apellidos
antonio fulano detal
perico delos palotes
------------
numeros de dos en dos
array[0][0]=0
array[0][1]=1
array[1][0]=2
array[1][1]=3
array[2][0]=4
array[2][1]=5
array[3][0]=6
array[3][1]=7
array[4][0]=8
array[4][1]=9
---numeros pares----
0 2 4 6 8
---numeros impares----
1 3 5 7 9

SUBARRAYS

Se puede acceder a parte de un array, o crear un array como parte de un array de esta forma:


  • array[desde,cuantos]: Un array desde la posicion 'desde' de 'cuantos' elementos.
  • array[desde..hasta]: Un array desde la posicion 'desde' hasta la posición 'hasta'

Veamos algun ejemplo:
#subarrays
#
puts "creo array del 1 al 6"
array=[1,2,3,4,5,6]
puts "array[2,2]="
puts array[2,2]
puts "------------"
puts "array[2..3]="
puts array[2..3]

puts "---------------------"
puts "creo array de la 'a' al 'i'"
array=[]
contador=
0
for dato in ('a'..'i')
array[contador]=dato
contador=contador+1
end
#creamos array1
#sera un subarray de array
array1=array[5..7]
puts "array[5..7]"
puts array1
creo array del 1 al 6
array[2,2]=
3
4
------------
array[2..3]=
3
4
---------------------
creo array de la 'a' al 'i'
array[5..7]
f
g
h
.----oOO--OOo----.

No hay comentarios: