1. Realiza la lectura del siguiente diagrama de flujo
2. El hábitat del castor
En las fichas anteriores ya has trabajado con entradas como los botones los cuales pueden asumir dos valores: presionado y no presionado. Igualmente, hemos trabajado con los LED. Cada LED asume dos valores: encendido o apagado. Estas variables se denominan booleanas como verás en esta ficha. Igualmente, has utilizado bloques que representan algunas acciones o instrucciones que se deben repetir con bucles y condicionales. Las variables booleanas pueden asumir dos valores solamente: verdadero o falso. Cuando el Botón A está oprimido, su valor es verdadero y cuando no, es falso.
Observa el siguiente diagrama de bloques y responde las preguntas:
¿Con qué objetivo se incluye la instrucción borrar pantalla?
¿Qué sucede si no se incluye este bloque?
Prueba en el editor tu predicción.
Observa ahora el diagrama de flujo que aparece abajo.
¿Qué hace?
¿En qué se diferencia el diagrama de bloques que acabas de observar con el diagrama de flujo?
A continuación te presentamos la diagramación en bloques de este diagrama de flujo y su simulación. En este caso, al no estar oprimido el botón A, se verá una cara triste. Por el contrario, si lo oprimes verás una cara feliz.
¿Se requiere en este caso incluir el bloque borrar pantalla? ¿Por qué sí o por qué no?
En algunos casos se tienen dos o tres condiciones seguidas, como en el diagrama de la izquierda. En estos casos se pueden reemplazar varias condiciones por una sola verificación, que incluya las dos o tres condiciones:
Lo mismo puede ser experesado por un solo bloque condicional con varias condiciones, como el que se muestra abajo. Para que se visualice la cara feliz se requiere que las tres condiciones sean verdaderas. Si alguna es falsa, no debe mostrarse la cara feliz:
Recuerda:
• Para siempre: repite lo que se encuentra dentro indefinidamente.
• Mientras botón A presionado: que ejecuta lo que se encuentra dentro del bloque mientras el botón A esté presionado.
• Mientras botón A no presionado: que ejecutará lo que está dentro del bloque mientras el botón A NO esté presionado.
Proposición
p : Mario Vargas Llosa nació en Arequipa V(p) = V
q: El número 2450 de divisible por 3 V(q) = F
r: Todos los hombres nos son mortales V(r) = F
Expresiones no proposicionales: “Son aquellos enunciados que indican una pregunta, una orden o una exclamación”
Ejemplo:
- ¿Cuántos años tienes?
- ¡Arriba el Perú!
P
q
Conjunción
p Ù q
Disyunción
p Úq
V
V
V
V
V
F
F
V
F
V
F
V
F
F
F
F
Te has inscrito al grupo de espeleología del municipio en el que se entretienen explorando cavernas. En una de las salidas se encuentran con una cueva que no conocen y parece tener muchos túneles. El grupo se pregunta si al entrar podrán salir sin tener un mapa. Tú sabes que usando la lógica de la computación puedes lograrlo y les cuentas de un algoritmo llamado “seguir la pared”.
El resto del grupo está escéptico y para demostrarles que el algoritmo funciona con cualquier tipo de configuración les pides que te den dos laberintos en papel y lo comprueben.
Laberinto de prueba
Los dos laberintos son los siguientes:
Laberinto N°1
Laberinto N°2
Si estas trabajando en grupo pueden asignar los siguientes roles:
• Depurador: sigue el diagrama de flujo poniendo una ficha en la instrucción que se está ejecutando e indicándola en voz alta.
• Procesador: se ubica a la entrada del laberinto, si está hecho con cinta en el piso, o coloca un objeto o ficha en la entrada sobre el papel. En el caso de usar un objeto, debe tener claro cuál es el frente para saber cuál es la izquierda o la derecha.
• Medidor de complejidad: va contando los pasos requeridos para salir del laberinto.
• Verificador: si hay alguien más en el grupo, esta persona debe verificar que se siga la secuencia de instrucciones y cuenta cuántos pasos se dan. Al pasar al segundo laberinto cambiar los roles.
Terminada la labor, compara el número de pasos dados en los dos laberintos. También podrás buscar otros laberintos más complejos para probar el algoritmo y verificar qué tantos pasos debes dar para resolver el problema
Es hora de seguir profundizando tus conocimientos sobre la micro:bit. Hasta ahora has explorado el entorno de programación, el simulador y los bloques para crear bucles. En esta ocasión, revisarás los bloques de lógica condicional. Recuerda que para trabajar con la micro:bit necesitarás entrar a MakeCode en tu computador o al editor en línea si tienes acceso a Internet. Para poner a prueba los nuevos bloques aprendidos, crearás un dispositivo que te permita ayudar a las personas que se desplazan en bicicleta a transitar de forma más segura por las vías permitidas. El dispositivo permitirá tener luces informativas mientras se monta en bicicleta. Es posible extender los botones de la micro:bit para que sean presionados desde los manubrios, donde se colocan las manos. Sin embargo, con fines ilustrativos y a modo de prueba de concepto de tu diseño, usarás los botones A y B que ya conoces.
El dispositivo funcionará de la siguiente manera:
1. Cuando se presione el botón A, la micro:bit deberá mostrar una luz direccional a la izquierda parpadeando.
2. Cuando se presione el botón B, la micro:bit deberá mostrar una luz direccional a la derecha parpadeando.
3. Cuando se presionen los dos botones, la micro:bit deberá mostrar un indicativo de frenar para alertar a quien va detrás. ¿Cuál te parece más apropiado?
Veamos como podria representarse dicha información en un diagrama de flujo:
Es hora de programar y simular en el editor MakeCode el programa para verificar su funcionamiento.
1. ¿A qué parte del funcionamiento corresponde el programa que se muestra a la derecha?
2. Al programarlo en el editor Makecode ¿qué sucede si retiramos el bloque “borrar la pantalla”?
3. Ahora debes programar el resto del funcionamiento. En este mismo bloque “para siempre”, agrega las condiciones restantes.
4. Cuando tu código incluye la condición de A+B, en el simulador aparece un tercer botón para probar tu código.
Puedes usar el acelerómetro para hacerte más visible mientras estés montando bici. Teniendo en cuenta que el dispositivo se estará agitando a medida que te mueves, podrías mostrar flechas que indiquen que te estás desplazando hacia adelante. Para ilustrar un desplazamiento hacia adelante
1. El bucle presentado en el diagrama de la izquierda, es un bloque general como el bucle “para siempre”. Dentro de este bucle hay dos bloques que se repetirán uno tras otro hasta que se termine la tarea.
2. Antes de implementar el diagrama mencionado, intenta predecir lo que ocurrirá al ejecutarlo. Recuerda que el bloque “para siempre” se está ejecutando en todo momento. En este caso la entrada “agitado” del acelerómetro, es una variable booleana que se encuentra en la sección de entradas.
3. Al agregar el sensor acelerómetro, el simulador presenta un botón que dice “SHAKE” (agitar) para representar que la tarjeta está siendo agitada.
4. ¿Ves la flecha desplazarse? ¿Podrías mejorar este desplazamiento? Considera que son como dos fotos que se muestran una tras otra y dan la sensación de movimiento; podrías agregar fotos intermedias para hacer el movimiento más fluido.
5. Complementa nuestro sistema de luces agregando animaciones para todos los indicadores.
El programa que creaste en la sección anterior puede ser muy útil cuando montes en bici para indicar a quienes estén a tu alrededor si vas a girar a la izquierda o a la derecha, si estás en movimiento o si vas a parar. Haciendo algunos cambios puedes hacer el programa aún mejor. ¿Has notado que al montar en bicicleta te inclinas ligeramente hacia el mismo lado hacia el que estás girando? ¿Cómo crees que puedes usar este fenómeno para mejorar tu programa? Como se mencionó anteriormente en esta ficha, la micro:bit cuenta con un acelerómetro. Además de medir si hay cambios en el movimiento, el acelerómetro puede indicar si la micro:bit está completamente horizontal o inclinada hacia la izquierda o hacia la derecha. Si fijas la micro:bit a tu cuerpo no necesitarías presionar los botones A o B para indicar un giro, la micro:bit podría usar su acelerómetro para determinar si estás girando y en qué dirección.
Fernanda Moya Adriana Fernanda Moya estudió primaria y secundaria en el Colegio de la Presentación en Ubaté, Cundinamarca, muy cerca de Bogotá. Luego estudió Ingeniería de Sistemas en la Universidad de Cundinamarca y realizó una especialización en Ingeniería de Software en la Universidad Distrital Francisco José de Caldas. Adriana es Ingeniera de Servicios en la Nube (Cloud Engineer) en Globant, una empresa que transforma organizaciones preparándolas para un futuro digital y cognitivo, y es una de las organizadoras de Women Techmakers Bogotá. Women Techmakers es una iniciativa mundial patrocinada por Google que busca hacer visibles, crear redes de apoyo y proveer recursos a mujeres y otras poblaciones con baja representación en las áreas de tecnologías computacionales.