Listas


Comando LIST (LISTA)

   Esta función crea una lista indexada de números o texto. El índice cuenta desde 0. (en otros lenguajes comom java, javasript, o php, ruby, etc, se les llama "array"/ arreglo.

La forma correcta nombrar a las listas es llamarles "array" o vectores.



El patrón de una lista se ve así: 

:miLista = LIST [elemento1, elemento2, etc.]


donde los elementos son números o texto. 

   El texto debe escribirse entre comillas. Obtienes el mismo resultado si escribes: 


:miLista = [elemento1, elemento2, elementon]

 (es decir, sin la palabra LIST.) 



Los elementos se obtienen luego, de la lista utilizando el índice: 

    :n = miLista [2]




;Una lista de ángulos

:lista_angul = LIST [15, 30, 45, 60, 90, 180] 


REPEAT 40 [

 :var_x = INT RANDOM 7    

   ;Genera entero aleatorio desde 0 a 6


  BACK 50

 LEFT :lista_angul[:var_x]    

   ;elige un ángulo de la lista



MIN/MAX

   Devuelven el elemento más pequeño (MIN) o el más grande (MAX) de una lista. La lista puede ser números, letras o cadenas. 

   En las cadenas, se devolverá el carácter más pequeño o más grande, según el valor del código que tenga en el código de carácter que esté utilizando.


(Para los comandos que están listados aquí abajo consulte a la ayuda de LibreLogo).


Ejemplos explicados:

1-https://cafecito.app/andremichellemessi/post/ejercicio-avanzado-trabajado-sobre-listas-encontrar-valores-claves-E5jHfnuTp

2-https://cafecito.app/andremichellemessi/post/ejercicio-avanzado-librelogo--listas-a9Ji18MQc8



SEARCH (buscar)

   Busca la primer letra "t" que encuentre


:miTexto = 'Un texto tan largo como un tren'

SEARCH ('t', :miTexto) 



FINDALL (buscar todos)

   Busca todas las letras "t" si las hay


:miFrase = 'Texto y mas texto'

FINDALL ('e', :miFrase)


Las listas en Logo son similares a los array de Javascript y otros lenguajes de alto nivel.




Usaremos el comando: LIST


1-Declaramos un nombre a nuestra lista (es igual que declarar el nombre a una variable.)

2- Esribimos la asignación:  =   y Luego, la palabra clave LIST 


Luego escribimos corchetes y los valores qu equeremos tener en cada item de la lsita.


Luego usamos un Loop/Ciclo, para recorrer todos los valores de la lista o para recorrerlos aleatoriamente,. como en éste caso.



Hay que tener cuidado de  no dejar espacios entre los corchetes en las listas y de dejarlos espacios adecuados o saltos de línea, en su defecto, en los corchetes de los Ciclos y los números, y ese tipo de convenciones que vimos a lo largo de todo el curso. -POr ello antes de ver listas, es bueno aprender bien todo lo anterior.- Saber manejar variables, ciclos, palabrasReservadas/palabrasClaves del lenuaje...las comillas, corchetes, comas y los signos de asignacón: = .


Programa:


;__Dibujo con lista de ángulos__;

HOME CLEARSCREEN HIDETURTLE


;___Declara lista de 6 elem.___;

lista_Angulos = LIST [35, 135, 75, 60, 25, 90] 


;__Dibuja usando lista y loop__;

REPEAT 100 [

variableX = INT RANDOM 6 

  BACK 50

 LEFT lista_Angulos[variableX] 





Ejercicio avanzado trabajado sobre Listas (encontrar valores claves)

A veces necesitamos realizar listas para luego encontrar sus valores claves:


Las palabras reservadas que suaremos son:


MIN       ;busca el valor mínimo

MAX     ;busca el valor máximo


Y las notaciones de corchetes ue sueen usarse para arrays. [0],  [3], [6],  


PRINT  seguido de: "nombre de tu lista", te muestra todos los datos de la lista en el órden de aparición. 


tuLista [0]  ; te muestra el primer elemento. 

tuLista [6]  ; te muestra el último elemento de una lista de 7 elementos. 


(antguamente logo guardaba los elementos del 1 en adelante... pero apra hacerlo similar a los lenguajes mas usados hoy día, en Lire Logo usamos. el sistema mas comú que es empezar las listas y arrays desde el número cero.)




Programa:


HOME CLEARSCREEN HIDETURTLE

;Lista estática - 7 elementos

;(del 0 al 6 como Javasript o Python) 

miLista = LIST [10,30,20,40,100,15,5]


PRINT miLista            ;muestra todo

PRINT miLista [0]       ;muestra primero

PRINT miLista [1]       ;muestra último

PRINT MAX miLista    ;muestra Mayor

PRINT MIN  miLista    ;muestra Menor