Resumen: Entrega nº41 del curso "Programación para niños de 10 a 16 años (primaria o secundaria)".
Codificación aprenderaprogramar.com: PN00541G

 

 

PROGRAMACIÓN GRÁFICA CON DIDAC-PROG CARTESIA

¡Bienvenidos a todos! Soy Paula y aquí estoy con una nueva entrega para acompañaros con el aprendizaje de la programación. En capítulos anteriores hemos visto que podíamos dibujar varias circunferencias repitiendo código y que eso no suponía un gran problema para dibujar dos o tres circunferencias. Sin embargo, no resulta práctico si queremos dibujar 20, 50 ó 100 circunferencias con el computador.

didac-prog cartesia aprender programacion niños

 

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

Este programa lo vimos en entregas anteriores del curso como 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 primera circunferencia

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 segunda circunferencia

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 tercera circunferencia

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.

Ejercicios resueltos computación para adolescentes secundaria con aplicación Didac-Prog Cartesia
 

 

REPETICIONES DE UNA REPETICIÓN

Ya tenemos un código donde la circunferencia se dibuja usando variables que se especifican al principio del programa. Podemos decir que cada bloque de ejecución consta de dos partes, una parte de declaraciones iniciales donde especificamos cosas como el color, grosor y valores iniciales de las variables, y una parte de código de ejecución del dibujo que es donde se realiza el trazado:

Código de declaraciones iniciales

Código de ejecución del dibujo

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)

 

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

 

Hay instrucciones que se definen al principio del programa y sirven para todo él. Esta forma de organizar nuestros programas en distintas partes puede ser muy útil pues nos permite definir color inicial, grosor inicial, tamaños y puntos iniciales, que luego serán utilizados para dibujar sin tener que estar modificando todo el código.

Haz pruebas modificando el color, grosor y valor radio que se declaran en las primeras líneas y poniendo otros valores. Organizar así el programa facilita mucho los cambios.

¿Y si queremos dibujar varios círculos? Tener la ejecución definida a partir de variables nos va a facilitar el poder hacerlo.

Ya sabemos cómo dibujar un círculo usando repeticiones. El número de repeticiones depende del tamaño del círculo y lo tenemos establecido en la línea << Repetir ((e+e)* (1/a))  veces ejecutar bloque >>

¿Cómo podemos hacer para dibujar 10 círculos en el mismo programa? Podríamos escribir 10 veces el código para dibujar un círculo, pero esto sería muy cansado.

Dado que sabemos el código para dibujar un círculo, que es el “Código de ejecución del dibujo”, nos bastará con hacer que se repita el número de veces que queramos. ¿Y cómo generamos repeticiones de ejecución? Con la instrucción Repetir. Por tanto lo que tendremos que hacer es repetir 10 veces el código de ejecución del dibujo. Para ello usaremos la instrucción Repetir, que recordemos que se escribe así:

Repetir (?) veces ejecutar bloque

Comienzo bloque

???

Fin bloque

 

Tendremos que indicar 10 repeticiones e introducir el código que queremos repetir donde aparecen los tres interrogantes. Pero si repetimos sin más, siempre se haría lo mismo. Para que las repeticiones hagan en cada ocasión una cosa distinta, tenemos que hacer que en cada repetición se modifique el valor de una variable que nos interese. En nuestro caso nos va a interesar modificar el radio. Por ello dentro del código a ejecutar en cada repetición tendremos que modificar el radio que en nuestro caso es la variable e. Por ejemplo si queremos que en cada repetición el radio sea 1 ud más grande escribiríamos <<e nuevo valor es (e+1)>>, o si quisiéramos que en cada repetición el radio sea 2 uds más grande escribiríamos <<e nuevo valor es (e+2)>>

Además después de dibujar un círculo por ejemplo de radio 4, los valores de x se habrán ido modificando y el valor final de x será por ejemplo 4, pero para empezar el siguiente círculo necesitamos que el valor inicial de x sea otra vez el valor inicial que nos interese, y esto lo podemos escribir como << x nuevo valor es (-e) >> que nos permite comenzar en -4 si el radio es 4, en -5 si el radio es 5, en -6 si el radio es 6, y así sucesivamente.

Por tanto para iniciar un nuevo círculo en una repetición tendremos que establecer al final de una repetición los nuevos valores de radio y de x inicial a utilizar. El código para dibujar 10 círculos nos queda así:

-- EJEMPLO EJERCICIO RESUELTO PN00541G-0 DIBUJAR CÍRCULOS paso 1

Iniciar programa

Nuevo color lápiz (4)

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

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)

Fin bloque

Finalizar programa

 

 

Si te fijas, gracias al uso de variables y repeticiones hemos podido dibujar mucho más sin tener que repetir 10 veces el código con distintos valores, que hubiera sido muy aburrido.

Ejercicios resueltos programación con bucles para niños y adolescentes

 

 

EJERCICIO

Crear un programa en Didac-Prog Cartesia que cumpla lo siguiente:

a) Se deben dibujar 20 semicircunferencias de color verde (sólo la parte de arriba de una circunferencia) 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).

El resultado a obtener será similar al que muestra la siguiente imagen:

Ejercicios resueltos de programación para niños y adolescentes de primaria y secundaria

 

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.

 

Descargar archivo: