• Viernes 8 de Noviembre de 2024, 04:32

Autor Tema:  Es Palindromo?  (Leído 11371 veces)

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Es Palindromo?
« en: Martes 13 de Mayo de 2008, 00:11 »
0
Hola como estan?

Pido un poco de colaboracion con este programa que me pusieron en la , pero sin que nos explicaran como codificarlas en java, e investigado por la red pero nada, que me sale.

Es decir si es palindromo o no la palabra.

 import javax.swing.*;
public class palindromo {

Citar
public static void main (String [] args) {
  int i;
  String palabra;   
  boolean palindromo;
 
 
  palabra=JOptionPane.showInputDialog("Introduzca la palabra");
  i=0;
  int j=palabra.length();
 
 
  palindromo=true;
  while (palindromo = true){
     
     if((palabra.substring(i,0))!= (palabra.substring(j-1,0))){
    palindromo=false;
     }
     
     i=i+1;
     j=j-1;
  }   
 
  if (palindromo=true){
     JOptionPane.showMessageDialog(null,"Es palindromo" );
  }else{
     JOptionPane.showMessageDialog(null,"No es palindromo " );
  }
     
     
 }
   
   
}

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Es Palindromo?
« Respuesta #1 en: Martes 13 de Mayo de 2008, 00:21 »
0
A decir verdad no te entiendo lo que quieres :P
parece que palindromo es toda aquella palabra que se lee igual al derecho o al reves como:  aerea, rodador, rayar, reconocer ....

Entonces tu aplicacion lo que pretende es evaluar la palabra que ingresa el usuario y determinar si es palindroma o no.

palabra a evaluar:
Código: Text
  1. ]palabra=JOptionPane.showInputDialog("Introduzca la palabra");
  2.  

se va evaluando la palabra segun las posiciones de las letra. Las posiciones de las letras se evaluan simetricamente
Código: Text
  1. while (palindromo = true){
  2.  
  3.   if((palabra.substring(i,0))!= (palabra.substring(j-1,0))){
  4.     palindromo=false;
  5.   }
  6.  
  7.   i=i+1;
  8.   j=j-1;
  9.   }
  10.  
espero haberte ayudado
saludos

Ric_Monje

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #2 en: Martes 13 de Mayo de 2008, 00:23 »
0
Si ami me dejaran ese programa yo usaria un metodo de la clase String  

Metodo:    toCharArray()
Resumen: este metodo toma un string y lo divide letra por letra y lo va metiendo en un arreglo de chars

Como la idea no es hacer el trabajo sino ayudar un poco, entonces te dejo un codigo de ejemplo, si tienes alguna duda comentala

Programa: Ha este codigo le ingresa una palabra o frase, y el programa se encarga de cambiar as a por e y las e por a.

Código: Text
  1.  
  2.  
  3. public class Palabra1 {
  4. private String palabra;
  5. private char arreglo[];
  6.  
  7.   public Palabra1(String palabra){
  8.     this.palabra=palabra;
  9.     this.arreglo= new char [palabra.length()];
  10.   }
  11.  
  12.  
  13.   public String getPalabra() {
  14.     return palabra;
  15.   }
  16.  
  17.  
  18.   public void setPalabra(String palabra) {
  19.     this.palabra = palabra;
  20.   }
  21.  
  22.  
  23.   public void modoficarFrase(){
  24.         arreglo=palabra.toCharArray();
  25.     for(int i=0;i<arreglo.length;i++){
  26.       if(arreglo[i]=='a'){
  27.         arreglo[i]='e';
  28.       }else{
  29.         if(arreglo[i]=='e'){
  30.           arreglo[i]='a';
  31.         }  
  32.       }
  33.      
  34.     }
  35.       String palabra = new String(arreglo);
  36.       setPalabra(palabra);
  37.   }
  38. }
  39.  
  40.  

Espero te sea de ayuda, si tienes preguntas haslas, no te quedes con la duda.


manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Es Palindromo?
« Respuesta #3 en: Martes 13 de Mayo de 2008, 00:30 »
0
que tal monge
creo que lo que pretende digichap es entender su codigo, mas que todo describirlo.
Bueno es solo una humilde opinion
saludos

Ric_Monje

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #4 en: Martes 13 de Mayo de 2008, 00:47 »
0
Jajajajaja como siempre, yo = de perdido...todo me lo tienen que explicar con plastilina :whistling:


digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #5 en: Martes 13 de Mayo de 2008, 01:19 »
0
primero que todo , gracias.

El algoritmo ya lo hice bien, pero en el momento de codificarlo esta el problema porque no me han explicado como codificar STRINGS o CADENAS .
He averiguado por google, y en la libreria de java , pero no logro entender como.

He ahi el problema.


aa y por cierto, yo codifique el programa segun lo medio entendido, por eso se los ponia alla arriba, me sale procces complete, pero al correr nada.\

y claro que entiendo que quiere hacer el programa jajajaja.

Ric_Monje

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #6 en: Martes 13 de Mayo de 2008, 01:21 »
0
digichap28 comentame, a ke te refieres con codificar (con plastilina porfavor  :whistling: )

crea una variable de tipo string:

Código: Text
  1.  String palabra;
  2.  

Guarda en la variable palabra lo que se escribe en el campo de texto

Código: Text
  1. palabra=JOptionPane.showInputDialog("Introduzca la palabra");
  2.  

Crea una variable de tipo entero y guarda en j el numero de caracteres que tiene palabra.

Código: Text
  1.  int j=palabra.length();
  2.  

Compara los substring ¿que es y como se crean los substring?

Substring ejemplo

Código: Text
  1.  
  2.         String str="El lenguaje Java";
  3.   String subStr=str.substring(3, 11);
  4.  
  5.  

ese codigo imprime "lenguaje".

deberias entender con ese ejemplo loq uehace el tuyo.

Código: Text
  1.  
  2. if((palabra.substring(i,0))!= (palabra.substring(j-1,0))){
  3.     palindromo=false;
  4.   }
  5.  

Pues si el problema era que no entendias como trabaja el String en el codigo, lo explique lo ke mas pude, cualquier dua, comentala, espero hallas entendido


digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #7 en: Martes 13 de Mayo de 2008, 01:22 »
0
codificar me refiero a pasarlo de algoritmo a un lenguaje de programacion.

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #8 en: Martes 13 de Mayo de 2008, 01:24 »
0
mejor dicho, que es lo que esta mal en la codificion para que no me corra?

Ric_Monje

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #9 en: Martes 13 de Mayo de 2008, 01:46 »
0
Bueno te comento unos problemitas:

1.Al usar el metodo subString , este te retorna un nuevo string, y la forma de comprar un string no es con == o != sino con:

Código: Text
  1.  
  2. (palabra.substring(i,0)).equals(palabra.substring(j-1,0)
  3.  
  4.  

2.Las comparaciones no se hacen con = sino con ==
Código: Text
  1.  
  2.  while (palindromo == true)
  3.       if (palindromo==true)
  4.  
  5.  

3. La el manejo del metodo subString parece estar correcto pero los indices (i,0) y (j-1,0) no creo que cumplan la funcion que deseas, solo es ke mires este ejemplo para entenderlo:

Código: Text
  1.  
  2.   String str="El lenguaje Java";
  3.  String subStr=str.substring(3, 11);
  4.  
  5.  Muestra en Panatalla "Lenguaje"
  6.  
  7.  

4.La condicion de parada, para la logica del programa no es la correcta, ya que si la palabra es un palindromo, entonces nunca saldria del ciclo, y te mostraria un error cuando los valores de i y j se salgan del tamano del String.

Corrije los eerores que te muestro, y analisa un poco la logica que estas usando, apenas lo hagas muestrame el codigo, y miramos en ke mas te puedo colaborar.


digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #10 en: Martes 13 de Mayo de 2008, 03:45 »
0
hola, gracias!
Ya arregle lo de las subadenas.
pero , como escribo NOT EQUALS?

Citar
import javax.swing.*;
public class palindromo {

 public static void main (String [] args) {
  int i;
 
  boolean palindromo;
 
 
  String palabra=JOptionPane.showInputDialog("Introduzca la palabra");
  i=0;
  int j=palabra.length();
 
  int x=(int)(palabra.length()/2);
  palindromo=true;
 
 
  while ((palindromo == true) || (i<x)) {
     
     if((palabra.substring(i,i+1))!=(palabra.substring(j-1,j))){
    palindromo=false;
     }
     
     i=i+1;
     j=j-1;
  }   
 
  if (palindromo==true){
     JOptionPane.showMessageDialog(null,"Es palindromo" );
  }else{
     JOptionPane.showMessageDialog(null,"No es palindromo " );
  }
     
     
 }
   
   
}

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: Es Palindromo?
« Respuesta #11 en: Martes 13 de Mayo de 2008, 03:47 »
0
Con el simbolo "!"
Código: Text
  1. if (!exp.equals(exp3)){}
  2.  
o
Citar
if (exp != exp2){}

Ric_Monje

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #12 en: Martes 13 de Mayo de 2008, 03:50 »
0
Jejeje compañero, he aprendio algo nuevo, no sbia que existia

Código: Text
  1.  
  2. if (!exp.equals(exp3)){}
  3.  
  4.  


Nota: Ando en el chat  :whistling: ..cualquier cosa hay nos vemos


Ric_Monje

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #13 en: Martes 13 de Mayo de 2008, 04:28 »
0
Bueno amigo, creo que con os post anteriores ya has comprendio aprendido y corregido muchas cosas, ahora es solo poner en practica lo aprendido.. mira este codigo y estudialo.

Código: Text
  1.  
  2. import javax.swing.*;
  3. public class palindromo {
  4.  
  5.   public static void main (String [] args) {
  6.     int i;
  7.     String palabra;
  8.     boolean palindromo;
  9.  
  10.     palabra=JOptionPane.showInputDialog(&#34;Introduzca la palabra&#34;);
  11.     i=0;
  12.     int j=palabra.length();
  13.  
  14.  
  15.     palindromo=true;
  16.     while (i != palabra.length()){
  17.       if(!(palabra.substring(i,i+1)).equals(palabra.substring(j-1,j))){
  18.         palindromo=false;
  19.       }
  20.       i=i+1;
  21.       j=j-1;
  22.     }
  23.  
  24.     if (palindromo==true){
  25.       JOptionPane.showMessageDialog(null,&#34;Es palindromo&#34; );
  26.     }else{
  27.       JOptionPane.showMessageDialog(null,&#34;No Es palindromo&#34; );
  28.     }
  29.  
  30.   }
  31. }
  32.  
  33.  


frealgagu

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
    • http://frealgagu.4shared.com
Re: Es Palindromo?
« Respuesta #14 en: Miércoles 14 de Mayo de 2008, 23:30 »
0
Ya intentaron con estas palabras?

SeVerlasAlReves

AnitaLavaLaTina
DabaleArrozALaZorraElAbad
ALaManuelaDaleUnaMala
ALaTorreDerrotala
OlíSalEnEsaMarranaSuGasArdeYSiMiVolumenEmulóViMisYedrasAgusanarRamasEnElAsilo
SedaDeLosAiresOigaDaLaLuzALaAlbahacaHablaAlAzulAlAdagioSeriaSoledadEs


digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #15 en: Miércoles 14 de Mayo de 2008, 23:40 »
0
Si funciona, pero se deben escribir o en mayuscula o en minuscula cada letra,
para evitar eso , se me ocurre que habria que mandar a poner todo el string o cadena a mayus o minus en el programa, antes de que empiece a hacer las comparaciones.

GRACIAS.
Y SALUDOS.

Ric_Monje

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Es Palindromo?
« Respuesta #16 en: Lunes 19 de Mayo de 2008, 00:39 »
0
Cita de: "digichap28"
Si funciona, pero se deben escribir o en mayuscula o en minuscula cada letra,
para evitar eso , se me ocurre que habria que mandar a poner todo el string o cadena a mayus o minus en el programa, antes de que empiece a hacer las comparaciones.

GRACIAS.
Y SALUDOS.
Pues no es necesario hacer eso, solo es modificar donde dice equals por equalsIngnoreCase (No se si esta bien escrito) y de esta forma el compara los char o string sin importar si son mayusculas o minusculas.