Codificación aprenderaprogramar.com: PN00527G
A VUELTAS CON LOS BUCLES O CICLOS EN PROGRAMACIÓN
¡Hola chicos! Soy Paula Muñoz, y aquí seguimos con nuestro curso de programación para jóvenes, niños o adolescentes. En la anterior entrega del curso vimos cómo podíamos usar variables y el comando Repetir para dibujar por ejemplo 25 triángulos. En esta entrega vamos a conocer más sobre la instrucción Repetir.
En la anterior entrega del curso preparamos un programa para dibujar 25 triángulos y obtuvimos un resultado parecido a esto:
Y nos quedó una pregunta pendiente de responder. ¿Por qué si hemos creado un programa para dibujar 25 triángulos no vemos 25 triángulos? Siempre que un resultado no sea el que esperas puedes:
- Revisar el código para ver si te has equivocado en algo.
- Revisar el panel de mensajes a ver si hay algún mensaje de error o aviso.
En este caso en el panel de mensajes encontraremos un mensaje como: “Programa ejecutado correctamente. Aviso: has usado coordenadas fuera del área visible. El dibujo o parte del dibujo puede estar fuera del área visible.”
Realmente sí se han dibujado los 25 triángulos, lo que pasa es que algunos de ellos están fuera del área visible del panel de dibujo y no los vemos.
Prueba a escribir el mismo programa pero haciendo que los valores de y, b y c se incrementen también 3 unidades en cada repetición. Para ello tendrás que añadir tres líneas con “y nuevo valor es (y+3)”, “b nuevo valor es (b+3)”, “d nuevo valor es (d+3)”. Con esto haremos que el triángulo se vaya dibujando no sólo hacia la derecha sino también hacia arriba. Si en lugar de (y+3), (b+3) y (d+3) escribimos (y-3), (b-3) y (d-3) lograremos que el triángulo se vaya dibujando hacia abajo.
Haz pruebas modificando el desplazamiento horizontal y vertical dándole distintos valores y comprueba los resultados. Comprobarás que si estableces separaciones muy grandes (por ejemplo 40 unidades) sólo verás un triángulo porque el resto queda muy alejado. Si estableces separaciones muy pequeñas (por ejemplo 0.5 unidades) verás como los triángulos se dibujan superponiéndose: no hay separación suficiente como para poder ver cada triángulo con claridad.
No hay límite en el número de repeticiones que puedes establecer. Además, para aquellos que se atrevan, Cartesia permite hacer “repeticiones de repeticiones”. Por ejemplo, repetir diez veces dibujar 25 triángulos en horizontal, modificando en cada vez la posición vertical, de modo que podemos llenar el panel de triángulos o de cualquier dibujo que se nos ocurra.
Otra posibilidad interesante de las repeticiones es que podemos cambiar los colores en cada repetición usando el comando Nuevo color lápiz.
Haz todas las pruebas que se te ocurran. Si en un momento dado quieres volver a empezar de cero, pulsa el botón “Limpiar todo”.
EJERCICIO RESUELTO A MODO DE EJEMPLO
Para conocer posibilidades del comando Repetir, vamos a resolver un ejercicio a modo de ejemplo.
Ejercicio a resolver
Dibujar 9 líneas con lápiz grueso utilizando una sola instrucción dibujar línea, un bucle y las variables que sean necesarias. Cada línea debe tener un color diferente, de modo que se usen los nueve colores permitidos por Didac-Prog Cartesia (rojo, naranja, amarillo, verde, azul, añil, violeta, marrón y negro). Todas las líneas deben partir de un mismo punto, pero terminar en un punto distinto.
Solución
Vamos a ver un modo de resolver este problema, aunque tú puedes resolverlo de otra manera si quieres. Esto es sólo una forma posible para ver cómo podría hacerse, pero si tú lo haces de otra manera también estará bien siempre que cumplas con lo que pide el ejercicio.
Como primer paso vamos a crear un programa que establezca el lápiz con grosor máximo (recuerda que 1 es fino, 2 es medio y 3 es grueso) y vamos a definir con variables el punto de origen y el punto de destino para la primera línea, y vamos a dibujar esta primera línea usando variables:
-- EJERCICIO RESUELTO PN00527G paso 1 Iniciar programa Nuevo grosor lápiz (3) x nuevo valor es (-6) y nuevo valor es (-3) a nuevo valor es (6) b nuevo valor es (-9) Dibujar línea desde (x,y) hasta (a,b) Finalizar programa
|
Siempre que quieras repetir algo debes usar variables, porque es lo que te va a permitir ir cambiando en cada repetición. Si no cambias nada, al repetir siempre se dibujaría lo mismo.
Al ejecutar obtenemos esto:
Bien, con esto ya tenemos dibujada la primera línea. Ahora tenemos que conseguir que se dibujen 9 líneas que terminen en 9 puntos distintos usando un bucle (instrucción repetir). Para ello, modificamos el programa anterior introduciendo una instrucción repetir que haga 9 repeticiones y en cada repetición vamos a modificar las coordenadas finales de la línea. La línea va desde (x, y) hasta (a, b). La coordenada final es (a, b). Podría modificar sólo a, sólo b, o tanto a como b. Yo voy a optar por modificar sólo b sumándole 2 unidades en cada repetición del bucle. Así en la primera ocasión la línea irá de (3, -6) hasta (6, -9). En la segunda repetición de (3, -6) hasta (6, -7). En la tercera de (3, -6) hasta (6, -5) y así hasta completar las nueve líneas.
¿Qué tengo que meter dentro de la sentencia repetir? Pues la instrucción para dibujar una línea (ya que queremos que se repita 9 veces) como las instrucciones para cambiar el valor de las variables para que en la siguiente repetición la línea termine en donde nosotros queramos. El código queda así:
-- EJERCICIO RESUELTO PN00527G paso 2 Iniciar programa Nuevo grosor lápiz (3) x nuevo valor es (-6) y nuevo valor es (-3) a nuevo valor es (6) b nuevo valor es (-9) Repetir (9) veces ejecutar bloque Comienzo bloque Dibujar línea desde (x,y) hasta (a,b) b nuevo valor es (b+2) --Preparamos repetición Fin bloque Finalizar programa
|
Al ejecutar obtenemos esto:
Donde ya tenemos las 9 líneas que comienzan en un mismo punto y terminan en puntos diferentes. Ahora nos falta hacer que cada línea tenga un color diferente. ¿Cómo lo hacemos? Siempre que tengamos que ir cambiando algo usaremos variables. Por tanto vamos a usar una variable c. Para que la variable c vaya tomando los valores 1, 2, 3, 4, 5, 6, 7, 8, 9 la estableceremos a cero antes de entrar en el bucel con la instrucción c nuevo valor es (0)
Una vez entremos en el bucle, estableceremos el primer valor, el 1, haciendo c nuevo valor es (c+1) y seguidamente estableceremos el color de dibujo como el 1, que es rojo, usando Nuevo color lápiz (c)
Cuando el bucle se repita, al hacer c+1 el valor de c pasará a ser 2 que es el color naranja y el lápiz cambiará a naranja.
Cuando el bucle se repita, al hacer c+1 el valor de c pasará a ser 3 que es el color amarillo y el lápiz cambiará a amarillo.
En las siguientes repeticiones c irá cambiando a 4 verde, 5 azul, 6 añil, 7 violeta, 8 marrón y 9 negro.
El código queda de esta manera:
-- EJERCICIO RESUELTO PN00527G paso 3 Iniciar programa Nuevo grosor lápiz (3) x nuevo valor es (-6) y nuevo valor es (-3) a nuevo valor es (6) b nuevo valor es (-9) c nuevo valor es (0) Repetir (9) veces ejecutar bloque Comienzo bloque c nuevo valor es (c+1) Nuevo color lápiz (c) Dibujar línea desde (x,y) hasta (a,b) b nuevo valor es (b+2) Fin bloque Finalizar programa
|
Al ejecutar obtenemos esto:
Con lo cual ya hemos resuelto el ejercicio. Recuerda que este ejercicio se puede resolver de diferentes maneras, no tiene por qué resolverse como lo hemos hecho aquí.
La repetición es muy importante en programación, por eso es importante que la entiendas bien y que practiques haciendo programas por tu cuenta. Si te quedan dudas, consulta en los foros de aprenderaprogramar.com
RESUMEN
A modo de resumen, hemos aprendido a utilizar un nuevo comando: el comando Repetir. Para usar este comando definimos variables antes de entrar en el proceso de repetición al que llamamos ciclo o bucle. Dentro del bucle, ejecutamos las instrucciones que queramos usando esas variables, y antes de la siguiente repetición, modificamos las variables para preparar la siguiente ejecución. De este modo podemos repetir instrucciones decenas, cientos o miles de veces creando dibujos que sería imposible crear escribiendo línea a línea todo lo que hay que dibujar. ¡Nos vemos en la próxima entrega!
EJERCICIO
Crea un primer programa donde definas como valor de variables los siguientes: la variable x debe tener valor 2 y la variable y debe tener valor -8. Dibuja un cuadrado con grosor de lápiz medio situando una esquina del cuadrado en las coordenadas (x, y). El cuadrado debe tener un lado de longitud 1 unidad.
Pista: puedes empezar con Dibujar línea desde (x,y) hasta (x+1,y) y así continuar dibujando más líneas hasta completar este cuadrado inicial.
Ahora crea un segundo programa donde a partir del anterior, dibujes 10 cuadrados, incrementando la posición vertical del cuadrado en 2 unidades en cada repetición.
Ten en cuenta que este ejercicio se puede resolver de varias maneras. El resultado que obtengas debe ser parecido a esto:
Podría ocurrir que alguno de los cuadrados quede cortado o que no se muestre si no cabe. No te preocupes por esto.
Puedes comprobar si tus respuestas son correctas consultando en los foros aprenderaprogramar.com.
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.