Clase 2_Taller Programar me gusta.doc

1
Clase 2: “Sin repetir y sin Soplar”
Estructuras de control: Repetición
Lápiz que dibuja “mágicamente”
Objeto: Lápiz
La propuesta es dibujar diferentes formas geométricas utilizando el lápiz (el objeto puede
ser el que se desee) Para simular que es la punta del lápiz la que dibuja corremos el centro a la
punta del mismo
Algunas instrucciones que atañen al lápiz:
2
3
La primer figura que vamos a dibujar es un CUADRADO por lo que precisamos una
instrucción para BAJAR lápiz
Pensamos para dibujarlo en su forma analizando lados y ángulos.
Recordamos que el ángulo debe ser de 90° y los cuatro lados deben ser iguales.
Repasamos los bloques de instrucciones para ver cuales podemos utilizar.
Utilizamos el bloque GIRAR al que modificamos cambiando el valor a 90 y arbitrariamente
modificamos el bloque MOVER a 40 pasos
4
1-¿Qué sucede cuando modificamos los pasos, en que varía el cuadrado que realizamos?
Al presionar el control obtendríamos
Un trazo por lo que para lograr dibujarlo
completo tendría que presionar 4 veces la
banderita verde (que en este ejemplo es quien ejecuta las instrucciones)
¿Cómo podríamos hacer para que de una sola vez presionando el control la forma se dibuje?
Haciendo clic con el botón derecho del mouse
aparece el menú contextual que permite duplicar las instrucciones
5
Ya tenemos dibujado el CUADRADO y vemos que para
lograrlo utilizamos 8 (ocho) instrucciones de movimiento.
Cuando la máquina repite 8 veces la misma instrucción
pierde eficacia. En un videojuego notaríamos que el personaje se movería muy lentamente
¿Cómo podemos OPTIMIZARLO?
Para ello hay otros bloques de instrucciones de
CONTROL
Las opciones que nos proporciona el programa son muy variadas.
En este caso vamos a utilizar la instrucción de
REPETIR
Modificamos el valor a 4 porque dijimos que un CUADRADO tiene
4 (Cuatro) lados.
6
De esta forma estamos “ahorrando” en instrucciones.
¿VAMOS POR MÁS?
Agregamos la instrucción BORRAR para que al inicio el
escenario esté limpio.
Ya tenemos dibujado el CUADRADO!!!
Y si quisiera dibujar un TRIÁNGULO ¿cómo haríamos?
Ya sabemos que tenemos 3 (TRES) lados. Dependerá del tipo de triángulo que queramos
trazar.
Por ejemplo si es un triangulo equilátero los tres lados son iguales ¿entonces?
Podríamos pensarlo de la siguiente manera
7
Si quisiéramos que ambas figuras se ejecuten en simultáneo a partir de un mismo control
¿Cómo hacer para que el lápiz se desplace y
escenario?
dibuje cada figura en un sitio diferente del
Agregamos dos instrucciones para garantizar que cuando se ejecute el lápiz esté en una posición
que determino yo.
Agregamos una instrucción para que se desplace (puede variar de acuerdo a la lógica da cada uno)
8
Cuando el lápiz se traslada en su desplazamiento
dibuja una línea ¿Cómo podríamos mejorarlo?
9
Ahora logramos que se desplace, pero….. NO DIBUJA el triángulo!!
Al colocar la instrucción de bajar lápiz después
del desplazamiento permite lograr que es lápiz
las figuras dibuje desplazándose por el escenario
De esta forma podemos construir numerosas
figuras geométricas en diferentes sitios del
escenario.
10
Podemos ir agregando instrucciones para que dibuje con colores diferentes para que la figura se
presente y diga que es, etc Todo dependerá de nuestra creatividad para ir pensando de que forma
lo podemos enriquecer
En el ejemplos prácticos hemos elaborado varias secuencias de instrucciones con una estructura
iterativa. ¿Podrías identificar en cuáles?
Las estructuras de control repetitivas permiten ejecutar una o varias instrucciones, un número
determinado de veces o, indefinidamente, mientras se cumpla una condición. Esta estructura
repetitiva permite a ahorrar tiempo y espacio en los programas de Scratch, facilitando el
perfeccionamiento y la optimización de la programación.
11
En la programación estructurada en general y en el entorno de programación de Scratch en
particular existen diferentes tipos de bloques que responden a este tipo de estructura iterativa o
ciclos, un ciclo puede causar la ejecución de múltiples instrucciones. En Scratchlos comandos con
los cuales se implementa la estructura iterativa son los bloque cuya etiqueta comienza con por
siempreorepetir.
Una de las instrucciones es:
Estaestructura de programación nos permite, por ejemplo, dar instrucciones a
un objeto, pongamos un pajarito, para que indefinidamente diga “Pío pío”
durante un segundo, con intervalos de un segundo. ¿Cómo lo programarías?
La siguiente instrucción permite hacer el ciclo un número determinado de veces, el cual podemos
asignar en la instrucción:
Y otra instrucción nos permite la repetición de una secuencia de instrucciones hasta que una
condición sea verdadera:
En algunas ocasiones, necesitamos ejecutar una instrucción muchas
veces, y cada una de estas repeticiones ir variando ligeramente su comportamiento utilizando
variables,el tema conceptual que abordaremos en la clase 3.
Jeremy Kubica1 nos relata bellas historias y relatos sobre conceptos de las ciencias de la
computación. Entre estas historias rescatamos ésta sobre los ciclos repetir y los mareos:
Las estructuras de control iteractivas son construcciones computacionales para repetir un conjunto
de instrucciones. Durante cada iteración del ciclo, el programa, comprueba si la condición es
verdadera y, en caso afirmativo, ejecuta el bloque de código dentro del ciclo. Dos elementos
principales definen un ciclo: Qué hacemos dentro del ciclo y las condiciones que hacen que se
finalice la repetición.
Cuando yo era un niño, hemos jugado un gran juego llamado “Dando vueltas”..Este juego está
basado en la construcción computacional de un ciclo de repetición. De hecho, la leyenda cuenta
que este juego fue inventado por algunos de los primeros pensadores computacionales. ;-)
Las reglas para el juego fueron:
Repetir mientras que no esté mareado
{
Dar vueltas rápidamente
}
1
Computational Fairy Tales - Computer science concepts as told through fairy tales. By Jeremy Kubica.
Disponibles en el blog http://computationaltales.blogspot.com.ar/. La traducción y adaptación es nuestra.
12
abandonar o dejarse caer (o ambos)
Siempre gané. O, tal vez siempre perdí. ¿Alguien alguna vez realmente pudo ganar ese juego?
Los invitamos a reflexionar sobre los tipos de problemas computacionales que requieren utilizar la
estructura iterativa en la solución.
Cuanto menor es el valor del efecto más
lento se realizara el cambio, a mayor número
más velocidad.
Valor numérico MENOR , más lento se ejecuta el efecto
Valor numérico MAYOR, mayor es la velocidad en que se ejecuta el
efecto.
13
Desafío:
Mandalas con sonido
¿Qué son? Según la Wikipedia:
“Los mándalas (o mandalas) son representaciones simbólicas espirituales y rituales
del macrocosmos y el microcosmos, utilizadas en el budismo y el hinduismo. Mándala es un
término de origen sánscrito.”
Consiste básicamente en una forma circular con formas geométricas concéntricas, organizadas en
diversos niveles visuales. Las formas básicas más utilizadas son círculos, triángulos, cuadrados y
rectángulos y pueden ser creadas en forma bi o tridimensional.
Te animamos entonces a crear una: Cómo ejemplo:
En nuestro ejemplo notarás que hay tres mandalas diferentes
14
Primer mandala:
El sonido que se ejecuta fue modificado y dura
menos tiempo.
Verás que fijamos el tamaño del lápiz a -10. Eso sucede porque después de la segunda mandala
aumentamos el tamaño del lápiz. De no reiniciar el lápiz , cada vez que se ejecute el lápiz tomará
un grosor mayor y dibujará una figura sólida,
15
Segunda Mandala:
En estas instrucciones modificamos el evento. Se
ejecuta presionando tecla arriba, agregamos una para
que cambie el disfraz, elegimos otro sonido que se
ejecutará antes de trazar la mandala . al final
cambiará el grosor del lápiz
Tercera Mandala:
Se ejecutará pal presionar la tecla de flecha abajo. Como en
la anterior cambió el grosor “cambiar el tamaño de lápiz
por 5”, la figura tendrá líneas más gruesas.
16
Cada mandala posee su propio sonido y un control diferente. Se podría
utilizar una sola instrucción de control para que ejecute todas las mandalas.
Las opciones son infinitas.
Por último dimos una instrucción al escenario para que cambie el color de
forma intermitente.
Autoras: Marisa Conde y Nancy Morales
Para citar el texto usar el siguiente formato:
Conde, Marisa y Morales, Nancy (2015). “#PROGRAMAR ME GUSTA!”. Taller de iniciación a la programación
para docentes. Buenos Aires
http://espacio.fundaciontelefonica.com.ar/2015/01/06/taller-programar-me-gusta/
Esta obra está licenciada bajo la Licencia Creative Commons
Atribución-NoComercial-CompartirIgual 4.0 Internacional.