1. b. Disminución entera de una longitud inicial
Este ejemplo lo presentamos para abordar la única dificultad de programación con DGPad: el uso de un bucle mientras que. En efecto, como todo es en tiempo real, para realizar ese bucle primero es necesario desactivarlo, algo que no aconsejamos hacer ne clase. Por el contrario, podemos dar ese programa con parámetros numéricos (con una forma inicial hexagonal por ejemplo). Los alumnos solo tienen que hacer modificaciones, pero no construir la estructura.


De manera general, cuando se comienza la programación con el Blockly de DGPad debe evitarse en un primer momento este bucle mientras que, porque no está diseñado para llenarlo en tiempo real (por eso es necesario desactivarlo para construirlo, ver detalles en la página 154): el tiempo real nos hace descubrir cosas sorprendentes.
Antes de presentar eta figura para su manipulación, primero veamos un error encontrado en un curso de formación, mientras buscábamos una solución para evitar el mientras que. El error es interesante porque fue hecho por un programador experto en lenguajes complejos y plantea una pregunta sobre la manera como se interpreta el JavaScript.
Un primer intento fue partir de este código, a priori correcto.


Pero aun cuando debería haber 50 iteraciones, (100/2), solo hay 25 segmentos.
La razón es simple: como la longitud está modificada en el bucle, el número de iteraciones se recalcula al pasar al siguiente en el bucle, por el hecho de que JavaScript es interpretado.
Una solución simple consiste en añadir una variable y por lo tanto meter en el bucle repetir una constante.


Se escogió una versión numérica, pero si se utiliza una variable de la figura (un cursor) no se plantearía la pregunta.