En general, en este tipo de ejercicios hay que identificar en el dibujo los elementos repetidos, que se generarán mediante bucles.
Los elementos repetidos deben encontrarse uno a continuación de otro, en horizontal o en vertical, pero hay que buscar sobre todo repeticiones en horizontal.
A veces deben identificarse elementos repetidos dentro de elementos repetidos, que se generarán mediante bucles anidados.
A veces es necesario dividir el dibujo en varios dibujos consecutivos y generar unos detrás de otros.
En los dibujos explicativos de esta página se han trazado líneas continuas y líneas discontinuas.
Las líneas continuas rodean los trozos de dibujo generados por un bucle.
Las líneas discontinuas rodean los trozos de dibujo generados en cada iteración del bucle.
Cuando en un dibujo hay varios bucles, las líneas que rodean cada trozo de dibujo tienen colores distintos.
Los dibujos se incluyen dentro de bloques <pre> ... </pre> para que los espacios y los saltos de línea en el código fuente sean visibles en el navegador. Los programas deben generar tanto las etiquetas <pre> ... </pre> como los saltos de línea \n.
for (2) 1 - Rectángulo de estrellas 1
En este ejercicio hay que dibujar un rectángulo de estrellas y espacios
Alto: 4
Ancho: 7
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Para ello hay que darse cuenta de que el dibujo está formado por varias líneas formadas a su vez por varias estrellas.
El rectángulo está formado por varias líneas:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
A su vez, cada línea está formada por varias estrellas y espacios:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Es decir, que necesitaremos dos bucles, uno dentro de otro:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Además, será necesario escribir un salto de línea al final de cada línea:
*
*
*
*
*
*
*
\n
*
*
*
*
*
*
*
\n
*
*
*
*
*
*
*
\n
*
*
*
*
*
*
*
\n
Un esbozo del código podría ser el siguiente:
"<pre>"
for (alto)
for (ancho)
"* "
"\n"
"</pre>"
for (2) 2 - Segmentos
En este programa hay que dibujar unos segmentos de estrellas separados por el mismo número de espacios que estrellas hay en cada segmento.
Tamaño: 3
Segmentos: 4
*
*
*
*
*
*
*
*
*
*
*
*
Para ello hay que darse cuenta de que el dibujo está formado por varias parejas de segmentos de estrellas y espacios, formados a su vez por varios estrellas y varios espacios.
El dibujo está formado por varias parejas de segmentos de estrellas y espacios
*
*
*
*
*
*
*
*
*
*
*
*
A su vez, cada pareja está formada por varias estrellas o varios espacios:
*
*
*
*
*
*
*
*
*
*
*
*
Es decir, que necesitaremos tres bucles, dos de ellos dentro de otro:
*
*
*
*
*
*
*
*
*
*
*
*
Un esbozo del código podría ser el siguiente:
"<pre>"
for (segmentos)
for (tamaño)
"* "
for (tamaño)
" "
"</pre>"
for (2) 3 - Dos cuadrados
En este ejercicio hay que dibujar dos cuadrados de estrellas y espacios
Tamaño: 3
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Para ello hay que darse cuenta de que se trata de una combinación de los ejercicios anteriores, observando que el dibujo está formado por dos dibujos seguidos: un cuadrado de estrellas seguida de varias líneas con un segmento de espacios y estrellas.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Primer dibujo: cuadrado de estrellas.
El primer cuadrado está formado por varias líneas:
*
*
*
*
*
*
*
*
*
A su vez, cada línea está formada por varias estrellas y espacios:
*
*
*
*
*
*
*
*
*
Es decir, que necesitaremos dos bucles, uno dentro de otro:
*
*
*
*
*
*
*
*
*
Además, será necesario escribir un salto de línea al final de cada línea:
*
*
*
\n
*
*
*
\n
*
*
*
\n
Un esbozo del código para este primer podría ser el siguiente:
"<pre>"
for (tamaño)
for (tamaño)
"* "
"\n"
"</pre>"
Segundo dibujo: cuadrado de espacios y estrellas.
El dibujo está formado por varias líneas iguales:
*
*
*
*
*
*
*
*
*
A su vez, cada línea está formada por un segmento de estrellas seguido de un segmento de espacios:
*
*
*
*
*
*
*
*
*
Es decir, que necesitaremos tres bucles, dos de ellos dentro de otro:
*
*
*
*
*
*
*
*
*
Además, será necesario escribir un salto de línea al final de cada línea:
*
*
*
\n
*
*
*
\n
*
*
*
\n
Un esbozo del código podría ser el siguiente:
"<pre>"
for (tamaño)
for (tamaño)
" "
for (tamaño)
"* "
"\n"
"</pre>"
Un esbozo del programa completo podría ser el siguiente:
"<pre>"
for (tamaño)
for (tamaño)
"* "
"\n"
for (tamaño)
for (tamaño)
" "
for (tamaño)
"* "
"\n"
"</pre>"
for (2) 4 - Rectángulo de estrellas 2
Escriba un programa que dibuje rectángulos de estrellas a partir de dos variables $alto y $ancho.
Alto: 4
Ancho: 6
* * * * * *
* *
* *
* * * * * *
En este ejercicio hay que dibujar un rectángulo de estrellas y espacios
Alto: 4
Ancho: 7
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Para ello hay que darse cuenta de que el dibujo está formado por tres dibujos seguidos: una línea de estrellas, un bloque de varias líneas iguales y otra línea de estrellas idéntica a la primera.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Primer dibujo: línea de estrellas:
La primera línea no es más que una línea de estrellas y espacios ...
*
*
*
*
*
*
*
... por lo que un bucle es suficiente para generarla ...
*
*
*
*
*
*
*
... aunque será necesario escribir un salto de línea al final de la línea:
*
*
*
*
*
*
*
\n
Un esbozo del código podría ser el siguiente:
"<pre>"
for (ancho)
"* "
"\n"
"</pre>"
Segundo dibujo: líneas centrales:
El bloque de líneas centrales está formado por varias líneas:
*
*
*
*
A su vez, cada línea está formada por una estrella, un segmento formado por varios espacios y otra estrella:
*
*
*
*
Es decir, que necesitaremos dos bucles, uno dentro de otro:
*
*
*
*
Además, será necesario escribir un salto de línea al final de cada línea:
*
*
\n
*
*
\n
Un esbozo del código podría ser el siguiente:
"<pre>"
for (alto)
"* "
for (ancho - 2)
" "
"*"
"\n"
"</pre>"
Tercer dibujo: línea de estrellas (igual que el primer dibujo)
La última línea no es más que una línea de estrellas y espacios ...
*
*
*
*
*
*
*
... por lo que un bucle es suficiente para generarla ...
*
*
*
*
*
*
*
... en la que no es necesario escribir un salto de línea (pero en el que lo incluiremos para que sea como la primera):
*
*
*
*
*
*
*
\n
Un esbozo del código podría ser el siguiente:
"<pre>"
for (ancho)
"* "
"\n"
"</pre>"
Un esbozo del programa completo podría ser el siguiente:
"<pre>"
for (ancho)
"* "
"\n"
for (alto)
"* "
for (ancho - 2)
" "
"*"
"\n"
for (ancho)
"* "
"\n"
"</pre>"
for (2) 5 - Triángulo de estrellas 1
Escriba un programa que dibuje triángulos de estrellas de la anchura indicada por el usuario:
Ancho: 5
*
* *
* * *
* * * *
* * * * *
for (2) 6 - Triángulo de estrellas 2
Escriba un programa que dibuje triángulos de estrellas de la anchura indicada por el usuario:
Ancho: 5
* * * * *
* * * *
* * *
* *
*
for (2) 7 - Triángulo de estrellas 3
Escriba un programa que dibuje triángulos de estrellas de la anchura indicada por el usuario: