Post etiquetados con ‘Programación’
La clase Robot de Java
Hace tiempo, cuando recién empezaba a programar en Java, ví el nombre de esta clase Robot. A mi me pareció un nombre bastante atractivo, por lo que decidí ver en la documentación del API de Java para saber como usarla.
Yo tenía las sospechas de que seria algo bastante dificultoso de hacer, pero no fue así; solo sabiendo lo básico de la programación orientada a objetos fue necesario para poder hacer unos ejemplos.
Esta clase nos permite manejar mediante metodos las pulsaciones del teclado y del mouse e incluso añadirles un cierto delay(retardo), por lo que se me ocurrio jugarle una broma a mis amigos.
El código lo adjunto aquí en archivo rar que contiene el fuente .java, está un poco desordenado ya que no es un trabajo o algo por estilo, sino un programa que se me ocurrio hacer en mis tiempos de ocio para probar el funcionamiento de esta clase(^^’).
El fuente es un applet, por lo que no podran ejecutarlo así como así, ya que al acceder a metodos nativos del sistema(pulsaciones de teclado), necesito primero firmarlo, lo cual si les interesa lo pueden buscar en google o simplemente me lo hacen saber para responderles.
Además les dejo la url del applet ya subido a un hosting gratuito, en donde podran ver en funcionamiento la broma, la cual no hace mas que escribir algo en el bloc de notas y luego te reinicia la pc.
http://claydergc.webs.com/applet.htm
Como decía es necesario firmar el applet, por lo que por ser una broma les aparecerá que acepten que se ejecute el applet en su browser el cual esta con un nombre que no es mio, si mal no recuerdo el nombre que le puse fue “Juan”, para que mis amigos no sepan que fui yo.
Por lo demás no se preocupen, solo es una prueba del funcionamiento de la clase java.awt.Robot, lo unico si les recomiendo que guarden todo lo que esten haciendo porq les reiniará la pc; en todo caso eso pueden verlo en el codigo que adjunté si es que no deseean ejecutar el applet.
http://seccperu.org/files/PruebaRobot.rar
Bueno, espero les haya servido de algo este post.
Saludos.
Anagramas en Java
Un anagrama es una palabra que resulta de la transposición de las letras de otra palabra. Por ejemplo con ifx podemos obtener ifx,ixf,fix,fxi,xif,xfi (saber cuales de estas son palabras reales es un asunto totalmente distinto …). Hacer un programa en java para obtener todas estas posibles conjugaciones no es difícil, pero es interesante porque se requiere usar un método recursivo y esta clase de métodos tiende a seguir el patrón pocas líneas de código bastante dolor de cabeza. Esta es sólo una manera de solucionar un anagrama, debe de haber varias más.
import java.util.ArrayList;
public class Anagrama {
private ArrayList<String> soluciones=new ArrayList<String>();
public Anagrama(){ }
public static void main(String args[]){
Anagrama a=new Anagrama();
String palabra="ifx";
a.resolver(palabra);
System.out.println(a.getSoluciones());
}
public void resolver(String palabra){
palabra=palabra.toLowerCase();
char[] letras=palabra.toCharArray();
int tamanioPalabra=letras.length;
int numeroIteraciones=0;
char[] cadenaActual=new char[letras.length];
resolver(letras,cadenaActual,tamanioPalabra,numeroIteraciones);
}
private void resolver(char[] letras,char[] cadenaActual,
int tamanioPalabra,int numeroIteraciones){
if (numeroIteraciones==tamanioPalabra){
getSoluciones().add(new String(cadenaActual));
}
numeroIteraciones++;
for(int i=0;i<tamanioPalabra;i++){
if (letras[i]=='A'){
//Como se paso todas las letras a minúscula, se usa "A"
//para indicar que la letra en esa posición ya se utilizó,
//de ser así sólo paso a la siguiente letra
}else{
char valorEliminado=letras[i];
//valorEliminado es la letra que ya use y no
//se debe seguir usando
cadenaActual[numeroIteraciones-1]=valorEliminado;
letras[i]='A';
//Un valor q le doy para mostrar que ya lo elimine
resolver(letras,cadenaActual,tamanioPalabra,numeroIteraciones);
letras[i]=valorEliminado;
}
}
}
public ArrayList<String> getSoluciones() {
return soluciones;
}
public void setSoluciones(ArrayList<String> soluciones) {
this.soluciones = soluciones;
}
}
Un poco de historia: COBOL y LOGO
Para los más veteranos en esto de la computación, sentir hablar de Logo o Cobol, nos retrotrae a varias décadas hacia atrás.
Quién no recuerda la tortuguita que dibujaba curiosas figuras tras su rastro?
Las pestañas que nos quemamos programando sus “pasos” en un monitor Hércules monocromático?
Muchas veces definidos como verdaderos iconos dentro de la historia de la informática, fueron una invalorable base de aprendizaje, y probablemente la primera experiencia frente a un ordenador para muchos de nosotros.
Seguir leyendo en WiFiClub
Tutorial Tortoise SVN + SourceForge
A ver, primero necesitamos tener una cuenta en: SourceForge.net posteriormente descargar el cliente de SVN, en este caso será Tortoise Tortoise SVN
Quienes conocen, saben de su gran utilidad, desde mi punto de vista, es un software que funciona al mismo estilo de un puente, conectando y compartiendo un proyecto de desarrollo de software para trabajar en equipo [valga la redundancia], si andas en la universidad, esta es una gran alternativa para solucionar el principal problema que tenemos trabajando por separado el mismo proyecto…
Bueno, sin más que agregar, vamos por el tutorial!
Click to continue…
Aplicando overwriting en componentes swing
Si hablamos de programación orientada a objetos, pues tambien tenemos que hablar de polimorfismo. El polimorfismo se podría dividir concretamente en dos sustantivos: sobreescritura (overwriting) y sobrecarga (overriding) de métodos, los cuales forman parte importante en la implementación del api del j2se.
Estos dos conceptos no son muy dificiles de entender, sin embargo, el ver la puesta en escena de estos conceptos se da casi siempre en nuestras propias clases, lo cual es sencillo ya que para nosotros nuestra clase es una caja blanca la cual podemos ver claramente. Lo que voy a mostrar ahora, es como aplicar la sobreescritura de métodos en la API del J2SE y para hacerlo aun mas grafico, lo aplicaré sobre la clase JFrame, la cual es una ventana de las normales que todos podemos ver.
A continuación pondré el código del programa:
Programando en C Sharp – 03
Hola!!! como van estimados lectores? todo bien? pues yo ando con las ganas de programar en C#, motivos? mmm… mejorar y compartir
En esta ocasión vamos con la selección múltiple, para qué sirve? pues para evitar escribir tantos IFs como sean necesarios, es decir una manera óptima de reducir código fuente, veamos:
namespace Estaciones
{
class Estaciones
{
static void Main(string[] args)
{
Console.WriteLine("Determinando la estación del año");
Console.WriteLine("--------------------------------");
Console.Write("Ingrese número de día: ");
byte dia = byte.Parse(Console.ReadLine());
// byte representa a un número de tamaño relavitamente
// pequeño como se requiere[0-255], que sea hábito el tener en cuenta
// los tipos de datos para trabajar pensando en la memoria...
Programando en C Sharp – 02
Buenos días!!! regreso de unas vacaciones otorgadas por la directiva de iFX, y continuando con el curso de programación en C#, vamos viendo estructuras condicionales simples, y sin más que agregar, aqui está el código:
using System;
namespace RendimientoEscolar
{
class Promedio
{
//Método principal
static void Main(string[] args)
{
Console.WriteLine("Determinando el rendimiento de alumno");
Console.WriteLine("-----------------------------");
Console.Write("Ingrese promedio: ");
// Declaramos la variable: double promedio
double promedio;
promedio = double.Parse(Console.ReadLine());
// La cual es asignada mediante un Console.ReadLine()
// pero! tiene que ser "parseada" porque ReadLine lee los valores
// del tipo string, asi que al momento de "parsear" va del siguiente modo:
// tipo.Parse(Console.ReadLine());
// tipo -> Int32, Int64, double, long, entre otros
// cuidado con los valores tipo bool.
if (promedio < 0 || promedio > 20)
// Las barras significan "o" lógico.
Console.WriteLine("Dato erróneo");
else if (promedio <= 5)
Console.WriteLine("Échale más ganas, tu puedes!");
else if (promedio <= 10)
Console.WriteLine("Venga vamos! puedes ser mejor, fala poco!");
else if (promedio <= 15)
Console.WriteLine("Vas por buen camino! ");
// En el siguiente caso, van las llaves porque se emplea 2 lineas
// de código y el IF sin llaves solo permite una.
else if (promedio <= 20)
{
Console.WriteLine("Bien, seguid adelante!");
Console.WriteLine("Ahora, comparte lo que sabes");
}
// Finalmente el clásico .ReadLine() para detener la aplicación
// y apreciar sus resultados.
Console.ReadLine();
}
}
}
Saludos!



