Foros del Web » Programación para mayores de 30 ;) » Java »

como crear la siguiente figura en java?

Estas en el tema de como crear la siguiente figura en java? en el foro de Java en Foros del Web. Generar un Programa que imprima un triángulo hecho de asteriscos "*" y que este rodeado por un cuadrado también de asteriscos "*", no puedo escribirles ...
  #1 (permalink)  
Antiguo 17/05/2012, 16:53
 
Fecha de Ingreso: marzo-2012
Mensajes: 75
Antigüedad: 12 años, 9 meses
Puntos: 3
Pregunta como crear la siguiente figura en java?

Generar un Programa que imprima un triángulo hecho de asteriscos "*" y que este rodeado por un cuadrado también de asteriscos "*", no puedo escribirles la figura porque no me da no me deja hacerla, los extremos del triángulo deben coincidir con el rectángulo que lo rodea.


no se vale hacerlo manual, debe hacerse dado su base y su altura, es decir, las entradas para realizar la figura son B=base y A=altura, y a partir de esos valores generar la figura, sin importar la base o la altura que indique el usuario



es algo como esto
  #2 (permalink)  
Antiguo 17/05/2012, 17:33
 
Fecha de Ingreso: marzo-2012
Mensajes: 75
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: como crear la siguiente figura en java?

Código Javascript:
Ver original
  1. package triangulocuadrado;
  2. import javax.swing.JOptionPane;
  3. /**
  4.  *
  5.  * @author @velandia
  6.  */
  7. public class Triangulocuadrado {
  8.  
  9.  
  10.     public static void main(String[] args) {
  11.             int b=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la altura de la figura"));
  12.             int a=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la Base de la figura"));
  13.            
  14.                    for (int i = 1; i <= b; i++) {
  15.                    
  16.             for (int j = 1; j <= a; j++) {
  17.                 if(i==1||i==b||j==1||j==a){
  18.                     System.out.print("*");
  19.                 }else{
  20.                    int l=j;
  21.                     for(int k=l;k<=l;k++){
  22.                     if(i==k-4){
  23.                     System.out.print("*");    
  24.                     }else{
  25.                    
  26.                     System.out.print(" ");
  27.                     }
  28.                     }
  29.                 }
  30.                     }
  31.             System.out.println("");
  32.                 }
  33.  
  34.             }
  35.  
  36.       }

ESTO ES LO QUE yo he hecho pero no se como hacer la otra linea =S
  #3 (permalink)  
Antiguo 18/05/2012, 08:20
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 12 años, 7 meses
Puntos: 19
Respuesta: como crear la siguiente figura en java?

Código Javascript:
Ver original
  1. public class TriDrado {
  2.  
  3.     private int base;
  4.     private int altura;
  5.  
  6.     public void setDatos(int base, int altura) {
  7.         this.base = base;
  8.         this.altura = altura;
  9.     }
  10.  
  11.     public void pinta() {
  12.         final int centro = base / 2;
  13.         int alturaTri = 0;
  14.         for (int a = 0; a < altura; a++) {
  15.             if (a % 2 == 0)
  16.                 alturaTri++;
  17.             String line = "";
  18.             for (int b = 0; b < base; b++) {
  19.                 line = line
  20.                         .concat(a == 0
  21.                                 || a == (altura - 1)
  22.                                 || b == 0
  23.                                 || b == (base - 1)
  24.                                 || (b == (centro - alturaTri) || b == (centro + alturaTri)) ? "*"
  25.                                 : ("-"));
  26.             }
  27.             line = line.concat("\n");
  28.             System.out.println(line);
  29.         }
  30.     }
  31. }

El método pinta se ejecuta desde un main o algo así y te pinta algo como esto:

Código Javascript:
Ver original
  1. ***********
  2.  
  3. *---*-*---*
  4.  
  5. *--*---*--*
  6.  
  7. *--*---*--*
  8.  
  9. *-*-----*-*
  10.  
  11. *-*-----*-*
  12.  
  13. **-------**
  14.  
  15. **-------**
  16.  
  17. *---------*
  18.  
  19. ***********

Para que se vea bien obviamente la base debe ser impar, pero así me salió a mi, suerte
  #4 (permalink)  
Antiguo 18/05/2012, 08:22
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 12 años, 7 meses
Puntos: 19
Respuesta: como crear la siguiente figura en java?

Por cierto sin la linea 27: line = line.concat("\n"); se ve mejor
  #5 (permalink)  
Antiguo 18/05/2012, 08:30
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 12 años, 7 meses
Puntos: 19
Respuesta: como crear la siguiente figura en java?

Último detalle, la validación requiere un OR para que se pinte bien con alturas pequeñas, y creo que así ya se vería muy bien, saludos

Código Javascript:
Ver original
  1. if (a % 2 == 0 || altura <= centro)
  2.                 alturaTri++;

Etiquetas: altura, figura, triangulo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:54.