1er paso: dibujar un cuadrado (parte VI)

Ya estamos en los últimos tramos de este 1er paso, pero te prometí un ánalisis del algoritmo/programa… allí vamos.

Estructuras de Control

(" Que vueltero es este tipo, ¡veamos lo del lapicito y a otra cosa…!") . Recuerda que conozco tus pensamientos como la palma de mi mano, amig@, y recuerda también que "el saber no ocupa lugar" (¡qué frase antigua!).
El análisis del programa nos va dejar introducir livianamente un concepto importante que está en la base misma del desarrollo de algoritmos: las estructuras de control.
Un Algoritmo está compuesto por instrucciones de diferentes tipos, organizadas secuencialmente, en forma de estructuras de control. De estas estructuras, las más comunes son las siguientes:
  • Secuencial
  • Iterativa (repetición)
  • Condicional (decisión, selección)
NOTA: Un famoso teorema de los años sesenta, formulado por Edsger Wybe Dijkstra, demostraba que se puede escribir cualquier programa utilizando únicamente las tres estructuras de control mencionadas.

A mirar nuestra secuencia

Sin desmerecer lo hasta aquí logrado, es momento de decir que sólo hicimos uso de una estructura secuencial de control, donde la mayor "dificultad" está en determinar el orden lógico temporal en que deben ejecutarse las instrucciones.
algoritmo simple
La estructura secuencial (o lineal) es la más sencilla de aplicar de las tres antes mencionadas, y sólo los problemas más simples pueden resolverse haciendo uso únicamente de esta estructura (y nuestro problema lo es).
Normalmente esta estructura forma parte de soluciones donde aparece mezclada —o trabajando en conjunto— con estructuras iterativas y condicionales, por lo que en realidad su uso es muy frecuente.

En la página previa había cerrado con una pregunta: ¿no ves cosas que se repiten?. Puedo ahora agregar pregunta otra igual de interesante: ¿cómo sería un algoritmo de estructura únicamente secuencial para un polígono de 20 lados (icoságono para los amigos)? ¿y para uno de 100 lados?

Pensalo, pero creo que vas a coincidir conmigo en que su escritura sería una pesadilla, a menos que…

A menos que…

A menos que alguna otra estructura de control venga en nuestro auxilio.
Como —seguramente— ya te habrás percatado al mirar el programa, en la última parte del mismo existen 3 instrucciones [mover|girar|esperar] que se repiten 4 veces (¡por suerte nos tocó un cuadrado!).
Entonces no es casual que a alguien se pueda haber ocurrido que a la hora de escribir un algoritmo fuese conveniente (y clarificador) contar con una sentencia repetir [n] veces,  ni tampoco es casual que en TODOS los lenguajes de programación exista una instrucción para hacer esto: ITERAR (a buscar el diccionario ya).
El cambio que vamos a hacer en nuestro algoritmo, pues, vendrá de la mano del uso de una nueva estructura de control: una perteneciente al grupo de las estructuras iterativas

Ando iterando

En realidad ya habíamos usado este tipo de estructura en el tutorial anterior, aunque no ahondamos demasiado sobre el tópico. Mencionamos sí lo útil que era el uso de bucles o loops de repetición en los programas, y de como estos bloques serían de gran auxilio en nuestros proyectos.
A la derecha ya tenés una imagen de como debería quedar nuestro programa con la introducción de la estructura iterativa: el bloquecito amarillo lo debés buscar, of course, dentro del grupo de los bloques de Control de Scratch. Recordá cambiar el repetir (10) por repetir (4) (aunque con cualquier número por arriba de 4 lo que va a pasar es que Pier se pondrá a sobreescribir sobre el cuadrado ya dibujado).
algoritmo iterado
En el caso de un cuadrado el cambio no parece ser gran cosa, pero ¿si el polígono regular tuviese muchos más lados? Relax, que más adelante en este mismo tutorial ya veremos cuán útil nos será…
Y antes de seguir leyendo ¡acordate de guardar los cambios en el proyecto!

Un poco más sobre estructuras iterativas

Vamos a aprovechar —antes de dar un cierre a este 1er paso del tutorial— para ampliar algo más sobre las estructuras iterativas.

NOTA

Un tercer gran grupo de estructuras de control es el de las estructuras de tipo condicional, que posibilitan bifurcar bajo determinadas condiciones el hilo o flujo de ejecución de las instrucciones que componen un programa.
Recién utilizaremos estas estructuras en el 3er paso de este Tutorial, por lo que esperaremos ese momento para hablar sobre las mismas.
Estas estructuras permiten ejecutar una o varias instrucciones un número determinado de veces (como en nuestro caso), o indefinidamente mientras se cumpla una condición.
NOTA: También en Scratch contamos con el bloque por siempre que nos dá la posibilidad de contar con un bucle infinito —ya lo usamos en nuestra animación del Tutorial 1—.
A partir del uso de las estructuras iterativas se consiguen simplificar los algoritmos y se facilita su posterior modificación, pero estas también posibilitan tener una mirada más clara sobre lo que se está resolviendo.

¿Qué nos falta?

Todavía no cumplimos totalmente con la meta que habíamos impuesto en su momento, pero podemos considerar lo que falta como detalles de afinación del programa.
Nos vamos a concentrar en tres puntos: tamaño del lápiz, cambio de colores al dibujar el cuadrado y —aunque no formase parte de los requisitos iniciales— el cambio en el tamaño de Pier (si hasta se sale de cuadro… un pecado para tan buen actor).
Pero dejaremos estos ítems para la última página de este 1er paso. Una pausa y ya volvemos…
Última actualización: Febrero 23, 2014

No hay comentarios.:

Publicar un comentario

© Scratch CodeLab | D153ñ0 b454d0 3n l4 pl4n71ll4 SimpleRWD d3 Oloblogger