Nivel Básico Scratch: Introducción de datos. Condiciones
Duración aproximada: 1-2 sesiones.
Objetivos 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 Fuentes de información
Contenidos
Contenidos
 

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.

Ejercicios
Ejercicio
 

Crear y guardar nuevo proyecto

  • Crea un nuevo programa.
  • Ve al menú Archivo → Guardar como (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.
Contenidos
Contenidos
 

3. Ejercicio práctico

A continuación vamos a realizar un ejercicio práctico de repaso de todos los contenidos vistos anteriormente.

Ejercicios
Ejercicio
 

3.1. Fantasma que asusta

Crear y guardar proyecto

  • Crea un nuevo programa.
  • Ve al menú Archivo → Guardar como (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:

  • Ayuda:

Subir el proyecto

  • Sube el fichero "pryfantasma.sb2" a la plataforma.
Contenidos
Contenidos
 

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:

Ejercicios
Ejercicio
 

Crear y guardar nuevo proyecto

  • Crea un nuevo programa.
  • Ve al menú Archivo → Guardar como (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.