Post etiquetados con ‘Programación’



20
Jul

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.

2
May

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;
    }

}
17
Abr

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…

7
Abr

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:

Click to continue…

24
Ene

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 :D 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...

Click to continue…

10
Ene

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!

Celadon theme by the Themes Boutique