|
|
 |
Scratch: Introducción de datos. Condiciones |
Duración aproximada: 1-2 sesiones. |
|
 |
Objetivos |
- Conocer los sensores de introducción de datos.
- Conocer los operadores de cadenas de texto.
- Conocer los sensores de información más importantes.
- Concepto y utilización de condiciones simples.
- Interactuar con el usuario por medio del teclado y el ratón.
|
 |
Fuentes de información |
|
 |
|
|
1. Sensores. Introducción de datos
Hasta el momento hemos diseñado
programas unidireccionales en los que para producir resultados
diferentes teníamos que cambiar los bloques e instrucciones y volver a
ejecutar. Lógicamente, Scratch nos proporciona herramientas para
interactuar con el usuario. Dentro del bloque Sensores, tenemos 2 instrucciones específicas:
preguntar “texto” y esperar 
Muestra un diálogo en pantalla con el
texto que hemos puesto y espera que introduzcamos algo por el teclado
hasta que pulsamos la tecla Intro o hacemos clic en el icono de validar.
respuesta 
Contiene los caracteres introducidos por el usuario.
2. Operadores de cadenas de texto
Una de las tareas más habituales en los
programas informáticos es el uso de cadenas de texto (o palabras), tanto
si se trata de aplicaciones de bases de datos, como para la simple
salida de mensajes en pantalla. Scratch dispone de 3 operadores para
manejar caracteres introducidos por teclado.
2.1. Concatenación de cadenas de texto
unir
Este operador une o junta 2 cadenas de texto (palabras) en una sola cadena.
2.2. Longitud de una cadena de texto
longitud de 
Devuelve el número de caracteres de longitud de una cadena de texto.
2.3. Subcadena de texto
letra n de 
Devuelve la letra que ocupa la posición "n" dentro de una palabra. |
 |
|
|
Crear y guardar nuevo proyecto
- Crea un nuevo programa.
- Ve al menú (local). Pon como nombre "pryintdatos" y guárdalo en tu carpeta de "SCRATCH".
Programa. Instrucciones
- Realiza una animación en la
que un personaje en el escenario que tú quieras te pregunte cómo te
llamas y que luego te salude por tu nombre.
- Ayuda:

- Modifica el programa para que el personaje te salude por tu nombre diciéndote: “Hola ____, cómo estás?”.
- Modifica el programa anterior para que después de preguntar el nombre y saludarte, te diga: “Tu nombre empieza por __”.
- Ayuda:

- Modifica el programa anterior para
que el personaje, después de las acciones anteriores, te pregunte tu
edad y cuando se la das, te diga: “Sólo ___ años, qué joven!!”.
- Modifica la animación anterior para
que el personaje, después de realizar las acciones anteriores, se ponga a
andar de un lado a otro del escenario. El código para moverse de un
lado a otro sería:

- Crea un documento de texto. Guárdalo con nombre "cuestiones".
- A partir del ejercicio anterior responde a las siguientes cuestiones:
- ¿Qué ocurre si eliminamos la orden “siguiente disfraz”?
- ¿Qué ocurre si eliminamos la orden “esperar 0.1 segundos”?
- ¿Qué ocurre si eliminamos la estructura de control “por siempre”?
Subir el proyecto
- Sube el fichero "cuestiones.odt" a la plataforma.
- Sube el fichero "pryintdatos.sb2" a la plataforma.
|
 |
|
|
3. Ejercicio práctico
A continuación vamos a realizar un ejercicio práctico de repaso de todos los contenidos vistos anteriormente. |
 |
|
|
3.1. Fantasma que asusta
Crear y guardar proyecto
- Crea un nuevo programa.
- Ve al menú (local). Pon como nombre "pryfantasma" y guárdalo en tu carpeta de "SCRATCH".
Programa. Instrucciones
- Haz un programa en el que un fantasma
te pregunte cuántas veces quieres que te asuste. Si le dices 10 te dirá
“Buh!” 10 veces. El fantasma estará en un fondo que buscarás por
internet y que será un lugar abandonado. Cuando asuste el fantasma, el
disfraz será distinto. Por ejemplo:


Subir el proyecto
- Sube el fichero "pryfantasma.sb2" a la plataforma.
|
 |
|
|
4. Sensores. Información en tiempo real
Los elementos llamados sensores (de la familia Sensores),
vigilan cosas como si estamos tocando el borde, si tenemos una tecla
pulsada, la posición en el escenario, etc. Es decir, miden o determinan
eventos para que sepamos cuál es la situación en tiempo real.
Scratch dispone de bastantes sensores de información, si bien los principales son los siguientes:
- ¿ratón presionado?
Informa de si está presionado o no el ratón. - ¿tecla espacio presionada?
Informa de si la tecla espacio está presionada o no. - ¿tocando el color?
Indica si el objeto está tocando un determinado color. - ¿tocando a?
Indica si el objeto está tocando el puntero del ratón o un borde.
5. Condiciones
Todo el código que hemos visto hasta
ahora ejecuta sus instrucciones de arriba abajo, según se las va
encontrando. La ejecución de instrucciones una a una, en el mismo orden
en que aparecen en el programa, se denomina ejecución secuencial.
Si un ordenador no pudiese ejecutar instrucciones más que en orden
secuencial, no pasaría de ser más que una buena calculadora de bolsillo.
Pero un ordenador puede también tomar decisiones en función de
determinadas condiciones; es decir, según sea el valor de determinadas
variables en el momento de la ejecución del programa, el computador
decide si ha de seguir ejecutando una parte del programa u otra. Este
tipo de acciones se denomina Control de flujo.
El segundo bloque más importante dentro
de la familia Control, es el de las comparaciones. Este tipo de bloques
permite cambiar el orden de ejecución de un programa dependiendo del
resultado de una determinada condición. La cuestión está en que las
condiciones se pueden controlar mediante los sensores (ver apartado
anterior).
5.1. Condición simple o binaria
La selección condicional simple o
binaria, admite dos opciones. Es la sentencia más común para tomar una
decisión: si se cumple una condición, entonces se ejecuta algo, en caso
contrario, se ejecuta otra cosa.

La sintaxis es: SI ... ENTONCES ... SI NO ...
Que quiere decir: SI condición ENTONCES
instrucción1 SI NO instrucción2. Siendo opcional el SI NO, ya que puede
que no haya acción en caso de que no se cumpla la condición.
Si no hay nada que ejecutar si no se cumple la condición, tendremos el bloque más simple:
 |
 |
|
|
Crear y guardar nuevo proyecto
- Crea un nuevo programa.
- Ve al menú (local). Pon como nombre "prycondicion" y guárdalo en tu carpeta de "SCRATCH".
Programa. Instrucciones
- Inserta un control de la familia Eventos,concretamente al presionar la tecla Espacio.
- A continuación inserta un bloque de la familia Control llamado si...entonces.
- Entre el si y el entonces, introduce el bloque ¿ratón presionado?, el cual hará que si está pulsado se ejecute lo que hay dentro del bloque.
- Para terminar, dentro del bloque condicional inserta un mensaje para que diga "Ratón presionado".
- Ayuda:

- Ahora, al ejecutarlo, el gato no dirá
nada, pero si antes de pulsar la tecla espacio presionas el botón
izquierdo del ratón, el gato avisará de la pulsación:

El problema, es que si lo volvemos a
ejecutar sin pulsar el ratón, el gato sigue con el bocadillo de ratón
presionado. ¿No sería más lógico que, en caso de que no esté pulsado
también lo diga?
- Utiliza el bloque si..entonces..sino de la familia Control. Cambia el bloque si..entonces por éste y añade debajo del sino un bloque en el que diga Ratón no pulsado:

- El resultado, en caso de que no se haya pulsado será:

Mostrar sensores en pantalla
También podemos, haciendo clic en
algunos sensores (aquellos que tienen un cuadro para ser seleccionados),
mostrarlos en el escenario para tener controlados sus valores.
- Por ejemplo, si en el anterior seleccionamos el de volumen del sonido:

- Veremos como en la parte superior izquierda del escenario se muestra el valor:

Añadir movimiento
Para concluir, vamos a modificar un poco
el programa para que el gato ande solo hasta encontrarse con el borde,
lo cual hará que se vaya en retroceso.
- Quita el bloque al presionar la tecla espacio y cámbialo por el bloque al presionar la bandera verde.
- Cambia el bloque ¿ratón presionado? por ¿tecla espacio presionada?
- Cambia el bloque si..entonces..sino por si..entonces.
- Añade un bloque repetir hasta que y, dentro de éste, un sensor ¿tocando ?, seleccionando la opción borde.
- A continuación, inserta un movimiento
de 10 pasos y lo duplicas (estará repetido). Entre medio de ambos un
movimiento de 10 pasos negativo. Por último, un movimiento de 10 pasos
positivo.
- Ayuda. El
funcionamiento es el siguiente: si apretamos la tecla espacio, el gato
se moverá hacia adelante hasta que toque el borde derecho. Cuando toque
el borde derecho, retrocedemos 10 pasos y repetimos la operación
anterior pero hacia el lado contrario. Cuando toquemos el borde
izquierdo, avanzaremos 10 pasos y vuelta a empezar.

- Ejecuta el programa. Para ello, pulsa
la tecla espacio y, manteniéndola apretada, haz clic en la bandera
verde. Ahora, el gato chocará con el borde y se irá hacia atrás.
- ¿Qué ocurre si volvemos a ejecutar el programa y el gato está tocando un borde?
El gato parece que no se mueve y, encima, se va cada vez más hacia
detrás o hacia adelante. El problema es que ya estamos tocando un borde.
¿Solución? Hacemos que el gato empiece siempre en la
posición x=0, y=0. Añade la instrucción correspondiente antes del bloque
condicional y comprueba que ahora sí funciona correctamente.
Más modificaciones
Modifica el programa para que:
- Pinte una línea azul.
- Diga "Hasta aquí" durante un segundo al llegar a cada borde.
- Se repita indefinidamente hasta pulsar la tecla a.
- Ayuda (inicio del programa):

Subir el proyecto
- Sube el fichero "prycondicion.sb2" a la plataforma.
|
|
|