noviembre 02, 2011

Dibujos con asteriscos

Hasta donde te permita tu imaginación podrás hacer dibujos en Java imprimiendo asteriscos en diferente orden, en diferentes lineas o sobre la misma, solo es cuestión de imaginar lo que queremos dibujar, hacer un bosquejo y después llevarlo a código.

System.out.print();

La instrucción anterior imprime cadenas de caracteres, números, o resultados de operaciones realizadas en nuestro programa, hace la impresión de lo que se le indique y deja el cursor de impresión sobre la misma linea donde imprimió, de tal modo que para la siguiente impresión se hará sobre la misma linea, justo después del ultimo carácter que se imprimió. Si se ejecuta la linea System.out.print("Hola mundo"); el resultado sera este (importante: note la posición del cursor):



System.out.println();

(Ya hemos trabajado mucho con esta instrucción). Esta instrucción imprime el mensaje en pantalla que el programa le indique y luego de imprimirlo hace un salto de linea, por lo cual lo siguiente que se imprima, mostrara en una nueva linea después de lo impreso anteriormente. Si se ejecuta la linea System.out.println("Hola mundo"); el resultado sera este (importante: note la posición del cursor):



System.out.printf();

Para esta instrucción, vamos a entender que es que se imprimen los datos de igual modo, solo que con un formato especifico, este método utiliza varios especificadores de formato para que nuestro texto de salida salga como lo deseemos. Si se ejecuta la linea System.out.printf("%s\n%s\n", "Hola", "mundo"); el resultado sera este:



Hagamos un programa de muestra para observar el funcionamiento de las instrucciones anteriores, y poder diferenciar su función:

//Archivo: Ej.java

public class Ej {

    public static void main(String args[]){
     
     System.out.println("*\n**\n***\n****\n*****");
     System.out.println();
     System.out.println();
     
     System.out.println("*");
     System.out.println("***");
     System.out.println("*****");
     System.out.println("****");
     System.out.println("**");
     System.out.println();
     System.out.println();
     
     System.out.print("*");
     System.out.print("***");
     System.out.print("*****");
     System.out.print("****");
     System.out.println("**");
     System.out.println();
     System.out.println();
     
     System.out.print("*");
     System.out.println("***");
     System.out.println("*****");
     System.out.print("****");
     System.out.println("**");
     System.out.println();
     System.out.println();
     
     System.out.printf("%s\n%s\n%s\n","*","***","*****");
    }
}
El programa anterior solo imprime asteriscos, en secuencias diferentes, en lineas diferentes, con instrucciones diferentes, observe el comportamiento de cada asterisco y su linea de código, y analice, de ese modo podrá realizar múltiples dibujos a manera de jugar con los asteriscos y las instrucciones para imprimir en pantalla; La salida del programa anterior es la siguiente:


Hay un programa muy popular que consiste en hacer un triangulo o una pirámide con asteriscos, y es muy sencillo de realizar:
//Archivo: Ej.java

public class Ej {

    public static void main(String args[]){
     
     System.out.println("*\n**\n***\n****\n*****");
     
    }
}
Pero este programa se hace mas interesante y atractivo si hacemos que el usuario determine el numero de niveles que debe tener nuestra pirámide de asteriscos:
//Archivo: Dibujo.java

import javax.swing.JOptionPane;

public class Dibujo{

 public static void main(String args[]){
 
  String valor=JOptionPane.showInputDialog("Introduzca el numero de niveles:");
  int nivel=Integer.parseInt(valor);
  int contador;
  String asterisco="";
  
  for(contador=1 ; contador<=nivel ; contador++){
   asterisco+="*";
   System.out.println(asterisco);
  }
 }
}
El programa anterior esta diseñado para que el usuario introduzca el numero de niveles que debe tener nuestra pirámide de asteriscos, así si el usuario ingresara el numero 7, se mostrara una pirámide así:

*               Nivel 1
**              Nivel 2
***             Nivel 3
****            Nivel 4
*****           Nivel 5
******          Nivel 6
*******         Nivel 7


Y asi sucesivamente para cualquier numero que indique nuestro usuario.
Loading...