Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Lepizz en 14 de Mayo 2015, 20:44

Título: Ejemplo palabras palíndromas concepto código Java y pseudocódigo palíndromos
Publicado por: Lepizz en 14 de Mayo 2015, 20:44
Buenas necesito ayuda con un pseudocódigo de un programa que pida palabras o frases palíndromas, con el fin de que el programa imprima si la palabra es palíndroma o no.
Necesito que sea solo un Pseudocódigo más que en un lenguaje especifico. Si me pueden ayudar gracias de antemano.
Título: Re:Pseudocodigo de polindromas
Publicado por: javi in the sky en 15 de Mayo 2015, 00:01
Hola voy con la respuesta, un palíndromo es una palabra que se lee igual de izquierda a derecha y de derecha a izquierda.

Ejemplo: reconocer es un palíndromo

El algoritmo para determinar si una palabra es un palíndromo puede ser descrito informalmente así: hay que comparar todos los pares de letras comenzando desde los extremos hacia el centro. Si todos los pares son iguales, entonces la palabra sí es un palíndromo. Basta que se encuentre un par de letras correspondientes distintas para que la palabra no sea un palíndromo.

Pseudocódigo:
Código: [Seleccionar]
Inicio
Mostrar 'Ingrese la palabra'
Pedir palabra
i = 1
j = longitud(palabra)
hacer mientras (extraerLetra(palabra, i) = extraerLetra(palabra,j) y i < j) {
        i = i + 1
        j = j - 1
Fin HacerMientras
Si (i >= j) entonces
     Mostrar "La palabra ", palabra, " es palindromo"
Sino
 Mostrar "La palabra ", palabra, " es palindromo"
FinSi
Fin


Ejemplo implementación en java:

Código: [Seleccionar]
public class Palindromo {
    public static void main(String[] args) {
        String[] palabras = {"reconocer","asdfdsa","AsDdSa","Sale El As","No palindromos","Cualquier frase","O palabra","Que no sea palindromo"};
        int indice = (int)(Math.random() * palabras.length);
        System.out.println("Palabra utilizada: "+ palabras[indice]);
        if (palindromo(palabras[indice]))
            System.out.println("Palindromo");
        else
            System.out.println("NO Palindromo");
    }
    static boolean palindromo(String palabra)
    {
        //Quitar espacios y convertirlo a minusculas para hacer las comparaciones
        String modificado = palabra.replaceAll(" ","").toLowerCase();
        int i=0;
        while (i < modificado.length() / 2)
        {
            if (modificado.charAt(i) != modificado.charAt(modificado.length() -1 -i))
                return false;
            i++;
        }
        return true;
    }
}
Título: Re:Pseudocodigo palabras palíndromas y código Java palíndromos
Publicado por: Lepizz en 16 de Mayo 2015, 21:38
Me fue de mucha ayuda.. gracias no voy a copiar su código, no sea q me acusen de plagio en la U, pero me voy a guiar partiendo de el. supongo q si fuera una frase como "Se van sus naves" habría que declarar:
Que el espacio, la coma, y los puntos (en caso de que esten presentes) son nulos.. osea para q el cursor q compara la primera y la ultima letra, luego la segunda con la antepenultima, y asi sucesivamente en caso de topar con con un espacio, avance al siguiente caracter, espero haberme explicado bien.. creo q mi idea seria algo asi como:

x=""
y=","
z="."

x= null
y=null
z=null

y tal vez algo como:
si el caracter es igual a "X", "y" o "z" entonces

i +1 (en su ejemplo)

algo asi?
Título: Re:Pseudocodigo palabras palíndromas y código Java palíndromos
Publicado por: Alex Rodríguez en 18 de Mayo 2015, 14:19
Hola Lepizz como comentas para evaluar palíndromos suelen quitarse los espacios, de hecho en el código java anterior aparecer reflejado:

//Quitar espacios y convertirlo a minusculas para hacer las comparaciones

Es decir, a la hora de comparar no se tendrían en cuenta espacios ni mayúsculas / minúsculas, aunque esto depende de cómo se quiera hacer.

Saludos