Dibujar una figura con bucles

23/Abr/2009 Java , , 2 Comentarios

En el ejemplo Dibujando una figura nos explicaba como generar una figura por consola utilizando bucles while con el lenguaje Java.

La figura generada era la siguiente:

*
**
***
****
*****
******
*******

En uno de los comentarios nos preguntaban, cómo podíamos ampliar el código para poder dibujar una figura más elaborada. Nuevamente veremos como dibujar una figura con bucles en Java.

La figura en cuestión sería la siguiente:

*
**
***
****
*****
******
*******
********
*******
******
*****
****
***
**
*

Para poder acometer el diseño de la segunda figura, esta la dividimos en dos partes. En la primera se incrementarán el número de elementos por cada fila que añadimos, mientras que en la segunda se decrementaran el número de elementos en cada línea que añadamos.

Es por ello que, consecuentemente, tendremos un bucle que incrementará sus valores y otro que decrementará los valores.

Para controlar el número de filas a pintar tenemos la variable "total_filas". Es por ello que en el primer bucle iremos decrementando el valor del total hasta que llegue a cero. Para ello utilizaremos una segunda variable llamada filas.

  1.  
  2. int total_filas = 7;
  3. int filas = total_filas;
  4.  
  5. while (filas > 0) {
  6. filas--;
  7. }
  8.  

Para saber cuantos asteriscos poner en una fila realizaremos un sencillo cálculo que corresponde con restar del total el número de filas que nos quedan. Y sumaremos uno.

Así tendremos el siguiente cálculo:

Fila 1. filas_totales= 7 - filas=7 » 0 » *
Fila 2. filas_totales= 7 - filas=6 » 1 » **
Fila 3. filas_totales= 7 - filas=5 » 2 » ***
Fila 4. filas_totales= 7 - filas=4 » 3 » ****
...

Para pintar la segunda parte del bucle en vez de asignar a la variable "filas" el valor de "filas_total" le asignamos 0. De esta manera el contador lo iremos incrementando:

  1.  
  2. int total_filas = 7;
  3. int filas = 0;
  4.  
  5. while (filas < total_filas) {
  6. filas++;
  7. }
  8.  

Ojo: La variable de salida del bucle es "total_filas"

Para insertar los asteriscos realizaremos la misma operación. Como hemos cambiado el número de la variable "filas" tendremos la siguiente secuencia:

Fila 1. filas_totales= 7 - filas=0 » 7 » ******** (8 asteriscos)
Fila 2. filas_totales= 7 - filas=1 » 6 » *******
Fila 3. filas_totales= 7 - filas=2 » 5 » ******
Fila 4. filas_totales= 7 - filas=3 » 4 » *****
...

Una buena forma de aprender a manejar los bucles

Vídeos sobre Java Básico


2 comentarios en “Dibujar una figura con bucles”

Víctor Cuervo

jose

Amigo tengo un gran problema no se como realizar uno que me mire de la siguiente manera
digamos que se digito 6
—–*
—-**
—***
–****
-*****
******
va hacia atras me podrias ayudar soy nuevo en esto gracias

Víctor Cuervo

Fernando Atilano

Esta es otra forma de hacerlo pero con un bucle for y aquí le pide al usuario el numero máximo de columnas y en número de “montañas”. Aquí el código:

//Variables
int altura, montañas;

Scanner reader=new Scanner (System.in);

//Determinando el numero de repeticiones
System.out.println(“¿Cuantas montañas?”);
montañas=reader.nextInt();

//Adquiriendo el numero maximo de columnas
System.out.println(“¿Cuantos asteriscos de altura?”);
altura=reader.nextInt();

for (int max=0;max<montañas;max++){

//Subiendo
for (int fila=0;fila<altura;fila++){
for (int columna=0;columna=0;fila–){
for (int columna=fila;columna>0;columna–){
System.out.print(“*”);
}
System.out.println(” “);
}
}

Espero le sirva a alguien.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*