Codificación aprenderaprogramar.com: PN00539G
PENSANDO CÓMO DIBUJAR VARIAS CIRCUNFERENCIAS
¡Hola amigos! Continuamos con nuestro curso de programación para jóvenes y adolescentes. En la anterior entrega creamos un código basado en el uso de variables que nos permitía dibujar una circunferencia de cualquier diámetro. ¿Cómo podemos hacer para crear un programa que dibuje 10, 20, 50, 500 ó 5000 círculos? ¿Es posible?
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. |
EL CÓDIGO DE PARTIDA
Nuestro código de partida es el que definimos en una entrega anterior para dibujar una circunferencia usando variables y es este:
- EJEMPLO EJERCICIO RESUELTO PN00538G-1 DIBUJAR CÍRCULO paso 1 Iniciar programa Nuevo color lápiz (1) Nuevo grosor lápiz (2) e nuevo valor es (4) x nuevo valor es (-e) a nuevo valor es (1/2)
Repetir ((e+e)*(1/a)) veces ejecutar bloque Comienzo bloque 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 Finalizar programa
|
Este código al ejecutarlo en Didac-Prog Cartesia dibuja una circunferencia.
DIBUJAR VARIAS CIRCUNFERENCIAS
Podemos dibujar 2, 3, 4, 5, 10, 15, 20, 50, 500 ó 5000 circunferencias. Una forma de dibujar varias circunferencias es repetir el código que sea necesario modificando aquello que queramos modificar. Por ejemplo podemos dibujar 3 circunferencias usando 3 veces la misma idea que hemos usado para dibujar una circunferencia, basada en una instrucción repetir que va dibujando trocitos de circunferencia hasta completar el dibujo. Antes de cada grupo de instrucciones para el dibujado de una circunferencia tendremos que indicar cúal es el valor del radio e, y cúal es el valor innicial para la x que será (-e) porque una circunferencia partirá del valor x igual a menos el radio (-e) y llegará hasta el valor del radio (e). Este programa es un ejemplo de cómo dibujar 3 circunferencias a base de repetir la misma idea 3 veces:
-- EJEMPLO EJERCICIO RESUELTO PN00539G-0 DIBUJAR CÍRCULOS paso 0 Iniciar programa Nuevo color lápiz (1) Nuevo grosor lápiz (2) e nuevo valor es (4) x nuevo valor es (-e) a nuevo valor es (1/4)
--Dibujar primer círculo Repetir ((e+e)*(1/a)) veces ejecutar bloque Comienzo bloque 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
-- Dibujar segundo círculo Nuevo color lápiz (4) e nuevo valor es (3) x nuevo valor es (-e)
Repetir ((e+e)*(1/a)) veces ejecutar bloque Comienzo bloque 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
-- Dibujar tercer círculo Nuevo color lápiz (5) e nuevo valor es (5) x nuevo valor es (-e)
Repetir ((e+e)*(1/a)) veces ejecutar bloque Comienzo bloque 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 Finalizar programa
|
Con este programa dibujamos una circunferencia azul, otra roja y otra verde, de radio 3, 4 y 5, porque hemos cambiado el color y el radio antes de las instrucciones que dan lugar a que se dibuje cada una de ellas.
Pero ¿qué ocurre si quisiéramos dibujar 30, 50, 500 ó 5000 circunfeencias? Usar la repetición de código no es muy buena idea en programación. ¿Por qué? Porque teniendo una instrucción repetir, cuando se quieren repetir cosas, como dibujar círculos, los programadores usan la instrucción repetir porque es mejor que estar creando largos programas donde pegamos una y otra vez un código casi igual. Estos largos programas repetitivos hacen más fácil cometer errores, más difícil saber dónde nos equivocamos y más difícil hacer cambios cuando queremos cambiar algo.
¿Cuál es entonces la solución? Pues ya que tenemos una instrucción repetir, crear las repeticiones usando esta instrucción en lugar de repitiendo una y otra vez código dentro de nuestro programa. Esto iremos viendo poco a poco cómo hacerlo.
EJERCICIO
a) Crea un programa basado en variables donde se dibuje un cuadrado de una longitud de lado a (el valor inicial de a tendrás que definirlo tú) cuya esquina inferior izquierda esté situada en un punto (x, y) (los valores iniciales de x e y tendrás que definirlos tú).
b) Crea un programa para dibujar 4 cuadrados todos ellos de longitud de lado a, situados en distinta posición sobre el plano cartesiano y donde cada cuadrado tenga un color distinto. Para ello puedes usar repetición de código similar a la que hemos visto para dibujar círculos.
Los resultados a obtener serán similares a esto (no tienen por qué ser iguales, ya que tus cuadrados podrán tener distinto tamaño y estar situados en distinta posición):
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.