Páginas

NIMADRES

Calcular si una palabra es un Palindromo en Java (Gráfico) y crear archivos Jar ejecutables

Anteriormente había subido un programa para calcular si una cadena es un palindromo.
Esta vez como ejemplo mostrare el mismo pero hecho en java y agregándole una interfaz gráfica para aquellos interesados en hacerlo pero no tienen una idea clara de como comenzar.
Ademas mostrare como compilarlo desde consola y hacer un archivo jar ejecutable.

A continuación se muestra la salida del programa:













el código es el siguiente :

import java.awt.Font;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class Palindromo extends JFrame implements KeyListener{
    private JPanel panel = new JPanel();
    private JLabel label = new JLabel("Ingresa La cadena: ");
    private JTextField texto = new JTextField();
    public Palindromo(){
        initComponents();
        setTitle("Nimadres");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setBounds(150,150,350,150);
        setResizable(false);
        setVisible(true);
        texto.addKeyListener(this);
    }
    public final void initComponents(){
        panel.setLayout(null);
        label.setBounds(20,30,250,20);
        label.setFont(new Font("consolas", 1 , 20));
        texto.setBounds(20, 50, 250, 20);
        texto.setFont(new Font("consolas", 1, 15));
        panel.add(label);
        panel.add(texto);
        add(panel);
    }
    public boolean esPalindromo(String cadena){
        for(int i = 0; i < cadena.length()/2;i++)
            if(cadena.charAt(i) != cadena.charAt(cadena.length() - i - 1))
                return false;
        return true;
    }

    @Override
    public void keyTyped(KeyEvent e) {
    }

    @Override
    public void keyPressed(KeyEvent e) {
        if(e.getKeyCode() == (KeyEvent.VK_ENTER)){
            if(texto.getText().length() == 0){
                JOptionPane.showMessageDialog(this
                ,"No hay caracteres"
                ,"Error"
                ,JOptionPane.ERROR_MESSAGE);
            }
            else if(esPalindromo(texto.getText())){
                JOptionPane.showMessageDialog(this
                ,"Es Palindromo"
                ,"Solucion"
                ,JOptionPane.INFORMATION_MESSAGE);
            }
            else{
                JOptionPane.showMessageDialog(this
                ,"No es Palindromo"
                ,"Error"
                ,JOptionPane.ERROR_MESSAGE);
            }
            texto.setText("");                
        }
    }
    @Override
    public void keyReleased(KeyEvent e) {}
}
Ademas se muestra la clase Main que ejecuta el programa:

import javax.swing.UIManager;
public class Main {
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            new Palindromo().show();
        } catch (Exception e) {}
    }
}
Ahora mostrare como se compila y se ejecuta en consola en varias imágenes:


Ahora, algo que no se ve en muchas paginas, se han preguntado como hacer para generar un ejecutable de algún programa como este?, como hacer para tan solo darle doble clic y se abra el programa?.

Esta es una manera sencilla de como hacer un archivo jar ejecutable desde consola (windows):

Lo primero que tenemos que hacer es hacer un archivo que contenga lo siguiente :

Main-Class: Main
Sealed: true

 Donde Dice "Main" despues del Main-Class: , va el nombre del archivo a ejecutar, en nuestro caso así llamamos al archivo que ejecuta palindromo.class.
Este archivo generalmente lo guardamos como MANIFEST.MF, ustedes le pueden poner el nombre que quieran, sin olvidar la extensión (mf).

Después ingresamos el siguiente comando en la consola, que nos servirá para generar el archivo jar:

jar -cf  Palindromo.jar Main.class

Después le agregamos el MANIFEST.MF y otros archivos que estén adjuntados al proyecto, ya sea imágenes y demás con el siguiente comando.

jar cmf MANIFEST.MF Palindromo.jar *

El "*" lo pongo para obviar todos los archivos que tenemos en la carpeta ya sea imágenes o archivos de audio que estén contenidos en el proyecto.

Al final lo único que falta es ejecutar el jar, ya sea dándole doble clic al archivo o con el siguiente comando:

java -jar Palindromo.jar

Espero les sirva este post, si tienen dudas, sugerencias o comentarios, no esta demás que ustedes participen y opinen.

Si quieren ver mas información sobre esto, les dejo el siguiente link:

http://gl-epn-programacion-ii.blogspot.mx/2013/02/como-crear-un-jar-con-java-desde-la.html

Verificar si una cadena es Palindromo en C++

Un palíndromo (del griego palin dromein, volver a ir hacia atrás) es una palabra, número o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa. Habitualmente, las frases palindrómicas se resienten en su significado cuanto más largas son.

Esta pequeña aplicación nos permite saber si una palabra, frase o conjunto de números son aquellos denominados palíndromos o no.

La salida seria asi :

El código fuente es el siguiente:
#include <iostream>

using namespace std;

bool esPalindromo(string cadena, int size){
    for(int i = 0; i < size/2; i++)
        if(cadena[i] != cadena[size-i-1]) 
            return false;
    return true;   
}
int main(){
    string cadena;
    cout << "Ingresa la cadena: ";
    getline(cin,cadena);    
    esPalindromo(cadena,cadena.length()) ? 
        cout << "\nEs palindromo \n" : cerr << "\nNo es palindromo \n";    
    cin.get();
    cin.get();
    return 0;    
}