Codificación aprenderaprogramar.com: PN00534G
CREAR PATRONES EN DIDAC-PROG CARTESIA
¿Qué tal amigos? Soy Paula Muñoz, y en esta entrega continuamos con nuestro curso de programación para niños ¿Con ganas de programar? ¡Vamos allá! Ya conocemos prácticamente todo sobre Cartesia. Por ello vamos a introducirnos en la “programación avanzada”. Por tanto no es recomendado para primaria sino sólo para secundaria, aunque quien quiera atreverse puede hacerlo sea cual sea su edad. ¡A por ello!
Esta entrega la catalogamos como de programación avanzada. Por tanto no es recomendada para primaria sino sólo para secundaria.
Esta entrega está dirigida a mayores de 12 años. Si tienes menos edad, sáltala. |
CREANDO DIBUJOS ORIGINALES CON CARTESIA
Cartesia nos permite hacer dibujos de todo tipo. Vamos a ver un ejemplo. Abre la aplicación Didac-Prog Cartesia y escribe este código:
-- EJEMPLO PN00534G-A paso 1 Iniciar programa x nuevo valor es (-7) y nuevo valor es (-5) a nuevo valor es (0) b nuevo valor es (-5) Repetir (14) veces ejecutar bloque Comienzo bloque Dibujar línea desde (x,y) hasta (a,b) Dibujar línea desde (-x,y) hasta (a,b) x nuevo valor es (x+0.5) y nuevo valor es (y+0.5) Fin bloque Finalizar programa
|
Pulsamos ejecutar y ¿qué obtenemos? Es un dibujo que parece una mitad de estrella, o un erizo, algo curioso. ¿Cómo lo hemos conseguido? Vamos a explicarlo paso a paso.
En primer lugar se establecen como coordenadas de inicio de las líneas que vamos a dibujar x igual a -7 e e igual a -5. Como coordenadas de destino establecemos a igual a 0 y b igual a -5. Ahora se realizan una serie de repeticiones, en total 14, y en cada una se dibujan dos líneas. Las primeras dos van desde (-7,-5) hasta (0,-5) que es una línea horizontal en la parte izquierda. Luego se dibuja una línea igual pero en la parte derecha. Para ello lo único que hemos hecho es cambiar el signo de las coordenadas de inicio, que ahora son (7,-5). En la siguiente repetición cambiamos las coordenadas de inicio de modo que resultan un poco más arriba y más cerca del punto de destino. Esto se hace modificando los valores de x e y con las instrucciones x nuevo valor es (x+0.5) e y nuevo valor es (y+0.5). En cada repetición vamos colocando las coordenadas en un punto diferente, hasta que termina de dibujarse nuestro “erizo”.
¿Y si quisiéramos dibujar nuestro erizo alternando los colores disponibles para que cada línea se dibuje de un color distinto? Vamos a la pantalla de configuración y comprobamos que el rojo es el 1, el naranja el 2, el amarillo el 3, el verde el 4 y así hasta el 9 que es el negro. Vamos a usar una variable c cuyo valor inicial sea 1 que es el rojo. En cada repetición del bucle podemos sumarle 1 a c, de modo que inicialmente valga 1, luego 2, luego 3. El código quedaría así:
-- EJEMPLO PN00534G-A paso 2 Iniciar programa x nuevo valor es (-7) y nuevo valor es (-5) a nuevo valor es (0) b nuevo valor es (-5) c nuevo valor es (1) Repetir (14) veces ejecutar bloque Comienzo bloque Nuevo color lápiz (c) Dibujar línea desde (x,y) hasta (a,b) Dibujar línea desde (-x,y) hasta (a,b) x nuevo valor es (x+0.5) y nuevo valor es (y+0.5) c nuevo valor es (c+1) Fin bloque Finalizar programa
|
Pulsamos ejecutar y vemos que la primera línea se ha dibujado de color rojo, la segunda naranja y así hasta la novena negro. Pero no se ha dibujado nada más. ¿Por qué? Consultando el panel de mensajes vemos el siguiente mensaje: << ERROR: revise su código. Referencia: color invocado 10; los colores sólo admiten valores enteros entre 1 y 9. Valor no válido. >>
¿Qué ocurre entonces? Lo que ocurre es que en la primera repetición c vale 1 rojo, en la segunda vale 2 naranja, en la tercera 3 amarillo, y así hasta la décima repetición en que vale 10 que no es un color válido. Por eso la ejecución se ha detenido y se muestra un error en el panel de mensajes.
¿Qué nos hace falta? Que después de que c valga 10 vuelva a empezar con c igual a 1 de nuevo. Esto podemos hacerlo con un condicional donde digamos que si c ha llegado a 10, se vuelva a hacer valer 1 para empezar de nuevo. El programa quedaría así:
-- EJEMPLO PN00534G-A paso 3 Iniciar programa x nuevo valor es (-7) y nuevo valor es (-5) a nuevo valor es (0) b nuevo valor es (-5) c nuevo valor es (1) Repetir (14) veces ejecutar bloque Comienzo bloque Nuevo color lápiz (c) Dibujar línea desde (x,y) hasta (a,b) Dibujar línea desde (-x,y) hasta (a,b) x nuevo valor es (x+0.5) y nuevo valor es (y+0.5) c nuevo valor es (c+1) Si verdadero (c==10) ejecutar bloque Comienzo bloque c nuevo valor es (1) Fin bloque Fin bloque Finalizar programa
|
Pulsamos ejecutar y ya tenemos nuestro erizo dibujado con los colores deseados.
Como hemos logrado repetir los colores del 1 al 9 una y otra vez se dice que hemos formado un patrón de colores. Un patrón es algo que se repite. En este caso: rojo, naranja, amarillo, verde… y cuando se termina se repite otra vez: rojo, naranja, amarillo, verde… En este caso tenemos un patrón de 9 colores.
EJERCICIO
Crear un programa para dibujar aproximadamente lo que se muestra en la siguiente imagen.
Te voy a dar algunas pistas.
Pista uno: fíjate que hay dos líneas que se repiten, una a la izquierda que va hacia arriba y otra hacia abajo a la derecha. Por tanto usa dos líneas en cada repetición. Las líneas tienen grosor máximo.
Pista dos: fíjate que los colores que se repiten son 1 rojo, dos naranja, tres amarillo. Por tanto tienes que buscar que se repita 1-2-3, 1-2-3, 1-2-3... Para esto puedes usar un condicional.
Pista 3: para poder cambiar las líneas de sitio tienes que usar variables. Y para poder cambiar los colores también necesitas una variable. En cada repetición tendrás que modificar lo necesario.
Pista 4: si te fijas la posición en horizontal después de dibujar las dos líneas no varía, sólo tienes que ir modificando la posición en vertical.
Pista 5: si te fijas el punto de origen de la primera línea, mirando los ejes de coordenadas, es el (-7, -5). Si vas mirando puedes ver el punto final de la línea. Y también así puedes establecer el punto final de la siguiente línea.
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.