Dibujando una figura

06/May/2007 Java , , 28 Comentarios

El siguiente ejercicio consiste en representar la siguiente figura por pantalla:

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

Para la realización del ejercicio es importante conocer el manejo de los bucles while en Java. El bucle principal llevará el control del número de líneas que queremos pintar.

  1. int columnas;
  2. int total_filas = 7; // Tenemos 7 filas.
  3. int filas = total_filas;
  4.  
  5. while (filas > 0) {
  6. //Pintamos los asteriscos de la línea
  7. filas--;
  8. }

Con respecto a la pintura de las líneas debemos de tener en cuenta que al finalizar la línea debemos de introducir un salto de línea, es decir, un System.out.println(), en vez de un System.out.print(), que es lo que haremos para pintar el resto de la línea.

  1. columnas = total_filas - filas;
  2.  
  3. while (columnas > 0) {
  4. System.out.print('*');
  5. columnas--;
  6. }
  7.  
  8. System.out.println('*');

La cantidad de elementos a imprimir por línea coincide con el número de línea. Teniendo en cuenta que los n-1 primeros se imprimen mediante el System.out.print() y el último se imprime con un System.out.println().

Vídeos sobre Java


28 comentarios en “Dibujando una figura”

Víctor Cuervo

Adriana

Hola !
Mi ejercicio es este:

Dado un numero N entero de 8 bits y K que es un numero entero rotar N por la izquierda K veces.
Por ejemplo, si tenemos el numero N=30 y k=4, debemos rotar 30 cuatro bits por la izquierda. El 30 en decimal es igual a 00011110 en binario. Rotar por la izquierda una vez da 00111100, segunda rotación 01111000, tercera rotación 11110000, y la cuarta 11100001 por eso el resultado es 225.

Gracias de antemano!

Víctor Cuervo

Hector

Hola he estado creando un calendario pero el output me sale en vertical…me gustaría imprimir 3 filas y 4 columnas…mi cerebro no me da mas…. las classes son una very por semana y en ingless, siento questions me estanque contact last logica

Víctor Cuervo

Víctor Cuervo

Hector, te recomiendo que nos pongas el código que usas en el foro (http://dudasprogramacion.com/) y así podamos ayudarte de a mejor forma posible.

Saludos.

Víctor Cuervo

Swort

Muy buenas, tengo que realizar un ejerccio con un for, se trata de hacer. Unas flechas

>>>>
Si alguien me.puede ayudar con una aporte. Gracias,

Víctor Cuervo

Víctor Cuervo

Buenas Swort,

Si es sacar 4 flechas sería:

for(int x=0;x<4;x++)
  System.out.print(">");

Saludos.

Víctor Cuervo

Swort

Hola Victor, el ejerccio es este, se trata de dibujar con un bucle for flechas de asteriscos,,

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

Gracias por el aporte que me diste,pero no es lo que me.piden,

Víctor Cuervo

Víctor Cuervo

Ok, ya te entendí, te dejo el código:

  int size = 8;
  
  // Parte superior  
  for (int x=0;x<size;x++) {
   
   // Espacios en blanco
   for (int y=0;y<x;y++) {
    System.out.print(' ');
   }
   
   // Asteriscos
   System.out.println("**");
   
  }
   
  // Parte Inferior  
  for (int x=size-1;x>0;x--) {
   
   // Espacios en blanco
   for (int y=x-1;y>0;y--) {
    System.out.print(' ');
   }
   
   // Asteriscos
   System.out.println("**");
   
  }
Víctor Cuervo

Haydee

Buena informacion.
Cpmo puedo hacer una estrella con asteriscos?
Haydee

Víctor Cuervo

Mario

Y. Como seria pero en sentido contrario de mayor a menor
*******
******
*****
****
***
**
*
Como se puede hacer

Víctor Cuervo

Víctor Cuervo

Hola Mario,

En este caso deberías de utilizar este código:

 filas = 0;

 while (filas < = total_filas) {
   columnas = total_filas - filas;

   while (columnas > 0) {
      System.out.print('*');
      columnas--;
    }

    System.out.println('*');
    filas++;
}

Espero que te ayude.

Saludos.

Víctor Cuervo

jose

PERDON NO ME DIO LOS ESPACIOS ESTE SERIA ASI
—–*
—-**
—***
–****
-*****
******
SI LOS GUIONES SON ESPACIOS

Víctor Cuervo

jose

Amigo estoy intentando realizar este como lo podria hacer
*
**
***
****
*****
******
en este caso digite 6

Víctor Cuervo

navy

como se hace este:
*
***
*****
***
*

Víctor Cuervo

El Pibe

Ay no salió bueno tomen de referencia los asteriscos

…..*
….**
…***
..****
.*****
******

*****
.****
..***
…**
….*

****
..*
.*
****

….*
…*.*
..*…*
.*…..*
*********
…*.*
…*.*
…***

Víctor Cuervo

El Pibe

Y como harían estos?

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

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

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

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

Les agradeceré mucho *.*

Víctor Cuervo

pedro

hola gracias, estimado amigo, esta muy bien. excelente !!.
soy principiante en la programacion.saludos desde veracruz.

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(” “);
}
}

Ejemplo:
*
**
***
**
*
*
**
***
**
*

Espero le sirva a alguien.

Víctor Cuervo

lineadecodigo

@giovanni,

Tienes el ejemplo resuelto en
http://lineadecodigo.com/java/dibujar-una-figura-con-bucles/

Espero que te sirva.

Víctor Cuervo

giovanni

como se puede visualizar esto
*
**
***
****
***
**
*

Víctor Cuervo

joserra

estoy copiando el codigo con netbean y solo me sale una linea de puntos me pueden ayudar

Víctor Cuervo

omar ramirez

me podrias decir como hacer el hola mundo pero con asteriscos

Víctor Cuervo

lineadecodigo

@holaa,

Lo prometido es deuda… Ya tienes el ejemplo sobre tu duda explicado en Dibujar una figura con bucles

Espero que sea de tu ayuda.

Víctor Cuervo

lineadecodigo

Puedes utilizar este mismo ejemplo para pintar la primera parte de tu dibujo.

Para dibujar la segunda parte puedes utilizar el mismo código, pero realizando el bucle al revés. Incrementando las filas.

 filas = 0;

 while (filas < = total_filas) {
   columnas = total_filas - filas;

   while (columnas > 0) {
      System.out.print('*');
      columnas--;
    }

    System.out.println('*');
    filas++;
}

De todas maneras me parece un buen ejemplo y lo publicaré.

Víctor Cuervo

holaa

como se hace este??

*
***
*****
*******
*********
*******
*****
***
*
se supone q debe estar proporcionado jaja pero ya intente de muchas formas y el profe afuerzas lo quiere con “for” yo lo podria hacer con array pero el profe no quiere 🙁

Víctor Cuervo

Ralex

buenas.
Me gusto el ejercicios
lo estaba realizando y cometi un error coloque el decremento al comienzo del primer while y me imprimia 2 * en la primera linea

pero bueno lo coloque al final y solucionado el problema logico

jajajajaja

sou nuevo en java

Víctor Cuervo

lineadecodigo

Espero que la próxima vez publiquemos un artículo que luego te lo pongan en un examen y así te ayudemos más.

Víctor Cuervo

josekont

Excelente mini tutorial. Precisamente hace una semana fue mi primer examen de java y me venia hacer este programa. No lo pude hacer, pero ahora me doy cuenta de lo sencillo que es hacer uno. Saludos y enhorabuena por tu sitio web. Sigue adelante que has ganado un fiel lector!!

Saludos desde Guatemala!

Víctor Cuervo

francisco

muy bien por ser un beun programador como puedo hacer una pagina pero en netbeas pero con codigo con bdatos para una tienda de computadoras

¿Algo que nos quieras comentar?

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

*

*