You are on page 1of 30

1

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN

Tema 1: Conceptos bsicos


1.1 Qu es Scratch: ejemplos de proyectos
1.2 Versiones del programa
1.3 Configuracin
1.4 Entorno de trabajo
1.5 Bloques de programacin
o Las instrucciones
o Expresiones Booleanas
o Condicionales
o Ciclos
o Variables
o Hilos
o Eventos
Tema 2: Los personajes:
2.1 Propiedades
2.2 Modificaciones
2.3 Creacin
2.4 Escenario
2.5 Trayectoria y dibujo
Tema 3: Cmo y dnde programamos?
3.1 Instrucciones y bloques
3.2 Zona de programacin
3.3 Antes de empezar
3.4 Estructura Secuencial
3.5 Estructura Interactiva I
3.6 Expresiones
3.7 Estructura Interactiva II
3.8 Estructura Condicional
Ejercicios de la Unidad 1
Manipulacin de objetos
Animaciones
Dibujar polgonos
Encuentra el error
Evaluacin de la unidad 1: 10 preguntas tipo test

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


TEMA 1: Conceptos bsicos
1.1 Qu es Scratch?
Scratch es un entorno de programacin creado en el Massachusetts Institute of Technology
(MIT) como resultado de la investigacin llevada a cabo en el Lifelong Kindergarten Group.
Su lema es: "Imagina-Programa-Comparte".
Es heredero directo del constructivismo de Piaget y posterior construccionismo de Seymour
Papert (creador del LOGO de los aos setenta y ochenta). Scratch aprovecha los cambios
tecnolgicos ocurridos desde entonces para mejorar sustancialmente la interfaz del entorno y
hacer que el objetivo de la programacin de ordenadores sea la resolucin de un problema sin
tener que preocuparse de la sintaxis.
Se trata de un editor para programar animaciones y juegos, todo ello utilizando pistas de msica y
dibujos propios. Visualiza este vdeo, https://vimeo.com/65583694, es ilustrativo y te animar saber
que has tenido una buena eleccin al querer realizar este curso.

El autor recomienda Scratch para mayores de 8 aos. Asegura que ayuda a desarrollar
conceptos de programacin en un entorno de creatividad artstica.
En el aula entre otras cosas:

Desarrolla: el pensamiento lgico y algortmico; mtodos para solucionar


problemas de manera metdica y ordenada; el hbito de hacer auto diagnosis con
respecto a su trabajo; la capacidad de poner en duda las ideas de uno mismo.
Posibilita: la obtencin de resultados complejos a partir de ideas simples; el
aprendizaje colaborativo a travs del intercambio de conocimiento
Los alumnos trabajan a su ritmo en funcin de sus propias competencias; aprenden
a asumir conceptos matemticos: coordenadas, variables, algoritmos, aleatoriedad,
fundamentos de la programacin; usan distintos medios: sonido, imagen, texto,
grfico

En este curso, despus de haber creado algunos juegos o hecho algunos proyectos, podrs

compartir tus obras con otros usuarios en lnea, este juego ser muy interesante para los
nios, ya que aprendern a hacer clculos matemticos, razonar sistemticamente y dejar
libre su imaginacin jugando.
En este enlace hay un interesante artculo del Dr. David Malan profesor de Harvard, donde
describe su gran funcionalidad.

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


1.2 Versiones
Cuando accedemos a http://scratch.mit.edu aparece una pgina parecida a esta:

(Guarda la direccin de esta web en tus favoritos,


trabajaremos con ella durante todo el curso)
La versin 1.4 of line la puedes adquirir desde este
enlace (http://scratch.mit.edu/scratch_1.4 ).
La versin 2.0 of line de Scratch, es la ltima y es
igual que la versin on-line, la puedes adquirir desde
este link: (http://scratch.mit.edu/scratch2download).
Este curso est preparado para trabajar on-line, para ello debers darte de alta en la web de
Scratch, http://scratch.mit.edu es gratuito y fcil de registrarse. No obstante, si quieres,
puedes bajarte la versin 1.4 del programa, desde la web mencionada anteriormente.
Scratch es un fenmeno de alcance mundial. Es ms que un lenguaje de programacin, se
definen a s mismos como "una comunidad de aprendizaje con varios millones de proyectos
compartidos". Cualquier programa que hagas en este entorno lo puedes compartir con el
resto del mundo con slo pulsar un botn. Se trata de compartir para aprender.
Puedes navegar por la web de Scratch y ejecutar cualquiera de los proyectos compartidos, ver
cmo se han hecho y si tienes alguna idea para ampliarlo puedes hacer tu propia versin, que
formar parte del rbol de reinvenciones del programa original.

1.3 Configuracin
El programa con el que vamos a trabajar no necesita configuracin puesto que est en la nube, no
obstante si quieres cambiar el idioma, no tienes ms que pinchar en el icono que vers en la parte
superior izquierda de la ventana.

Si decides instalar el programa en tu ordenador (aunque como ya hemos dicho en el tema


anterior este curso est configurado para realizarlo totalmente on line), puedes hacerlo
desde esta web https://scratch.mit.edu/scratch_1.4/. Elige tu sistema operativo, clic sobre el
deseado y guardas el archivo en tu escritorio donde aparecer este icono:
Doble clic y sigue los pasos que salen por defecto.

En la misma ventana encontrars algunas preguntas frecuentes que te pueden ser tiles.

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


1.4 El entorno de trabajo
Esta es la ventana donde trabajaremos, en ella distinguimos distintas zonas. En funcin del color con
que estn marcadas:

Naranja: Bloque de programacin organizado por categoras. Cada una de ellas se


identifica con un color y las acciones de cada categora mantienen su color:
Verde claro: Bloque de acciones correspondientes a la categora seleccionada (en este
caso movimiento.
Verde oscuro: Zona de los personajes.
Azul oscuro: Botones para crear nuevos personajes o nuevos fondos (el escenario
puede cambiar de color).
Morado: Zona de programacin.
Rosa: Botones para poner en marcha y detener la ejecucin del programa.
Rojo: Escenario donde se ejecutarn nuestros programas.
Amarillo: Botones para manipular los personajes del escenario
Azul claro: Mens del programa.

Debes tener en cuenta que el bloque de programacin consta de categoras y que cada categora tiene sus
propias acciones: Instrucciones, Expresiones Booleanas, Condicionales, Ciclos, Variables, Hilos, Eventos.
(Todas estas acciones, se especifican en el apartado siguiente)

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


1.5 Bloques de programacin
Scratch construye los programas mediantes bloques parecidos a los de un puzle:

Instrucciones
Expresiones Booleanas
Condicionales
Ciclos
Variables
Hilos
Eventos

Cada uno de estos bloques los pondremos en prctica a medida que vayamos desarrollando los distintos
ejercicios y actividades que se proponen en las unidades que conforman el curso.

INSTRUCCIONES
En programacin, una instruccin simplemente es la indicacin o directiva que le dice al
ordenador que haga algo. Piensa en ella como un comando o sentencia. En Scratch, cualquier
bloque cuya etiqueta se lea como una orden, es una instruccin.
Uno de esos bloques le da instrucciones a un objeto (sprite) para que diga algo:

Otro bloque de instrucciones indica que vayas a algn sitio:

A veces, quieres que una instruccin se ejecute solo bajo ciertas condiciones. Esas condiciones se
definen en trminos de expresiones Booleanas, en las que nos fijaremos a continuacin.

EXPRESIONES BOOLEANAS
En programacin, las expresiones Booleanas, son expresiones que son o ciertas o falsas. En
Scratch, cualquiera de los bloques que tiene forma de diamante alargado es una expresin
Booleana. Uno de esos bloques es:

Despus de todo, es cierto o es falso que el botn del ratn (mouse) est presionado.
Otro de esos boques

es:

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


Despus de todo, es cierto o es falso que un nmero dado es menor que otro nmero. Con
expresiones Booleanas podemos construir estructuras condicionales, en las que fijamos
ahora nuestra atencin.

CONDICIONALES
En programacin, una condicin es algo que debe ser cierto para que algo pueda pasar. Una
condicin es entonces decir que se evala para verdadero o se evala para falso. En Scratch,
cualquier bloque cuya etiqueta diga si, al presionar o hasta que es un tipo de constructo
condicional.
Uno de esos bloques es:

El constructo anterior se conoce generalmente como un si constructo. Con este podemos


darle instrucciones a un objeto para que por ejemplo, diga hola nicamente cuando el
usuario presione el botn izquierdo del ratn (mouse):

Un constructo relacionado es si - si no constructo

Con el constructo anterior damos instrucciones al objeto para que diga hola o adis,
dependiendo de que el usuario haya presionado el botn izquierdo del ratn (mouse):

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


Ten en cuenta de que estos constructos pueden anidarse para permitir, por ejemplo, tres
condiciones diferentes:

El constructo anterior podra llamarse si-si no, si-si no constructo

Otro bloque condicional es:

Y otro ms de este tipo es:

Algunas veces, quieres que una o varias de estas instrucciones se ejecuten repetidamente
de manera continua. Para implementar esta conducta, debemos dirigir nuestra atencin a
los ciclos (loops).

CICLOS
En programacin, un ciclo puede causar la ejecucin de mltiples instrucciones. En Scratch
cualquier bloque cuya etiqueta comience con por siempre o repita es un constructo repetitivo
o cclico.

Uno de esos bloques es:

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


Este constructo nos permite, por ejemplo, dar instrucciones a un objeto para que
indefinidamente diga Miau durante un segundo, con intervalos de un segundo:

Otro bloque le permite hacer el ciclo un nmero especfico de veces:

Y otro bloque le permite repetir un ciclo hasta que una condicin sea verdadera:

Algunas veces, quieres ejecutar una instruccin muchas veces, cada una de ellas variando
ligeramente su comportamiento. Por lo que ahora nos fijaremos en las variables

VARIABLES
En programacin una variable es un sitio para almacenar valores, de la misma manera en que x y
y son variables populares en lgebra. En Scratch, las variables se representan con bloques que
tienen forma de crculos alargados, que solo puedes etiquetar t. Las variables, generalmente
hablando, pueden ser locales o globales. En Scratch, una variable local solo la puede usar un
objeto; una global la pueden usar todos los objetos.
Las variables nos permiten, por ejemplo, dar instrucciones a un objeto para que cuente de
manera ascendente desde 1:

Una variable que solo toma dos valores posibles; por ejemplo, 1 para verdadero o 0 para
falso, se llama variable Booleana

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


Con: instrucciones, expresiones Booleanas, condicionales, ciclos y variables, ahora en su acervo
como bloques de construccin, podemos explorar ya dos constructos de programacin de mayor
nivel, comencemos por los hilos.

HILOS
En programacin, un hilo es como un mini cdigo dentro de un programa que se puede ejecutar al
mismo tiempo que lo hacen otros hilos. Entonces, un programa con mltiples hilos, puede hacer
muchas cosas al mismo tiempo. En Scratch, cualquier bloque cuya etiqueta comience con al
presionar, est indicando o demarcando esencialmente el inicio de un hilo: piensa en que lo que
Scratch llama programas como un hilo (tcnicamente los programas corren en hilos, bueno
pero eso no importa).
Uno de esos bloques es:
Como sugiere la etiqueta del bloque anterior, este hilo se comienza a ejecutar cuando el usuario
hace clic en la bandera verde ubicada en la esquina superior derecha de Scratch. Entonces, un
programa con dos de estos bloques, tiene dos hilos de ejecucin que comenzaran a ejecutarse
simultneamente cuando el usuario presione la bandera verde.
Con frecuencia, es til utilizar hilos separados para tareas conceptualmente diferentes. Por
ejemplo, quieres hacerle seguimiento a si el usuario en algn momento presiona una tecla
determinada durante la ejecucin de un programa para, por ejemplo, implementar un interruptor
que prenda (1) y apague el sonido (0).

Toma nota, que en este par de cdigos, el hilo ubicado a la izquierda es el encargado de
generar el maullido, si la variable sonido tiene almacenado el valor 1 (on); mientras que
el hilo de la derecha constantemente comprueba y recuerda si el usuario ha enmudecido o
encendido el sonido, presionando la tecla m.
Relacionados con los hilos estn los eventos, en los que a continuacin fijaremos nuestra
atencin.

10

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


EVENTOS
En programacin, mltiples hilos puedan comunicarse unos con otros mediante invocacin y
manejo de eventos. Un evento, entonces, es como un mensaje que un hilo enva a otro. En
Scratch, los bloques cuyas etiquetas comienzan con enviar a todos invocan eventos, as como los
bloques cuyas etiquetas comienzan con al recibir manejan eventos.
Un bloque que invoca un evento es:

Un bloque que maneja un evento es:

Un evento no solo puede ser invocado por un bloque, sino que las acciones de un usuario
pueden invocarlo tambin. Por ejemplo, al hacer clic en la bandera verde de Scratch,
efectivamente se invoca un evento que se maneja por:

En Scratch, no solo los eventos permiten la comunicacin entre hilos, sino que tambin
permiten a los objetos comunicarse unos con otros. Por ejemplo, dos objetos pueden
querer jugar Marco Polo entre ellos, con el comportamiento de uno de ellos definido por el
hilo que se encuentra abajo, a la izquierda y el comportamiento del otro objeto definido
por el hilo que se encuentra abajo a la derecha:

Adems de instrucciones, expresiones Booleanas, condicionales, ciclos, variables, hilos y


eventos puedes construir programas divertidos e interesantes. De hecho, exploremos el
funcionamiento interno de lo que a primera vista parece ser un programa muy complejo
pero que en realidad, es solamente una aplicacin de estos bloques de construccin.

11

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


TEMA 2 Los personajes
2.1 Propiedades
En la zona de personajes aparecen los que estamos usando. Si hacemos clic en la i de un
personaje en concreto, o un clic con el botn derecho sobre el personaje, en el men
desplegable info veremos todas sus propiedades:

Podemos ver y modificar diferente caractersticas del personaje, algunas de las cuales se
pueden modificar tambin en modo ejecucin. Si vamos variando la direccin, veremos cmo
afecta al personaje. Si combinamos la variacin de la direccin con el estilo de rotacin
veremos tambin cmo afecta la combinacin de ambas propiedades. Para cambiar estas
propiedades en modo ejecucin tenemos estas instrucciones:

Debes tener en cuenta que la direccin no es como el sistema de coordenadas al que estamos
acostumbrados:

90 es a la derecha.
-90 Es a la izquierda.
0 es arriba.
180 es abajo.

Y, obviamente, podemos poner cualquier valor entre -180 y 180 para indicar una direccin
concreta, donde los valores positivos sealan a la derecha y los negativos a la izquierda:

12

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


2.2 Modificaciones
Duplicar, eliminar, y cambiar el tamao de los personajes (cambios)
Los personajes que vemos en el escenario los podemos manipular directamente con estos
botones:

Tampn: Duplica el personaje del escenario donde se aplica el tampn,

Tijeras: Elimina el personaje del escenario donde se aplican las tijeras,

Agrandar: Aumenta el tamao del personaje del escenario donde se aplica

Empequeecer: Disminuye el tamao del personaje del escenario donde se aplica

Practica con ellos en tu Scratch.

2.3 Crear nuevos personajes


Para aadir un nuevo personaje a nuestro proyecto tenemos cuatro opciones diferentes:

Elegir un personaje de la galera


de Scratch.
Dibujarlo nosotros.
Subir una imagen.
Hacer una foto con la cmara

En cualquier caso, si posteriormente queremos modificar el personaje, pincha en la pestaa disfraces y


aparecer un editor de imgenes, lo mismo que si queremos partir de un dibujo hecho por nosotros.
Este editor de imgenes puede trabajar en modo vectorial o en modo mapa de bits, con estas dos
apariencias:
Ambos entornos de dibujo son muy
similares y slo difieren respecto a las
herramientas propias de cada entorno.
Ahora sera un buen momento para
practicar con los personajes y jugar con
las diferentes opciones y recuerda que
puedes pasar de un modo a otro en
cualquier momento.

13

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


2.4 El escenario
Ya sabes que la zona donde aparece el gatito es el escenario, es ah donde los personajes
ejecutarn las acciones que hayamos programado. El escenario tiene 480 pxeles de ancho por
360 pxeles de altura y en el centro mismo del escenario est el punto (0,0). Por tanto, la
coordenada x tendr valores situados entre -240 y 240, y la coordenada y entre -180 y 180.
Podemos ver cmo varan los valores de las coordenadas del ratn y de un personaje cuando
los movemos por el escenario. Hay que fijarse que las coordenadas del ratn estn justo
debajo del escenario, mientras que las coordenadas del personaje estn debajo de su imagen
en la parte superior derecha de la zona de programacin. De hecho, en el personaje, lo que
indican estas coordenadas es la posicin del "centro" del personaje (su centro de rotacin).

14

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


2.5 Trayectoria y dibujo
Todos los personajes de Scratch tienen asociado un lpiz, que podemos activar con la
instruccin 'baja el lpiz' de la categora 'Lpiz' y desactivar con la instruccin sube el lpiz.
Cuando est activo, (cuando se mueve el personaje) el lpiz va dibujando su trayectoria, lo
cual nos permite hacer dibujos.
Estos dibujos se hacen sobre una capa que es comn a todos los personajes, por eso la
instruccin Borrar, de la misma categora Lpiz, no borra solamente los dibujos hechos por
un personaje, sino todos los dibujos que se encuentren en la capa de dibujo. Hay que tener en
cuenta que la punta del lpiz est situada en el centro de rotacin del personaje. Este lpiz
tiene asociado un color, una intensidad y un grosor que podemos cambiar de forma dinmica
con las instrucciones correspondientes.
Por otra parte, los personajes tambin tienen una instruccin que se llama sellar, que les
permite dejar estampado en la capa de dibujo una imagen de s mismo.
Ahora que tienes un cierto dominio sobre la manipulacin de los personajes dentro del
escenario. Sabras borrarlos? (tijeras), duplicarlos? (tampn), crear otros nuevos? (editor de
dibujos), etc.

15

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


TEMA 3: Cmo y dnde programar?
3.1 Instrucciones y bloques
En este apartado intentaremos explicar aquellas partes del entorno que nos servirn para
programar, y tambin empezaremos a hacer programas
sencillos.
Las instrucciones, expresiones, ciclos, eventos estn
categorizados segn lo que hacen. Tiene un marco con un
botn por categora. Si pulsas cualquier botn de estos
aparecen las instrucciones que corresponden a cada uno
de las categoras de la imagen

Este es uno de los puntos fuertes de Scratch las


instrucciones son bloques! Y con los bloques construiremos
los programas.
Las instrucciones de cada una de las categoras tienen el
mismo color que el botn de que le corresponde:

Azul para el Movimiento


Morado Claro para la Apariencia
Lila para Sonido
Verde oscuro para el Lpiz
Naranja para Datos (variables)
Marrn para Eventos
Marrn claro para Control
Azul claro para Sensores
Verde para Operadores
Morado oscuro para Ms Bloques

(Las que se muestran corresponden a la categora "Movimiento")

16

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


3.2 Zona de programacin
La zona de programacin (se muestra vaca) marcada con un valo rojo, es el lugar donde
pondremos las instrucciones. Debes tener en cuenta que esta zona est vinculada
estrechamente al personaje seleccionado en el escenario, (remarcado en la zona de los
personajes). Cuando aadimos las instrucciones, estarn asociadas a un personaje especfico.
En la figura se puede ver que tenemos seleccionado el gatito rosa, por lo tanto si aades
instrucciones, estarn asociadas al gato rosa que es el que est seleccionado.

3.3 Antes de empezar


Un programa es una lista organizada de instrucciones que, al ejecutarse, hacen que el
ordenador se comporte de una manera determinada. Programar ser, por tanto, partir de una
tarea concreta e intentar proporcionar unas instrucciones al ordenador para que haga lo que
nosotros queremos. Piensa que a programar se aprende programando. No hay atajos. La nica
manera de ser competentes programando es practicar mucho. Esto quiere decir, equivocarse
mucho.
Que nadie se decepcione por cometer errores en sus programas, este es el proceso habitual.
De hecho, esta es una de las partes ms divertidas de programar. Posiblemente estars gran
parte de tu tiempo jugando a detectives, o resolviendo puzles, actividades equivalentes a
encontrar errores en tus programas.

17

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


Cmo se hace esto en Scratch? Empezamos desde cero.

1.
2.
3.
4.

Accede a Scratch
Clic en Mis cosas
Clic en nuevo proyecto
Aparece el gatito

Vers la ventana que se muestra y lo primero de todo es hacer que el gatito haga cosas
sencillas.

Para aadir instrucciones a un programa, las arrastraremos, con el ratn, de la zona de


instrucciones a la zona de programacin (haremos clic sobre la instruccin y, sin soltar el
botn del ratn, moveremos la instruccin donde le corresponda). En la figura hemos cogido y
arrastrado tres instrucciones diferentes hacia la zona de programacin:

18

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


Haz doble clic sobre cada una de las tres instrucciones en la zona de programacin y fjate en el
gatito del escenario. Si haces doble clic sobre la instruccin mover, veremos el gatito
movindose 10 pasos adelante (en la direccin que tiene asociada). Si hace doble clic sobre la
instruccin de girar, veremos cmo cambia la direccin del gatito, y si haces doble clic sobre la
instruccin "ir", el gato vuelve al su origen.
Estos espacios en blanco con nmeros dentro de cada instruccin-bloque son editables.
Probamos de cambiar el 10 de la instruccin "mover" por un 100 y haz doble clic sobre la
instruccin. Qu ves?.. Que el gato se mueve 100 pasos en lugar de 10.
De hecho, lo que tenemos ahora son tres programitas (cada uno de una sola instruccin) que
afectan al mismo gatito. Los ejecutamos (ejecutar es llevar a cabo la instruccin o instrucciones
de un programa) haciendo doble clic sobre ella.
Pero normalmente queremos combinar instrucciones para hacer programas ms largos y
sofisticados.

3.4 Estructura secuencial


En Scratch, combinaremos las instrucciones pegndolas, una debajo de la otra, de manera que
se ejecutarn primero las que estn ms arriba (para ser rigurosos, le llamaremos estructura
secuencial). Como ejemplo ahora, podemos combinar las tres instrucciones que hemos puesto
dentro de la zona de programacin:

Unimos las instrucciones arrastrando una instruccin hasta ponerla debajo de la instruccin
que debe ejecutarse antes. En la figura ya hemos encajado la instruccin "mover" a la
instruccin "ir", y estamos a punto de pegar (izquierda) la instruccin "girar". A la derecha
vemos el resultado final. Cuando estamos arrastrando la instruccin, nos aparecer una raya
blanca indicando donde encajar. Ms adelante nos ser muy til.
Ahora tenemos un programa con tres instrucciones, que se ejecutar de la siguiente manera:
Primero ir el centro de coordenadas del gatito en la posicin con coordenada x igual a 10 y
coordenada y igual a 0 (el centro del escenario).
Despus mover el gatito, 10 pasos.
Finalmente girar el gatito 15 grados en sentido contrario a las agujas del reloj (girar un
nmero positivo de grados significa girar en el sentido contrario a las agujas del reloj).
Lo ejecutaremos haciendo doble clic sobre el programa (los tres bloques pegados).
Sin embargo, en Scratch, es ms habitual ejecutar los programas pulsando la bandera verde

19

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


(arriba a la derecha). Es muy fcil hacerlo, ya que slo tenemos que poner la instruccin
correspondiente. Hacemos clic sobre el botn de la categora de instrucciones 'Eventos'
(rodeado rojo en la figura) y arrastramos a la zona de programas la instruccin al presionar
bandera verde (cercado verde). Despus, arrastramos el programa bajo la instruccin que
acabamos de aadir (rodeado azul)

El resultado final es el programa es este:

Fjate en que, al presionar la bandera verde, nuestro gatito har lo mismo que haca antes.
Haz clic en la bandera verde varias veces. Qu pasa? Sabras explicar por qu pasa lo que
ves?
Tenemos diez categoras de instrucciones, en cada categora podemos encontrar un buen
nmero de instrucciones que podemos utilizar en nuestros programas. No nos dedicaremos a
explicar una a una todas las que pone a nuestra disposicin Scratch. Esto sera bastante
aburrido. Lo que haremos es ilustrar con ejemplos las posibilidades de Scratch y, a medida que
las necesitemos, las usaremos y explicaremos.
Continuamos con el programita que hemos empezado a hacer. Imaginemos ahora que
queremos que el gatito haga algn tipo de ruido. De la categora Sonido aade la
instruccin-bloque tocar sonido (eligiendo gato que lo traducen como meow, en el
desplegable del bloque) al programa.

20

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN

Ahora, cuando pulses la bandera verde vers que el gato hace lo que ya sabemos y, adems,
malla.
Los personajes pueden tener diferentes vestidos, vemoslo!.. Sin salir del programita con el que
estamos trabajando, elije la pestaa Disfraces.

Ten en cuenta que el gatito tiene dos vestidos, llamados (en este caso) costume1 y
costume2. Puedes dejar el nombre que sale por defecto, en tu proyecto, o cambiarlo por el
que ms se ajuste a tus necesidades.

Si volvemos a la pestaa Programas y hacemos clic sobre el botn de la categora


Apariencia, podemos aadir a nuestro programita la instruccin siguiente disfraz.
Hagmoslo y vemos qu pasa:

21

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN

Pulsamos la bandera verde varias veces y fjate que los vestidos del gatito alternan, girando al
mismo tiempo, en cada clic Este cambio de vestidos ser la base de las animaciones hechas
con Scratch. Todava nos queda, sin embargo, algo de camino por delante.
Si ahora quisieras no tener que hacer clic en la bandera verde para repetir la accin, cmo lo
haras?... pues no podras hacerlo an. Hay ciertas estructuras de programacin que todava no
hemos visto. En la prxima actividad veremos construcciones bsicas que nos permitirn hacer
programas ms sofisticados.
Por cierto, queda un pequeo detalle. Si queremos eliminar de la zona de programacin
cualquier instruccin, lo arrastraremos hacia la zona de instrucciones y, sea cual sea la
categora seleccionada, desaparecer. Exactamente lo mismo podemos hacer con un conjunto
de instrucciones pegadas.

22

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


3.5 Estructura Interactiva (I)
Repetir es una de las acciones que los ordenadores hacen mejor. Son incansables! Adems,
es completamente necesario poder repetir para poder hacer programas. Sin la habilidad de
hacer repeticiones habra problemas que los ordenadores no podran resolver!
Comenzaremos por la repeticin ms sencilla:

Las estructuras de control en Scratch tienen esta forma de contenedor abierto. En este caso,
la repeticin por siempre, el nombre es bastante informativo. Los programas que
pondremos dentro del 'por siempre' se repetirn sin fin.
Volvemos al programa que usbamos en el apartado 3. Vamos a poner todo, excepto la
instruccin inicial al presionar (bandera verde), dentro de un para siempre y despus de
nuevo, lo unimos todo con la instruccin al presionar (banderita verde). En la figura vemos
el proceso con todos los detalles:

23

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


As pues el programa que tenemos es este:

Pulsa la banderita verde, y vers que hace lo mismo que haca, pero ahora lo hace siempre.
Esto es porque las instrucciones que estn dentro del por siempre se ejecutan sin parar. Lo
puedes detener pulsando el botn rojo junto a la bandera verde (el botn de stop).
Podemos decir a Scratch que queremos repetir slo un nmero determinado de veces.
Arrastrando y cambiando de lugar las instrucciones como hemos visto en el caso del "por
siempre"', para ello podemos utilizar el "repetir 10" un cierto nmero (10 en este caso. Si nos
interesas, este 10 lo podemos cambiar. En la figura hemos optado poniendo por 25.

24

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


El programa queda as:

Est bastante claro qu har el programa.


Ahora tendremos las acciones dentro del "repetir" ejecutadas 25 veces al pulsar la bandera
verde.
Pero puede ser que queramos repetir slo si pasa algo relacionado con nuestro programa. Es
decir, puede que la condicin para dejar de repetir dependa de lo que est pasando mientras
se ejecuta el programa, y por tanto no podamos saber, antes de ejecutar el programa cuntas
veces debe repetirse.
Veamos un ejemplo. El "repetir hasta que" tiene un agujero de contornos angulares en el
extremo derecho, por tanto, est esperando que introduzcamos una expresin lgica...

... S, s, pero... de qu estamos hablando?, expresiones lgicas?, agujeros de contornos


angulares?... cundo hemos visto esto? Pues todava no lo hemos visto. Precisamente por
ello habr que hacer un pequeo parntesis.

3.6 Expresiones
No todo lo que est categorizado son propiamente instrucciones. No hemos hecho esta
distincin hasta ahora para simplificar, pero ahora conviene entrar un poco ms en detalle.

En las categoras Operadores y Sensores. Encontrars unos bloques distintos a los vistos
hasta el momento.

25

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


Compara la instrucciones de la categora de movimiento "mover" y la de control "por
siempre, con las expresiones de los operadores "sumar y es menor a y las de los
sensores distancia a men y ratn presionado?

Expresiones

Las expresiones se caracterizan por devolver valores. De una expresin, se espera que calcule
o mida algo y devuelva el resultado. No son propiamente instrucciones, sino que deben
utilizarse en lugares muy determinados que imponen su utilizacin. Ten en cuenta que hay
expresiones-bloque con contornos redondos y expresiones-bloque con contornos angulares.
Las primeras, las de los contornos redondos, son expresiones numricas, es decir, deben
devolver un valor numrico. En cambio, las otras, de contornos angulares, son expresiones
lgicas1 con dos posibles valores: cierto o falso.

En la figura vemos la expresin de sumar dos nmeros, con un lugar a cada lado del + para
poner los nmeros, y la expresin distancia a men, que nos dice la distancia del personaje,
al que pertenece el programa del que la expresin forma parte, a otro personaje elegido del
pequeo men desplegable que vemos.

En cambio la comparacin entre dos nmeros < o la pregunta ratn presionado? se


respondern con valores cierto o falso.

Estas expresiones van a lugares especialmente preparados para colocar en l estos bloques.
Los bloques de contornos redondos pueden ir a agujeros con contornos redondos. Por
ejemplo, los parmetros de la instruccin mover estn preparados para poner una expresin
numrica, pero los mismos parmetros de las operaciones aritmticas (como el + que ya
hemos visto) tambin estn preparados para poner otras expresiones numricas. As
podemos componer las operaciones, por tanto, podemos componer expresiones

Para poder construir instrucciones ms sofisticadas

26

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


Para mover el personaje un nmero de pasos entre 21 y 25, elegido al azar2).
Igualmente, los agujeros con contornos angulares estn preparados para acomodar
expresiones lgicas, es decir, expresiones que tienen como posible respuesta slo dos valores:
'cierto' o 'falso'. Y tambin podemos componer operaciones de la misma manera que lo
hemos hecho con las expresiones numricas. Incluso podemos componer los dos tipos de
expresiones, si el bloque nos lo permite. Veamos algunos ejemplos:
Esta es una expresin lgica que nos dir si el doble de la raz cuadrada de 10 es menor que 7
sumado a un nmero al azar entre 1 y 10 (y el resultado, 'cierto' o 'falso', depender del
nmero al azar que salga, por supuesto!)

Esta expresin nos dir si tenemos el ratn pulsado y la tecla espacio pulsada.

Fijmonos en la operacin lgica y (conjuncin). De la misma manera disponemos en Scratch


de las operaciones de disyuncin (o) y negacin (no) 3.
As pues, resumiendo, los agujeros de contornos redondeados esperan que pongamos
expresiones numricas (que pueden ser tan sencillas como un solo nmero, o tan sofisticadas
como queramos) y los agujeros de contornos angulares esperan que pongamos una expresin
lgica (de valor 'cierto' o 'falso'). Tenemos varios bloques-expresin para construir
expresiones. Estn esencialmente en las categoras Operadores y Sensores.
1 Tambin conocidas como expresiones booleanas.
2 Como si tuviramos un dado con 5 caras, numeradas 21, 22, ..., 25
3 Recordemos que la conjuncin responde 'cierto' slo cuando sus argumentos son

ambos 'cierto' y la disyuncin responde 'falso' slo cuando sus argumentos son ambos
'falso'.

3.7 Estructura Interactiva (II)


Decamos que hay estructuras interactivas que repetirn las instrucciones que hay en su
interior en funcin de lo que ocurra mientras se ejecuta el programa. Ahora ya podemos intuir
que esto ocurrir en funcin del resultado de una expresin lgica. Esta es la razn que se
llamen repeticiones condicionales.
Veamos un ejemplo. Supongamos que queremos un programa que haga lo mismo que el
programa que estamos usando en esta prctica, es decir, que mueva el gatito 10 pasos, el gire
15 grados, malla y alterne vestidos, pero queremos que lo haga hasta que el usuario pulse la
tecla espacio.
Ahora ya sabemos cmo manipular los bloques para construir el programa, de modo que ya
no es necesario detallar tanto como antes. El programa que tendremos es:

27

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN

Ntese que para hacerlo ms divertido hemos decidido introducir algo de aleatoriedad en el
programa. Ahora, cada repeticin, se mover un nmero de pasos al azar entre 1 y 10 y girar
un ngulo entre -30 y 30 grados, tambin al azar. Ejecutadlo y asegrate de entender bien qu
est pasando.
Verdad que cuando llega a los bordes queda el gatito oculto? Lo podemos resolver pidiendo
a cada repeticin que rebote si toca un borde. Hay una instruccin que hace precisamente
eso:

Considera que las repeticiones indefinidas o de un determinado nmero de veces son


bastante fciles de entender, pero las repeticiones condicionales esconden sutilezas que slo
dejan de serlo con la prctica. Insiste en entender bien las repeticiones condicionales, con
variaciones de estas prcticas.

3.8 Estructura Condicional


Para finalizar este apartado, estudiaremos la ltima estructura bsica que nos queda por ver:
la estructura condicional. En este caso tenemos una estructura de control que sirve para
decidir si un cierto conjunto de instrucciones se ejecuta, o no, en funcin de una condicin (es
decir, de una expresin lgica).
Estas son las estructuras si____ entonces y si___ entonces. si no. Las encontrar
categorizadas en 'Control'.

28

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN

Si ya has entendido las repeticiones condicionales, estas no te deben costar nada. La idea es
que si la expresin lgica (fjate en los agujeros de contornos angulares) es cierto,
ejecutaremos las instrucciones dentro del si, si esta expresin es falso, no ejecutaremos
nada en el caso del si______ entonces , y las instrucciones dentro del si no en el caso del
si_____ entonces ... si no.
Supongamos ahora que queremos que el gatito empiece desde el origen de coordenadas y
que se mueva y gire al azar como hemos visto antes, pero queremos que malle slo cuando
pulsamos la tecla m. Para ello utilizaremos la estructura condicional si.

Es posible que, a veces pulses la tecla m y el gato malle ms de una vez. No te preocupe,
que eso ya es correcto. Lo que puede pasar es que mientras que t piensas que has tocado la
tecla una vez, Scratch ha tenido tiempo de leer la tecla varias veces y tomrselo como una
orden de pulsar la tecla varias veces.
Para poder ver ejemplos del si____ entonces... si no lo mejor que puedes hacer es pensar
en ti mismo. Hay un componente creativo muy importante en la programacin!
Hasta ahora hemos visto y jugado con programitas bastante simples, que lo nico que
pretendan era ilustrar los conceptos explicados.
En la prxima Unidad veremos cmo construir programas con cierto grado de sofisticacin... y de
diversin! Quizs cuesta de creer, pero con lo que ya sabes tienes ms que suficiente para hacer
programas muy interesantes. Pero antes de empezar la unidad 2 se recomienda realizar estos
ejercicios que se proponen, no dudes en acudir al tutor/tutora siempre que lo necesites.

29

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN


EJERCICIOS DE LA UNIDAD 1
Lo primero que debes hacer, si an no lo has hecho, es enviar a la tutora del curso tu nombre
de usuario y contrasea de Scratch. En la parte inferior de la ventana donde est ubicado este
ejercicio en la plataforma, hay una opcin que te permite hacerlo.
Te proponemos hacer, por lo menos, uno de estos cuatro ejercicios, pero es conveniente que
los hagas todos.
1. Crear una animacin donde un gato y una manzana giren sin parar. Puedes hacer todas las
modificaciones que quieras.
2. Crea una animacin donde una bola se desliza por una barra inclinada 5 veces:
o
o
o
o
o

Objeto 1: Escribir una palabra cualquiera.


Objeto 2: Dibujar una bola de color con
degradado o slido.
Objeto 3: Dibujar una barra rectangular
horizontal de color.
Objeto 4: Dibujar una barra inclinada.
Si haces esto, dentro del escenario debera
salir algo parecido a la figura:

3. Dibujar polgonos.
o Intenta hacer un programa que dibuje 3, 4, 5... polgonos regulares diferentes: un
tringulo, un cuadrado un pentgono... Los polgonos deben ser completamente
visibles en la pantalla.
o Ten en cuenta que las instrucciones "baja el lpiz" y "sube el lpiz" de la categora
"Lpiz" hacen que los objetos puedan dibujar en el escenario. Y recuerda que puedes
utilizar la pieza "repite ()" de la categora "Control" cuando hay que repetir un grupo
de instrucciones un nmero determinado de veces.
o Intntalo y si no te sale, en este link vers una forma sencilla de hacerlo. Puedes complicarlo
tanto como quieras. Tambin te dejamos este ejemplo de una forma compleja de hacerlo.

4. Encuentra el error
Quieres que un gato se site en medio del escenario, lo atraviese y se haga mayor. Con
esta estructura del programa que te presentamos, funciona slo la primera vez que se
pulsa la banderita verde, pero queremos que se repita. Dnde est el problema?

30

PROGRAMAR CON SCRATCH - UNIDAD 1: INTRODUCCIN