Introducción a Scratch para Principiantes
Introducción a Scratch para Principiantes
1 ¿Qué es Scratch?
Scratch es un entorno de programación desarrollado por un grupo de investigadores del In-
stituto de Tecnologı́a de Massachusetts (MIT) que aprovecha los avances en el diseño de
interfaces para hacer que la programación sea atractiva y accesible para todo aquel que se
enfrente por primera vez a programar.
La página muestra un conjunto de imágenes, cada una de ellas es un proyecto. Para ver
su contenido, pincha sobre una de las imágenes y después pulsa sobre la bandera verde para
que se ejecute. Para finalizar su ejecución, pulsa sobre el botón rojo.
Para registrarnos como nuevos usuario en la comunidad Scratch pulsaremos sobre el enlace
“Únete a Scratch” en la página: [Link]
1
Pasos para la registración:
Una vez registrados, podemos observar que hemos ingresado en la plataforma con nuestro
nombre de usuario que se mostrará en la zona superior izquierda de la pantalla.
4 Creación de un proyecto
Para crear un nuevo proyecto pulsaremos sobre el botón ”Crear” de la barra azul de menú
y se abrirá el entorno de creación de proyectos en Scratch en donde podremos dar inicio a
nuestro proyecto y ponerle un nombre.
• Los objetos: son los elementos visuales que aparecerán en nuestro proyecto y sobre
los que podremos actuar.
2
• El escenario: es la zona en la que los objetos trabajarán: moviéndose, girando, etc.
• Sección de código: son todas las posibles instrucciones que podremos usar en nuestro
proyecto. Las instrucciones también se denominan bloques.
Para poder ver nuestros proyectos tendremos que ir a donde se encuentra nuestro nombre de
usuario arriba a la derecha, hacer click y tocar en ”Mis cosas”. Luego, nos aparecerán todos
nuestros proyectos. Si queremos editar alguno tenemos que hacer click en ”Ver dentro”.
3) Un personaje cuando se toque la tecla espacio, apunte hacia el puntero del mouse y
camine 20 pasos.
6 Algoritmos
Un algoritmo es un conjunto ordenado de pasos a seguir (instrucciones concretas) que llevan
a resolver un determinado problema. Ha de cumplir con las siguientes condiciones:
3
El algoritmo surge de la necesidad de resolver un problema dado. Para ello, siempre será
posible crear múltiples soluciones. El algoritmo que seleccionemos será aquel que obtenga
los resultados esperados en el menor tiempo posible y con el menor coste. Para ello debemos
reflexionar sobre:
1. ¿Qué información o resultados se quieren obtener?
2. ¿A través de que procesos se podrán obtener los resultados?
3. ¿Qué condiciones exige el problema para su solución?
4
En la paleta de instrucciones de movimiento se puede activar un monitor de la posición x e
y del objeto que está seleccionado:
5
Dada una dirección D (en grados), la dirección opuesta es D - 180 ó también D + 180. Ası́
por ejemplo, la opuesta de 45º es 45º - 180º= -135º y la opuesta de 0º se puede escribir como
180º o -180º.
Si se activa este monitor, en el escenario se muestra el valor de la dirección del objeto que
está seleccionado en ese momento.
6
7.4 Instrucciones de desplazamiento
Para mover un objeto un determinado número de pasos, utilizaremos la instrucción: Si el
Si lo que se desea es ver desplazarse el objeto con un movimiento continuo hasta una deter-
minada posición usaremos el bloque:
En este caso el objeto se desplazará a la posición dada por las coordenadas (x,y), y tardará
en realizar el desplazamiento el número de segundos que insertemos en la casilla. El objeto
se muestra en cada una de las posiciones que va ocupando desde la posición en la que está
hasta la posición destino (x,y).
También podemos hacer que el objeto se mueva a una posición determinada sin que se
muestre el objeto en las posiciones intermedias utilizando esta instrucción:
7
7.5 Instrucciones de giro y cambio de dirección
Para cambiar la dirección de un objeto podemos usar la instrucción:
Esta instrucción gira el objeto 15º en el sentido de las agujas del reloj. Podemos modificar
este valor para que gire un número diferente de grados.
Esta instrucción gira el objeto 15º en el sentido contrario a las agujas del reloj.
Tocar en el enlace para acceder al proyecto dentro de Scratch. Una vez en la página de
Scratch pulsa sobre el botón ”Ver dentro” para ver los bloques que utiliza este proyecto.
8
8 Disfraces de los objetos
Un objeto puede tener varios disfraces. Para ver los disfraces de un objeto, selecciona la
pestaña que tiene un pincel llamada Disfraces.
En la figura se puede observar que el objeto Gato tiene 2 disfraces denominados: disfraz1,
disfraz2. Podemos elegir con qué disfraz queremos que aparezca el objeto.
9 Bucles
En esta sección estudiaremos cómo repetir un número finito o infinito de veces la ejecución
de un conjunto de bloques.
Una solución para que el programa ejecute esas instrucciones una cantidad de veces es copiar
ese conjunto de instrucciones el número de veces que queramos que se repitan.
9
Sin embargo, esta solución harı́a que nuestros programas fuesen muy largos y difı́ciles de
entender.
Por ejemplo si queremos que el objeto se mueva 20 veces, podemos escribir el siguiente
programa:
Pulsa sobre este proyecto y ejecútalo pinchando sobre la bandera verde. Observarás que
este programa no termina su ejecución, salvo que pulsemos sobre el botón que detiene su
ejecución.
10
El programa contiene unas instrucciones para inicializar la posición y dirección del gato y
después el bloque por siempre. Este bloque se ejecuta infinitamente: las instrucciones que se
encuentran dentro de este bloque se ejecutan repetidas veces, sin detener nunca su ejecución.
Observa cómo el bloque por siempre no permite que otros bloques se puedan encajar debajo
de él. Esto es ası́ porque en ningún caso se podrı́an ejecutar dichos bloques ya que el bloque
por siempre nunca termina su ejecución.
Observa que el cambiar de dirección 90º a -90º provocarı́a que el objeto Gato se girase
y quedase boca abajo:
En las propiedades del objeto podemos modificar el estilo de rotación para que sólo pueda
rotarse de derecha a izquierda:
11
9.3 Ejecución repetida con condición
Se puede ejecutar un conjunto de instrucciones repetidas veces hasta que se cumpla una
determinada condición. Para ello utilizaremos el bloque ”repetir hasta que”.
Las instrucciones que se encuentran dentro de ”repetir hasta que” se ejecutan repetidas
veces hasta que una determinada condición sea verdadera. Es decir, mientras la condición
sea falsa se seguirán ejecutando las instrucciones que se han puesto dentro del bloque repetir
hasta que.
En el momento de ejecutar la primera vez el bloque repetir hasta que, si una determi-
nada condición es falsa, entonces se ejecutan las instrucciones que se encuentran dentro. A
continuación se vuelve a comprobar la condición, y si ésta es falsa, vuelven a ejecutarse por
segunda vez y ası́ sucesivamente. Si alguna de las veces en las que se comprueba la condición
ésta es verdadera, el bloque repetir hasta que terminará finalmente su ejecución.
Pulsa sobre el siguiente proyecto para ver cómo se mueve el objeto Gato hasta que al-
canza el borde del escenario:
En este programa el gato se moverá 10 pasos hasta que la condición sea verdadera. Inicial-
mente el gato se encuentra en el extremo izquierdo de la pantalla, sin tocar ningún borde
del escenario.
La primera vez que se ejecuta el bloque repetir hasta que la condición ”¿tocando borde?” es
falsa, por tanto se ejecutan las instrucciones que se encuentran dentro, es decir, el gato se
mueve 10 pasos.
A continuación vuelve a comprobarse la condición del bloque repetir hasta que. Esta se-
gunda vez el gato aún no ha llegado al borde del escenario, y por tanto la condición sigue
siendo falsa, volviéndose a ejecutar las instrucciones. Esta repetición del bloque repetir hasta
que se realizará mientras la condición sea falsa, es decir, mientras el gato no haya tocado el
borde. Cuando el gato llega al borde, la condición se hace verdadera y el bloque de repetición
termina su ejecución.
12
9.3.1 Condiciones
Las condiciones se expresan mediante bloques que se encuentran dentro del tipo Sensores.
Estos bloques tienen una forma especial de romboide que encaja en la zona de condición del
bloque repetir hasta que, que tiene también forma de romboide.
Recuerda que una condición es una afirmación que puede ser verdadera o falsa en un in-
stante determinado.
A continuación se muestran algunas condiciones que puedes utilizar para definir condiciones:
10 Ejecución concurrente
En esta sección veremos cómo se realiza la ejecución de varios programas asociados a difer-
entes objetos.
En ese proyecto hay un objeto Gato y un objeto Oso, cada uno de ellos con un programa
diferente que se ejecuta al pulsar la bandera verde.
13
En este proyecto tenemos un único programa para el objeto Gato y otro para el objeto
Oso. Ambos programas inician su ejecución a la vez. Decimos que se ejecutan con-
currentemente. Cuando pulsamos la bandera verde el gato y el oso comienzan a ejecutar
sus respectivos programas.
Haz click en el siguiente enlace y ejecuta el proyecto pulsando sobre la bandera verde.
En este proyecto el objeto Gato tiene 2 programas que se ejecutan a la vez cuando se pulsa
la bandera verde. Uno de los programas realiza el movimiento y el otro el sonido:
Estos dos programas inician su ejecución al pulsar la bandera verde y se ejecutan concur-
rentemente.
14
A veces necesitamos almacenar información que los objetos necesitarán utilizar más tarde.
1. aprender a sincronizar las acciones de los programas de diferentes objetos de forma que
podamos programar comportamientos coordinados de los objetos.
Por ejemplo, si deseamos que dos objetos mantengan un diálogo, podrı́amos utilizar las in-
strucciones ”decir por segundos” y ”esperar segundos” para coordinar el diálogo
entre ambos.
15
Para ver el proyecto haz click aquı́.
La coordinación entre ambos objetos se realiza controlando el tiempo que tiene que es-
perar cada objeto para mostrar el siguiente diálogo.
Observa que mientras el objeto Chico está mostrando un diálogo, el objeto Chica debe
estar esperando.
Para que el control del diálogo sea más fácil y no haya que estar calculando el número
de segundos que cada uno tiene que esperar, un objeto puede avisar a otro de que ha ter-
minado de mostrar su diálogo a través del envı́o del evento mensaje. El otro objeto estará
esperando recibir este evento y cuando lo reciba sabrá que el otro objeto ha terminado de
mostrar su cuadro de diálogo y ahora le tocará a este objeto mostrar su diálogo.
Haz click sobre este proyecto que también desarrolla el mismo diálogo entre los dos per-
sonajes pero utilizando el evento de envı́o y recepción de mensajes.
En este nuevo proyecto cada vez que un objeto termina de mostrar su diálogo envı́a un
mensaje al otro objeto.
16
11.1.1 Envı́o y recepción de mensajes
El envı́o y recepción de mensajes son dos instrucciones de control del tipo Eventos.
Cuando tenemos un programa que envı́a varios mensajes, es recomendable definir nombres
que ayuden a saber a qué mensaje se refiere en cada momento.
La instrucción ”al recibir message1” sólo puede aparecer como la primera instrucción
de un programa. Fı́jate en la forma de esta instrucción y en cómo no se pueden enganchar
bloques encima de éste:
17
Cuando se recibe el mensaje especificado, en este ejemplo ”message1”, se ejecutan las in-
strucciones que aparecen a continuación del mismo.
En algunos casos puede ser útil enviar un mensaje y esperar a que todos los objetos lo
hayan recibido. El siguiente bloque ”enviar y esperar” permite enviar un mensaje a
todos los objetos y fondos del proyecto y, además, espera hasta que todos los elementos han
recibido dicho mensaje:
El uso de mensajes nos permite coordinar las ejecuciones de los programas de diferentes
objetos, asegurándonos de que un programa comience a ejecutarse sólo después de que otro
programa haya ejecutado determinadas instrucciones.
11.2 Variables
Las variables se utilizan para guardar valores.
Para ello, crea un nuevo proyecto que por defecto tendrá el objeto Gato y utiliza el bloque
”al clickear este objeto” de la siguiente forma:
Con este programa, cada vez que se pulse sobre el Gato, aparecerá el mensaje ”Me has
pulsado 1”. Sin embargo, si deseamos que muestre el número de veces que se ha pulsado
durante la ejecución del proyecto, deberı́amos mostrar la primera vez: ”Me has pulsado 1”,
la segunda vez: ”Me has pulsado 2”, la tercera vez: ”Me has pulsado 3”, y ası́ sucesivamente.
Para realizar este programa necesitamos recordar el número de veces que ha sido pulsado el
Gato, de tal forma que cada vez que pulsemos sobre dicho objeto sumemos uno a ese número
de veces y mostremos un mensaje en el que aparezca dicho número de veces.
Para recordar el número de veces que hemos pulsado un objeto vamos a crear una vari-
able. Una variable permite guardar un valor de algo, ya sea un número o una cadena de
18
texto. En nuestro caso vamos a crear una variable para guardar el número de veces que se
ha pulsado el objeto. Vamos a llamar a esa variable numVeces.
Desde el menú de Código, seleccionamos las instrucciones de tipo Variables: pulsamos sobre
el botón ”Crear una variable”. En la casilla ”Nombre de variable” le vamos a asignar un
nombre, en nuestro caso ”numVeces”, dejaremos marcada la casilla que esté marcada por
defecto (”Para todos los objetos”) y pulsaremos sobre el botón ”De acuerdo”.
Observarás cómo en las instrucciones de Variables han aparecido los siguientes bloques aso-
ciados a la variable nueva que acabamos de crear:
19
Si está seleccionado, se mostrará el monitor de la variable ”numVeces”. De momento vamos
a dejarlo seleccionado para ver cómo va cambiando.
Vamos a usar el bloque ”cambiar numVeces por 1” para que al pulsar sobre el objeto,
la variable numVeces aumente en una unidad.
Cada vez que pulsamos sobre el objeto, podremos ver cómo va aumentando el valor en la
variable numVeces que se muestra en el monitor. Sin embargo, el diálogo que muestra el
objeto siempre dice que le hemos pulsado una vez. Nos gustarı́a que mostrara en el diálogo
el número de veces total que hemos pulsado el objeto. Para ello vamos a unir el texto
”Me has pulsado” con el número de veces que hemos pulsado, es decir, el contenido de la
variable numVeces. Utilizaremos el bloque ”unir” del tipo de instrucciones Operadores para
concatenar el texto ”Me has pulsado” y el contenido de la variable numVeces. Para acceder
al contenido de la variable numVeces, arrastraremos el bloque con el nombre de la variable
que aparece en las instrucciones de tipo Apariencia sobre el bloque ”unir”:
20
Y ahora arrastraremos este bloque que concatena esos dos valores sobre el bloque ”decir por
segundos”:
Al ejecutar nuevamente este programa, observarás ahora cómo el diálogo muestra cómo
cambia el número de veces que se pulsa sobre el objeto. Sin embargo, la cuenta del número
de veces no se ha iniciado en 1, si no que ha continuado con el valor que tenı́a de la ejecución
anterior. Para que comience en 1 cada vez que se ejecuta el programa es necesario añadir la
inicialización de esta variable, es decir, asignarle un valor inicial.
21
12 Listas
Los programas que hemos escrito hasta ahora usaban variables ordinarias para almacenar
datos individuales. Pero las variables no son útiles cuando queremos guardar un conjunto
de valores, como por ejemplo, los números de teléfono de nuestros amigos, los nombres de
los libros de una biblioteca, o los registros diarios de las temperaturas máxima y mı́nima en
una localidad durante un mes. En efecto, si quisiéramos que nuestro programa recordase los
números de teléfono de 20 de nuestros amigos, necesitarı́amos 20 variables. Evidentemente,
escribir un programa que gestione 20 variables serı́a muy engorroso. En esta sección apren-
deremos a manejar las listas, un tipo de datos propio de Scratch que nos permite agrupar
valores relacionados.
Una lista es como un contenedor donde podemos guardar múltiples valores y acceder a
ellos. Podemos imaginar que una lista es una especie de cómoda con muchos cajones, donde
cada cajón almacena un solo objeto. Al crear una lista le ponemos un nombre, igual que lo
harı́amos con una variable. Después, podemos acceder a los elementos individuales de la lista
usando su posición en la lista. Por ejemplo, la figura muestra una lista llamada “dayList”
que almacena los nombres de los siete dı́as de la semana:
Podemos acceder a los elementos contenidos en la lista usando sus ı́ndices de almacenamiento
(o posiciones). En Scratch, el primer elemento tiene un ı́ndice de 1, el segundo un ı́ndice
de 2, y ası́ sucesivamente. Por ejemplo, como el martes (tuesday) es el tercer elemento de
la lista, su ı́ndice es 3. Por consiguiente, podemos acceder al tercer elemento de la lista
“dayList” usando un comando de la forma “elemento (3) de (dayList)”.
22
Al clicar en el botón “OK”, Scratch crea una nueva lista vacı́a, y muestra los bloques rela-
cionados con las listas, como ilustra la figura:
Al crear la lista, Scratch también muestra su monitor en el escenario, como muestra la figura.
La lista estará inicialmente vacı́a, por lo que su longitud es inicialmente 0. Puedes usar este
monitor para añadir elementos a la lista conforme escribes tu programa.
Si conocemos los datos que queremos guardar en la lista (como en el caso de nuestra lista
“dayList”), podemos añadirlos en este punto del proceso de creación. La figura muestra
cómo añadir dı́as a la lista “dayList” usando su monitor. Pincha en el signo “más” en la
esquina inferior izquierda siete veces para crear siete entradas, y a continuación, escribe un
dı́a de la semana dentro de cada entrada. Usa la tecla de tabulación (a la izquierda de la
tecla de la Q) para navegar a través de los elementos de la lista. Para 189 seleccionar un
elemento de la lista, basta con clicar sobre él. Al presionar el botón del signo más con un
elemento de la lista seleccionado, el nuevo elemento de la lista se añadirá a continuación del
elemento actual; si no hay ningún elemento seleccionado, el nuevo elemento se añade al final
de la lista. Cuando seleccionamos un elemento de la lista, junto a él aparece un botón con
una cruz. Si queremos eliminar ese elemento de la lista, debemos presionar sobre el botón
23
de la cruz del elemento a borrar
El comando “añade” es fácil de entender, ası́ que vamos a examinar el comando “borrar”
con un poco más de detalle. En el hueco para parámetros de este bloque podemos escribir
directamente el ı́ndice del elemento que queremos borrar, pero también podemos seleccionar
una de las opciones del menú desplegable que aparece al pinchar en la flecha dentro del hueco
para parámetros (ver figura). Este menú desplegable nos permite borrar el primer elemento
de la lista, el último elemento, o borrar todos los elementos de la lista.
24
Insertar y reemplazar
Imagina que queremos guardar alfabéticamente los nombres y números de teléfono de nue-
stros amigos en una lista, como los contactos de nuestro teléfono móvil. Conforme vamos
creando la lista, debemos insertar la información de contacto de cada amigo en la posición
adecuada. Pero con posterioridad, si un amigo cambia de número, necesitamos editar la lista
para cambiar esa información. Los comandos “insertar” y “reemplazar” son útiles para estas
tareas. La figura muestra un ejemplo de utilización de estos comandos:
Si hacemos click en la flecha dentro del hueco para parámetros de los bloques “reemplazar”
e “insertar” podremos acceder a un menú desplegable con tres opciones: 1, último, y al azar
(ver figura). Si elegimos “al azar”, el comando elegirá un ı́ndice aleatoriamente
Ya hemos mencionado antes que podemos acceder a cualquier elemento de una lista us-
ando el ı́ndice de ese elemento. Por ejemplo, el programa de la figura muestra cómo usar el
25
bloque “elemento ( ) de ( )” para acceder a los elementos de la lista “dayList”. Este pro-
grama usa una variable llamada “pos” (de posición) para iterar a lo largo de los elementos
de la lista, mostrando los contenidos mediante el bloque “decir”.
Usando el bloque “¿( ) contiene ( )?” podemos comprobar si una lista contiene o no una
cierta cadena. Se trata de un bloque booleano que devuelve VERDADERO o FALSO de-
pendiendo de si la lista contiene o no la cadena especificada. El programa de la figura ilustra
una aplicación de este bloque. Como “dayList” contiene la cadena “friday”, se ejecutará el
comando “decir” dentro del bloque “si”.
26
Técnicamente, es un error intentar acceder a un elemento más allá de los lı́mites de una
lista. Sin embargo, y en lugar de mostrar un mensaje de error, Scratch intenta hacer algo
coherente con el bloque infractor. 192 (Por esta razón, la ausencia de mensajes de error
en un programa no significa que no haya un error). Scratch no se quejará de que estemos
intentando acceder a un ı́ndice inválido; en vez de ello, el programa simplemente no se com-
portará de la manera esperada. La tabla de la figura muestra lo que puede ocurrir cuando
intentamos acceder a “dayList” usando un ı́ndice fuera del rango del 1 al 7.
Las listas son muy útiles porque pueden crecer o menguar dinámicamente conforme se está
ejecutando un programa. A modo de ejemplo, digamos que estamos escribiendo una apli-
cación en la que el profesor introduce las notas de los alumnos para poder procesarlas. (El
profesor podrı́a necesitar la nota máxima, la mı́nima, el promedio, la mediana, y cosas por
el estilo). Sin embargo, el número de alumnos puede ser distinto en cada clase. El profesor
podrı́a necesitar 20 notas para la clase 1, 25 notas para la clase 2, etc. ¿Cómo sabe nue-
stro programa que el profesor ha terminado de introducir notas? En esta sección también
responderemos a esta pregunta.
27
La segunda forma de rellenar automáticamente una lista es hacer que el usuario introduzca
un valor especial (conocido como centinela) para indicar el final de la lista. Por supuesto,
el centinela debe elegirse de forma que no coincida con uno de los elementos posibles de
la lista. Por ejemplo, si nuestra lista va a almacenar nombres o números positivos, una
buena elección para el centinela serı́a el valor −1. Ahora bien, si el usuario puede introducir
números negativos, el valor −1 no serı́a un centinela adecuado. Para nuestra 193 lista de
notas, un centinela de −1 funcionarı́a perfectamente. El programa de la figura usa este
centinela para saber cuándo el usuario termina de introducir valores.
Notar que el programa especifica en la pregunta al usuario cuál es el centinela (−1 en este
caso). Si el usuario introduce el valor −1, el programa se para, porque sabe que el usuario
ha terminado de introducir notas (y ese valor no se incluye en la lista). En caso contrario,
el valor introducido se adjunta a la lista, y al usuario se le solicita otra entrada. La figura
muestra cómo quedarı́a “listaNotas” si el usuario introdujese tres notas (6, 3, y 9) seguidas
del centinela (−1).
Imagina que eres un profesor y que necesitas saber cuál es la nota máxima del último exa-
men. Para ello, podrı́amos escribir un programa para comparar todas esas notas y hallar el
28
valor máximo. El programa de la figura halla el valor máximo de una lista llamada “notas”.
Para hallar el valor mı́nimo de una lista podemos usar un algoritmo muy similar. Comen-
zamos asumiendo que el primer elemento de la lista es el elemento más pequeño, y a contin-
uación, usamos un bucle para comprobar el resto de elementos. Cada vez que encontremos
un valor más pequeño, actualizamos la variable que almacena el valor mı́nimo.
29
El texto que introduzcamos quedará almacenado en una variable del sistema, llamada re-
spuesta, a la que se puede acceder a través de las instrucciones Sensores. Podemos utilizar el
contenido de esta variable para ofrecer una respuesta personalizada al usuario, por ejemplo:
14 Espera condicional
La espera condicional es una instrucción que detiene la ejecución de un programa hasta que
una determinada condición sea verdadera. Cuando dicha condición sea verdadera el pro-
grama continuará la ejecución con la siguiente instrucción. Este tipo de instrucción también
se utiliza para coordinar acciones entre objetos.
30
Por ejemplo podemos usar esta instrucción para esperar que un objeto esté tocando a otro y
en ese momento realizar otra acción. Pulsa sobre el siguiente proyecto para ver un ejemplo.
En este caso cuando el tiburón alcanza al pez, el pez se escapa. El programa del pez está es-
perando a que el tiburón le toque (objeto Shark), utilizando para ello la instrucción ”esperar
hasta que ”, cuando esta condición es verdadera, el pez se mueve a otra posición y escapa.
15 Condicionales
En este bloque vamos a aprender a utilizar otro tipo de estructuras de control que también
sirven para alterar el orden de la ejecución de otros bloques: las instrucciones condicionales.
15.1 Introducción
La estructuras de control son instrucciones que permiten controlar el orden de ejecución de
las instrucciones. Anteriormente hemos visto instrucciones para repetir la ejecución de un
conjunto de instrucciones (”por siempre”, ”repetir hasta que ”, ”esperar hasta que ”, ”al
recibir ”). Tanto las instrucciones ”repetir hasta que ” como ”esperar hasta que ” utilizaban
una condición que tomábamos del bloque Sensores para poder decidir su ejecución:
31
• En ”esperar hasta que ” el programa interrumpı́a su ejecución hasta que la condición
era verdadera. Una vez que la condición era verdadera se continuaba con la ejecución
de la siguiente instrucción.
A diferencia de los bloques que hemos visto hasta ahora, esta instrucción permite inser-
tar 2 secuencias de instrucciones en 2 sitios diferentes: justo debajo de la palabra ”si” y
justo debajo de la palabra ”si no”. Sólo se ejecutará una de las 2 secuencias de instrucciones
dependiendo de la condición:
Si la condición que hemos colocado es verdadera, entonces se ejecutarán las instrucciones que
están justo debajo de la palabra ”si” y si la condición es falsa, se ejecutarán las instrucciones
que están justo debajo de la palabra ”si no”.
32
15.2.1 Condición
Cuando vimos los bloques ”esperar hasta que ” y ”repetir hasta que ”, estudiamos algunos
tipos de condiciones, en particular aquéllas que se muestran en las instrucciones Sensores.
Además de este tipo de condiciones también podemos utilizar otro tipo de bloques como
condición, por ejemplo, algunos bloques de Operadores:
33