TUTORIAL EV3:

OPERACIONES SECUENCIALES

Tutorial de Operaciones secuenciales para EV3

down-amarillo-flecha

¿QUÉ ES?


El Icono "Operaciones Secuenciales" es el mismo que el icono Array del antiguo NXT y del que ya hicimos un tutorial. Aquel icono del NXT no venía en el software de origen, y este sí. Y trae de serie más opciones.


Este icono permite crear y/o manipular listas numéricas y lógicas. Luego podremos acceder a estas listas o secuencias y leer cualquiera de esos valores. Pueden ser varios datos forma consecutiva o un dato suelto concreto de la misma. Este icono manipula listas de números, pero la lista en sí misma hay que guardarla en algún sitio. Ese sitio puede ser una variable o un archivo permanente.


Para guardar una lista en un archivo de texto y tener acceso a ella de forma permanente, tendrás que usar el Bloque Avanzado "Acceso a Archivo", es decir, el Data Logger que ya conocemos del NXT. Los usos de ambos iconos son los mismos, así que los puedes repasar.


Usaremos indistintamente los términos: Lista, Cadena, Serie, Array, Secuencia... todos significan lo mismo. Y el icono podrás encontrarlo en la pestaña roja, "Operaciones con Datos". Es el tercero:


Tutorial de Operaciones secuenciales para EV3

EJEMPLOS


Uno es el conocido juego Simón. Aquí, el programa propone una secuencia de sonido y color que nosotros tenemos que reproducirla con el teclado. Se trata de una secuencia que va creciendo poco a poco, ideal para el Array.






Otro uso habitual del Array es el de leer un dato concreto de la lista creada. Por ejemplo, leer la posición 4 de una lista con las 7 notas musicales y comprobar si hemos respondido "Fa".



Ejemplos de secuencias:


Ejemplo de lista numérica: 3; 4; 7; 7; 1

Otro ejemplo con decimales: 0,3; 0,5; 1,22; 3,7; 1,1

Ejemplo de lista lógica: si; si; no; si; no



SELECCION DEL MODO DE TRABAJO


Cualquier acción que llevemos a cabo con una "Operación secuencial" necesita ser aplicarda sobre una secuencia o lista concreta. En caso contrario, trabajaremos sobre una secuencia o cadena vacía. Una buena opción para guardar la lista generada es hacer uso de variables. Lo veremos con ejemplos.


En este bloque tenemos 4 modos de trabajo: Anexar, Leer en el índice, Escribir en el índice y Longitud. Cada uno de ellos pueden ser "numérico" o "lógico". Los vemos uno a uno.


Anexar: añadir un valor al final de la lista o crear una lista nueva.

Leer: ver un valor concreto de la lista.

Escribir: sustituir un valor concreto de la lista por otro.

Longitud: medir la extensión de una lista.


Tutorial de Operaciones secuenciales para EV3

LONGITUD


Aunque es la última de las opciones del modo de trabajo seleccionable, es la más sencilla de entender, así que empezamos por aquí. Esta opción mide la longitud de la lista. Por esto es necesario decirle antes qué lista hay que medir. Para eso, usaremos una variable y crearemos ahí la lista. En nuestro ejemplo, usaremos listas de números.


En la pestaña roja, seleccionamos la maleta (Bloque "Variable"). Una vez lo has arrastrado a la pantalla, pichas sobre el botón de modo, (flecha negra) y seleccionas "Escribir/Secuencia numérica". Ahora le das nombre a la variable en la casilla de arriba (flecha rosa). Yo he llamado a la variable "Lista".


Tutorial de Operaciones secuenciales para EV3

Vale, seguimos. A continuación, los siguientes 3 pasos que hay que dar para confeccionar la lista 3,5,4,2. Pinchar donde indica la flecha rosa para que se abra el desplegable, darle al signo "+" e ir añadiendo tantos datos como necesite tu secuencia numérica:


Tutorial de Operaciones secuenciales para EV3

Ya tenemos nuestra lista creada. Vamos ahora al icono de "Secuencia Numérica" y seleccionamos el Modo "Longitud". Este icono de "Longitud" tiene una entrada para introducir la lista creada (flecha negra) y una salida para indicar el resultado (flecha amarilla), es decir, la longitud de la secuencia.


Tutorial de Operaciones secuenciales para EV3

Si te fijas donde señala la flecha negra de arriba, verás que hay como 2 solapas o pestañas. Esto indica que el dato es del tipo "Array" o "Secuencia numérica". Es decir, no se trata de un número sino de una colección de números.


Todas las entradas y salidas de secuencias tienen esas 2 pestañas, indicando así el qué tipo de datos contiene. Incluso sus cables son más gordos, como diciendo que por ahí están pasando muchos números a la vez, así que no los mezcles. En la siguiente imagen lo verás mejor. El programa lo explicamos abajo:


Tutorial de Operaciones secuenciales para EV3

El primer icono (una variable) crea la lista 3,5,4,2. Esa lista la leemos en el segundo icono y la metemos en la entrada del bloque "Secuencia Lógica" para que la lea. Su salida, es decir, el resultado de leer la longitud de nuestra lista, la presentamos en pantalla y quedamos a la espera de pulsar el botón central (ok) del EV3. La longitud de esta cadena es 4.


LEER EN EL INDICE


Este título en realidad podría ser el de LEER (un valor) EN EL INDICE (de una lista). Lo primero: ¿qué es el índice?. Pues es la posición que ocupa cada elemento de la lista, empezando por el cero. Seleccionamos el Modo correspondiente:


Tutorial de Operaciones secuenciales para EV3

En nuestra lista anterior, si leemos la posición "1" obtendremos el número 5. El programa sería así:


Tutorial de Operaciones secuenciales para EV3

En el índice anterior hemos escrito un "1", pero también se podrían haber leído los datos desde un archivo con el Data Logger, haber usado una variable o una constante, o en general, cualquier entrada válida.


ANEXAR


Recordemos que ANEXAR era añadir un valor al final de nuestra lista de valores o bien de crear una lista nueva.


En la linea superior del siguiente programa anexamos un 7 al final de nuestra lista de valores 3,5,4,2 y volvemos a almacenar el resultado en la misma lista, de forma que ahora nuestra variable (la lista) tendrá una longitud de 5.


Tutorial de Operaciones secuenciales para EV3

La línea inferior del programa simplemente comprueba que la longitud es de 5. ¿Serías capaz de modificar la parte inferior del programa para comprobar si al final de la lista efectivamente hay un 7?


Para crear una lista nueva podríamos hacer como en el programa siguiente. Primero creamos una lista, exactamente igual que hacíamos antes con las variables. A continuación leemos la longitud de la cadena creada y obtenemos un misterioso "2".


Tutorial de Operaciones secuenciales para EV3

El bloque "Anexar", nada más ponerlo en el programa, viene ya con una lista creada con un elemento, el cero. A esta lista de 1 elemento le anexamos un segundo cero (el que aparece bajo la maleta del icono), y por eso la longitud de la cadena es 2.


Podemos eliminar uno de esos ceros para empezar con una cadena vacía. El mismo icono "Anexar" le añadirá al final un valor, que si no tocamos nada, será un cero como aquí, pero que puede ser cualquiera. Así, en la misma operación, creamos una lista vacía y le añadimos su primer valor.


Para empezar con una cadena vacía, una opción es esta: pincha en la flecha rosa para que se abra el desplegable y elimina el cero pinchando en la "X" que señala la flecha amarilla.


Tutorial de Operaciones secuenciales para EV3

ESCRIBIR EN EL INDICE


Escribir (un valor) en el índice (de una lista) es en realidad sustituir un valor concreto de la lista por otro que nosotros queramos.


Recordemos nuestra lista original de 4 elementos: 3,5,4 y 2. Vamos a sustituir el 4 por un 8. Como este bloque es un poco más complicado, lo explicaremos antes. Tenemos 3 entradas de datos y una salida. La salida (flecha negra) es la lista resultante tras la operación de sustitución/escritura en el índice.


Tutorial de Operaciones secuenciales para EV3

En la primera entrada (flecha roja) enlazaremos la lista sobre la cual queremos trabajar. Si te fijas, tanto esta entrada como la salida final tienen 2 pestañitas, indicando que son listas y no números concretos. Es decir, en la primera entrada entra la lista antes de hacerle nada y en la última sale la lista ya modificada.


Nos quedan las entradas centrales. La segunda entrada (flecha blanca) es el indice. El índice nos dice qué dato de la lista queremos sustituir, empezando a contar por el cero. En nuestro ejemplo (3,5,4,2), el 4 que queremos sustituir ocupa la posición 2. Por último, la tercera entrada (flecha amarilla) sirve para decir el dato que queremos insertar en la serie, en nuestro caso el 8.


Así que, en nuestro caso, la cosa quedaría como sigue: los cables amarillos son la entrada de la lista original y la modificada. Y lo del medio, lo leemos como: "en la posición 2 pon un 8".


Tutorial de Operaciones secuenciales para EV3

Con todo, ya podemos escribir el programa. La primera parte usa el icono anterior para sustituir el 4 por un 8. Y la segunda línea del programa lo comprueba. Para ello, usamos el "Leer en el índice", leemos la posición 2 y la escribimos en pantalla: afortunadamente aparece un 8. :-)


Tutorial de Operaciones secuenciales para EV3


.