domingo, 12 de junio de 2011

Deitel_Java_5.24

5.24 Escriba una aplicación que imprima la siguiente figura de rombo. Puede utilizar instrucciones de salida que impriman un solo asterisco (*), un solo espacio o un solo carácter de nueva línea. Maximice el uso de la repetición ( con instrucciones for anidadas ), y minimice el número de instrucciones de salida.
     *
   ***
  *****
 *******
*********
 *******
  *****
   *** 

     *

El siguiente código debe guardarse como  UsaDeitel_5_24.java
Este programa puede imprimir un rombo de cualquier tamaño, sólo debe cambiarse la variable Tamano, cuidando que sea un entero impar.

  public class UsaDeitel_5_24

  {       // Abre clase publica UsaDeitel_5_24
  
  public static void main(String args[])
  {     // Abre main
  
  Deitel_5_24 miObjeto = new Deitel_5_24();

  // Se llama metodo Imprime()

  miObjeto.Imprime();

  }     // Cierra main
  }       // Cierra clase publica UsaDeitel_5_24

El siguiente código debe guardarse como UsaDeitel_5_24.java

   public class Deitel_5_24

   {         // Abre clase Deitel_5_24

   private int Tamano = 9;

   // la varibale Tamano controla la diagonal del rombo


       // Se define el metodo Imprime
   public void Imprime()
   {     // Abre metodo Imprime
     
   for ( int i = 1; i <= ((Tamano/2) + 1); i ++ )
   {   // Abre for
          
   for ( int  k = 1; k <= Tamano / 2 - i + 1; k++ )
   System.out.printf(" ");
                         
   // Este ciclo imprime el triangulo superior       
   for ( int j = (Tamano / 2) - i + 2; j <= (Tamano / 2) + i; j++ )  
   System.out.printf("*");


   System.out.printf("\n"); 
    
   }   // Cierra for


   // Abre segundo for, que imprime el triangulo de abajo

   for ( int l = 1; l <= Tamano / 2; l++ )
   {    // Abre for que imprime el segundo triangulo
   
   // Se imprimen los espacios

   for( int m = 1; m <= l; m++ )
   {     // Abre for
   
   System.out.printf(" "); 
   
   }     // Cierra for 

   for (int n = l + 1; n <= Tamano - l  ; n++)
   System.out.printf("*");

    
   System.out.println();

   }    // Cierra for que imprime el segundo triangulo

   }     // Cierra metodo Imprime
   }         // Cierra clase Deitel_5_24


1 comentario:

  1. en el for de la iteración "k" no le pusiste el paréntesis al "Tamano / 2 - i + 1" porqué da el mismo resultado? java implícitamente lo trabaja con paréntesis?

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...