You are on page 1of 22

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

GUIA DIDACTICA CONTROL


Pre-conocimiento
Hasta ahora ya hemos aprendido el entorno, a utilizar los bloques de movimiento, apariencia, sonido y lpiz. En esta unidad vamos a ver los distintos tipos de bloques de control. Con su utilizacin podremos decidir en qu momento ejecutar un conjunto de bloques. Utilizar eventos como el clic del ratn o la pulsacin de una determinada tecla. As como estructuras repetivivas y comparaciones condicionales.

Objetivos
Conocer los ms importantes bloques de cada una de las familias Realizar actividades para comprobar su uso Conseguir realizar nuestra prctica guiada de utilizacin de bloques de control Conocer las estructuras de control y repeticin Saber qu es y para qu sirve una estructura condicional

Temporalizacin
La propuesta temporal de esta unidad es estudiarla durante la semana: Contenidos Temporalizacin

Familia de bloques de control 1 sesin

1 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Contenidos
Indice
1. 2.

Introduccin Un poco de teora


1. 2. 3. 4. 5. 6. 7.

El primer movimiento Descripcin del funcionamiento de los bloques Los bloques uno a uno Eventos o sucesos Repeticiones o bucles Comparaciones Envio y recepcin de mensajes

3. 4.

Actividad guiada Fuentes de informacin

2 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

1. Introduccin
CONTROL

En esta seccin encontraremos todos los bloques que permiten un control sobre la ejecucin de las instrucciones. As podremos repetir bloques, comparar nmeros enviar mensajes a los objetos, etc.

3 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

2. Un poco de teoria
EL PRIMER CONTROL

Ha estas alturas del cuso ya hemos utilizado en anteriores ejemplos y actividades algunas estructuras de control. En concreto podemos cambiar el inicio de alguno de los programas que hemos hecho hasta ahora para que en lugar de ejecutarse al presionar la bandera verde lo hagan al presionar alguna tecla.

DESCRIPCIN DEL FUNCIONAMIENTO DE LOS BLOQUES

4 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Tabla con la descripcin del funcionamiento de cada uno de los bloques:

CONTROL

Ejecuta el programa que tiene debajo al hacer clic en la bandera verde.

Ejecuta el programa que tiene debajo al presionar una tecla especfica.

Ejecuta el programa que tiene debajo al hacer clic en un Objeto.

Espera un nmero determinado de segundos y contina luego con el bloque siguiente.

Ejecuta continuamente los bloques en su interior.

Ejecuta, un nmero especfico de veces, los bloques en su interior.

Enva un mensaje a todos los Objetos, activndolos para que hagan algo y espera a que todos terminen antes de continuar con el siguiente bloque.

Enva un mensaje a todos los Objetos y luego contina con el bloque siguiente sin esperar a que se realicen las acciones de los Objetos activados.

Ejecuta el programa que tiene debajo cuando recibe un mensaje especfico enviar a todos (Broadcast).

Comprueba continuamente si una condicin es verdadera; cada que es verdadera, ejecuta los bloques en su interior.

Si la condicin es verdadera, ejecuta los bloques en su interior.

5 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Si la condicin es verdadera, ejecuta los bloques dentro de la porcin si; si no, ejecuta los bloques que estn dentro de la porcin si no.

Espera hasta que la condicin sea verdadera, para ejecutar los bloques siguientes.

Comprueba si la condicin es falsa; si lo es, ejecuta los bloques en su interior y vuelve a chequear la condicin. Si la condicin es verdadera, pasa a los bloques siguientes.

Detiene el programa edl Objeto que contiene esta instruccin.

Detiene todos los programas de todos los Objetos.

LOS BLOQUES UNO A UNO


El bloque al presionar (bandera verde)

Este bloque desencadena automticamente todas las instrucciones que tiene colgadas. Es importante saber que un mismo objeto puede tener varios scripts inicindose con este bloque. Por lo mismo, varios objetos pueden recibir este bloque. Esto es absolutamente necesario si se quiere que varios objetos reaccionen al mismo tiempo cuando el programa se ponga en marcha.

6 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

El bloque al presionar tecla __

Este bloque funciona como el anterior, pero ser una tecla la que desencadene la instrucciones en lugar de la bandera verde.

El bloque al presionar Objeto_

Las instrucciones se desencadenarn cuando el usuario clique sobre el objeto determinado. Por ejemplo:

7 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Los bloques repetir por siempre y repetir __(nmero de veces) Estos bloques hacen esencialmente la misma cosa: provocan un bucle infinito o de cierto nmero de veces de las instrucciones incluidas en ellos.

El bloque esperar __ segundos

Este bloque permite insertar una pausa de x segundos entre las instrucciones. Se puede asociar un nmero decimal como, por ejemplo, 0.003. Tambin es posible dar una fraccin siempre que se utilice el bloque divisin de la categora NMEROS. El bloque enviar a todos y enviar a todos y esperar

Este bloque permite la comunicacin entre objetos. As, un objeto puede enviar un mensaje a todos los dems que al recibirlo (ver el bloque al recibir) actuarn en consecuencia. Primero hay que clicar sobre el tringulo para que aparezca nuevo.

Al clicar sobre nuevo podremos escribir el ttulo del mensaje. Aconsejamos escribir una sola palabra lo ms relacionada posible con el contexto del mensaje.

8 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

El mensaje ser escuchado por todos los objetos, pero no todos reaccionarn a l. Esto slo se producir con el bloque al recibir__ Este bloque es idntico al anterior con la diferencia que el objeto que lo enva esperar a que todos los receptores lo hayan recibido y hayan ejecutado sus instrucciones. El bloque al recibir__

Este bloque permite a un objeto que recibe un mensaje ejecutar las instrucciones correspondientes. El pequeo tringulo permite elegir el mensaje. Podemos crear tambin un nuevo ttulo. Evidentemente ser preciso, en este caso, utilizar un objeto que enve un mensaje con ese ttulo. Los bloques condicionales

Los bloques condicionales combinan con la categora de los SENSORES y la de los NMEROS, verificando que se produce una condicin para que el script siga adelante. Un ejemplo de script: [Ntese que el bloque tocando__? est en la categora SENSORES]

9 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Los bloques detener

El primer detiene un script en concreto. El segundo detiene todo tiene la misma funcin que el octgono rojo al lado de la bandera verde.

EVENTOS O SUCESOS
Un evento o suceso es algo que "sucede" en un momento determinado. En esta caso puede ser la pulsacin de una tecla, el pulsar sobre un personaje, etc. Scratch nos da la posibilidad de realizar acciones cuando se produzca un determinado evento. Gracias a esto, por ejemplo, podemos realizar cosas diferentes dependiendo de que tecla pulsemos. Los bloques de control que se ocupan de esto son:

REPETICIONES O BUCLES
Los bloques de repeticin o bucle nos permite realizar un conjunto de bloques un nmero finito o infinito de veces. Esto evita que reescribamos una y otra vez lo mismo ahorrando trabajo y organizando mejor el programa final.

10 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Los bloques encargado de esto son:

El bloque repetir __ le podemos indicar un nmero determinado de veces o si nos fijamos en la forma de la pieza que podemos introducir, podramos poner un bloque redondeado que corresponde como veremos ms adelante a el valor de una variable, valor de un sensor, etc. en definitiva todo lo que tenga una forma redondeada en los extremos.

El bloque de por siempre si y repetir hasta que realizar la repeticin mientras o hasta que se cumpla una cierta condicin. El bloque para la condicin tiene la forma de hexgono y lo denominaremos bloque lgico, estos bloques los veremos con ms detenimiento en el apartado de operadores, pero vamos a ver como se utilizan brevemente. Supongamos que tenemos definida una variable llamada cont .La crearemos de la siguiente forma:

Y nos aparecera esto:

11 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Vamos ha mover nuestro personaje y cambiar de apariencia mientras nuestra variable tenga un valor inferior a 10. Para ello nos falta ver los bloques lgicos que tienen forma hexagonal. En concreto los de comparacin son los siguientes:

Nuestro pequeo programa quedara as:

COMPARACIONES

12 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Los bloques de comparacin nos permiten cambiar el orden de ejecucin de los bloques dependiendo de si se cumple o no una condicin ( bloque lgico). Estos bloques son los siguientes:

La diferencia entre utilizar uno u otro est en si deseamos hacer una cosa cuando se cumpla y otra cuando se incumpla. El siguiente ejemplo tendra el mismo resultado porque dejaramos por rellenar la parte del si no:

En caso de no cumplirse la condicin todo los bloques de cdigo que hallamos introducido en su interior no se ejecutarn. Puede haber una sola instruccin dentro o muchas.

Un pequeo ejemplo
Pintar un cuadrado utilizando un proceso repetitivo y clonando en cada esquina el objeto.

13 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

ENVIO Y RECEPCIN DE MENSAJES


El uso de mensajes permite por una parte, la coordinacin entre distintos objetos de forma que podemos enviar en un momento dado desde un objeto un mensaje a otro para que realice alguna accin. Por otra parte tambin nos ayuda a mantener una estructuracin en nuestro programa. Cuando nuestro programa crezca el poder separar conjuntos de bloques nos puede servir de ayuda. Estos mensajes no necesariamente han de enviarse de un objeto a otro distinto, pueden enviarse dentro del mismo objeto. Tambin es interesante recalcar que funciona como un evento, es decir que es independiente de la ejecucin lineal del programa. Enviar a todos: Al seleccionar la pestaa seleccionamos la variable o mensaje existente o generamos uno nuevo. Se nos abre una cajeta y tecleamos el nombre del mensaje a enviar o variable (argumento) global.

14 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

La diferencia entre enviar a todos y enviar a todos y esperar es que, en la primera, envamos el mensaje y seguimos ejecutando el bloque de cdigo que sigue; mientras que, en el segundo, envamos el mensaje y, mientras no se ejecute en algn objeto que lo reciba, no se seguir ejecutando el cdigo desde donde lo enviamos.

Ya slo nos queda escribir los bloques que queremos que se ejecuten cuando se reciba el mensaje. Para ello cambiaremo por ejemplo el iniciar el programa con la bandarita verde por iniciar el programa al recibir un mensaje determinado.

Ejemplo de uso de este bloque: Al presionar un objeto2 enviar un mensaje y ejecutar el cdigo en el objeto 2.

Objeto1

Objeto2

15 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Al presionar la banderita verde se envia el mensaje desde el objeto 1 y se espera, seis segundos que es lo que tarda en ejecutarse el cdigo en el objeto2 (derecha) para seguir ejecutando los bloques girar, decir y fijar tamao.

Cuando se reciba el mensaje mensaje1 enviado desde el objeto1, el objeto2 lo recibir y mostrar en pantalla dos mensajes de decir.

16 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

3. Actividad guiada
Actividad guiada

Control. (Bloque Naranja)


La idea de la presente prctica es utilizar las diversas opciones que nos brinda el bloque control en Scratch. Para realizacin de esta prctica vamos utilizar 1 escenario con 3 fondos, 3 objetos (dos con 2 disfraces y el tercero con 5). El escenario tendr seis bloques de cdigo; el objeto1, 3 bloques de cdigo de programa; objeto2, 2 bloques de programa; y, objeto3, 5 bloques de programa. Enunciado de la prctica: Pretendemos que el objeto1 (importar los disfraces cat1-a y cat-b ) se desplace desde la zona inferior izquierda hacia la zona superior derecha (haciendo diagonal sobre el escenario) mientras va pintando su recorrido de color azul. Al llegar a su primer destino debe ir hacia la esquina superior izquierda. Al llegar a dicho sitio debe generar un mensaje (esquina_izquierda) que enviar a todos los objetos. El escenario (debemos tres escenarios cualquiera y eliminar el blanco) al recibirlo cambia el disfraz; el objeto nmero dos (importar disfraces jodi-1 y jodi-2), ubicado en dicha esquina al iniciar el programa, debe iniciar un bloque de cdigo (sprite) en el que cambie el disfraz (10 veces) y toque, adems, unas notas musicales. El objeto1 ahora sigue su camino al punto de inicio (inferior izquierda). Ello genera un nuevo mensaje (centro) que genera en el escenario un cambio de fondo; en el objeto3 se hace un proceso repetitivo (10 veces) en el que cambiamos el disfraz y acumulamos la cantidad de veces que se ha repetido la secuencia completa del objeto1. Al llegar a tres se detiene el programa. Previamente tendremos que haber generado una variable en el bloque respectivo. Por otra parte, si el usuario hace clic, en cualquier momento, en el objeto tres se repite el cambio de disfraz. Igualmente, si el usuario toca la tecla flecha arriba o flecha abajo debemos generar un sonido para indicar que lo ha realizado. PASO 1: Objeto escenario. Fondos: flowers, gran canyon y building. Bloques de cdigo Detalle del cdigo generado Al iniciar el proyecto tocamos un sonido y cambiamos de fondo por defecto el de flowers

Al presionar la tecla espacio. Cambiamos de fondo.

17 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Al recibir el mensaje centro. Cambiamos de fondo.

Al recibir el mensaje de esquina_iquierda.Cambiar de fondo.

Al presionar la tecla Flecha Abajo. Tocamos sonido grabacin1. Al presionar la tecla Flecha Arriba.Tocamos sonido grabacin2.

PASO 2: Objeto1. Cat-a y cat-b (disfraces) Bloques de cdigo Detalle del cdigo generado Al presionar el inicio Ponemos la variable final a 0 (ver anexo al final de este prctica) Borramos algo pintado previamente con lpiz Fijamos el color del lpiz al azul Generamos un proceso repetitivo infinito que hace: Ir a la esquina inferior izquierda Cambiar el tamao de lpiz a 10 Bajamos el lpiz para pintar Nos deslizamos hacia la zona superior derecha Deslizarse a la zona superior izquierda Al llegar a la zona izquierda, donde se halla el objeto2, enviamos el mensaje esquina_izquierda.

18 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Bajamos a la zona de partida Enviamos a todos los objetos el mensaje centro y, mientras se ejecutan estos eventos en los diferentes objetos, esperamos Enviamos, sin esperar el siguiente bloque, el mensaje objeto_actual Subimos el lpiz para que no pinte en caso de tocar cualquier otra tecla Al recibir objeto_actual: este mensaje es generado en el bloque de cdigo anterior y slo es utilizado en este bloque. Repetimos 4 veces, esperando 0.3 segundos el girar, en sentido contrario a las agujas del reloj, 90 grados nuestro objeto con el disfraz actual y, a la vez, lo desplazamos unos 10 pasos. Al presionar la tecla espacio, en cualquier momento de la ejecucin de nuestro proyecto, se desplaza nuestro objeto1 hacia la zona centro del escenario.

PASO 3: Objeto 2. Disfraces: jodi-1 y jodi-2 Bloques de cdigo Detalle del cdigo generado

19 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Al recibir esquina_izquierda (mensaje generado en el objeto1 al llegar a la esquina izquierda) Deslizamos a la izquierda superior el objeto2. Repetimos 10 veces: tocar varias notas con el instrumento 22, fijado previamente, y cambiando de disfraz (dando sensacin de bailar) Si presionamos la tecla de la barra espaciadora en cualquier momento, el objeto se desliza hacia la zona central del escenario

PASO 4: Objeto3. Disfraces: cassy-chillin, cassy-dancing-1, cassy-dancing-2, cassy-dancing-3, cassy-dancing-4, cassy-dancing-5 Bloques de cdigo Detalle del cdigo generado Al presionar la bandera (iniciar la ejecucin) desplazamos este objeto a la zona inferior derecha del escenario. Al presionar la barra espaciadora, en cualquier momento, nuestro objeto se desplaza al centro del escenario

Si hacemos clic encima del objeto3, hasta la detencin del programa, se repetir el cambio de disfraz bsicamente

20 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

Cuando el objeto1 regresa a su posicin original (zona inferior izquierda del escenario) emite un mensaje. Al recibir este mensaje ubicamos el objeto3 en la zona inferior izquierda del escenario. Retornamos al objeto1 La variable final, puesta a cero al iniciar el programa en el objeto uno, la incrementamos1 Si la variable final es mayor que 3 (repetido el proceso ya tres veces), movemos el objeto 3 hacia la zona central inferior, cambiamos 2 veces todos los disfraces (5 disfraces * 2 = 10, por ello se repite 10).Se desplaza hasta la zona inferior derecha, se emite un mensaje y se detiene completamente el programa; En caso de que la variable sea menor a tres (si no) se muestra un mensaje donde se encuentre el objeto Para grabar un sonido propio y definir una variable puedes ir a los apartados de los distintos bloques y ver los aspectos tericos del bloque control. Por ltimo guardamos en nuestra carpeta de trabajo la actividad guiada con el nombre de ActGuiadaCon.

21 of 22

11/09/2009 9:34

Unidad_Control

http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_ebrac_/Unid...

4. Fuentes de informacin
Fuentes de informacin

Reference Guide SCRATCH, version 1.3, elaborado por el grupo de investigacin del http://www.media.mit.edu/ MIT Media Lab y traducido al espaol al espaol por Eduteka.

Guia de referencia de CEIP de Cella (Teruel), 2009.

http://jrcerdeira.es/moodle/course/view.php?id=3

http://aulavirtual2.educa.madrid.org/course/view.php?id=665

22 of 22

11/09/2009 9:34

You might also like