Codificación aprenderaprogramar.com: PN00542G
CREAR PATRONES CON DIDAC-PROG CARTESIA
¡Hola de nuevo! Soy Paula y estoy encantada de acompañaros en este tutorial de programación informática. En capítulos anteriores hemos visto que podemos dibujar varias circunferencias usando bucles, lo cual es mucho más fácil que repetir código. Ahora nos preguntamos ¿cómo podemos crear patrones o secuencias de colores? Tenemos que buscar una solución que nos permita que en cada repetición se use el color que deseemos.
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. |
ALTERNAR COLORES
Vamos a partir del código que vimos anteriormente donde dibujábamos 10 circunferencias con un programa donde hacíamos uso de un bucle o repetición.
¿Cómo podemos hacer para que los colores de las circunferencias vayan cambiando? Tenemos 10 repeticiones que nos dibujan 10 círculos. Supongamos que queremos que los colores se vayan repitiendo usando naranja, verde, añil y marrón que son los colores 2, 4, 6 y 8 según la codificación de colores de Didac-Prog Cartesia (esto siempre puedes mirarlo en la vista de configuración si no lo recuerdas).
En nuestro código usaremos una variable a la que llamaremos c para representar el color. Inicialmente valdrá 2 y en cada repetición le sumaremos 2, de modo que pasará de 2 a 4, de 4 a 6, de 6 a 8…
-- EJEMPLO EJERCICIO RESUELTO PN00542G-1 DIBUJAR CÍRCULOS paso 1. Iniciar programa c nuevo valor es (2) Nuevo grosor lápiz (2) a nuevo valor es (0.25) e nuevo valor es (1) x nuevo valor es (-e) Repetir (10) veces ejecutar bloque Comienzo bloque -- Código para dibujar una circunferencia. Repetir ((e+e)*(1/a)) veces ejecutar bloque Comienzo bloque Nuevo color lápiz (c) Dibujar línea desde (x,sqr(e*e-x*x)) hasta (x+a, sqr(e*e-(x+a)*(x+a))) Dibujar línea desde (x,-sqr(e*e-x*x)) hasta (x+a, -sqr(e*e-(x+a)*(x+a))) x nuevo valor es (x+a) Fin bloque -- Fin del código para dibujar una circunferencia -- Modificación de variables para siguiente repetición e nuevo valor es (e+1) x nuevo valor es (-e) c nuevo valor es (c+2) Fin bloque Finalizar programa
|
Si ejecutamos este programa se dibujan 4 círculos de color naranja, verde, añil y marrón. ¿Por qué sólo 4 circunferencias? Porque después del color 8, al sumarle 2, el siguiente color que se tomaría sería el 10, pero 10 no es un color válido y se produce un error, lo que hace que se detenga la ejecución del programa. Cuando esto ocurre, en el panel de mensajes se muestra un mensaje de aviso como este:
ERROR: revise su código. Referencia: color invocado 10; los colores sólo admiten valores enteros entre 1 y 9. Valor no válido. |
Tenemos que hacer que una vez el valor de la variable c que representa el color llegue a 8, en la siguiente repetición vuelva a empezar por 2. Esto se puede hacer de distintas maneras:
a) Introduciendo un condicional de modo que si c vale 10 cambiemos el valor a 2 nuevamente. Para esto después de actualizar el valor del color haríamos la comprobación:
c nuevo valor es (c+2) Si verdadero (c==10) ejecutar bloque Comienzo bloque c nuevo valor es (2) Fin bloque |
b) Usando el operador módulo que devuelve el resto de una división. Si partimos de color 2 y en cada repetición le sumamos 2 tendríamos 4, 6, 8, 10, 12, 14… para evitar pasar de 8 en cada repetición le daremos valor de color c%8+2 que partiendo de 2 genera 4, 6, 8, 2, 4, 6, 8, 2, 4, 6, 8…
c nuevo valor es (c%8+2) |
De una forma u otra el resultado al que llegaremos será algo como esto:
EJERCICIO
Crear un programa en Didac-Prog Cartesia que cumpla lo siguiente:
a) Se deben dibujar 20 círculos usando un solo bucle y partiendo del círculo de radio 1 e incrementando en cada ocasión el radio en 0.5 unidades (recuerda que 0.5 es lo mismo que 1/2).
b) Se deben alternar los colores rojo, azul y negro, rojo, azul, negro, …
El resultado a obtener será similar al que muestra la siguiente imagen:
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.