Hola a todos, hoy os voy a explicar como podemos indicar que una cadena es un palíndromo o no.
Un palíndromo es una palabra que se lee igual de izquierda a derecha como de derecha a izquierda. Por ejemplo, la palabra alola si la invertimos es igual que la original.
Os dejo un tutorial sobre como podemos invertir una cadena en PseInt:
https://discoduroderoer.es/como-invertir-una-cadena-en-pseint/
La idea es que si invertimos la cadenaOriginal, guardándola en una variable. Si la cadena invertida es igual a la original es un palíndromo.
Recomiendo que la cadenaOriginal la convirtamos a minúsculas para evitar problemas.
[code]Proceso testPalindromo
definir cadenaOriginal, cadenaInvertida como cadena;
cadenaInvertida <- «»;
Escribir «Escribe una palabra»;
leer cadenaOriginal;
cadenaOriginal <- Minusculas(cadenaOriginal);
cadenaInvertida <- invertirCadena(cadenaOriginal);
Si cadenaOriginal = cadenaInvertida Entonces
Escribir «La palabra es un palindromo»;
SiNo
Escribir «La palabra no es un palindromo»;
FinSi
FinProceso
SubProceso cadenaInvertida <- invertirCadena ( cadenaOriginal )
definir cadenaInvertida como cadena;
definir i como entero;
cadenaInvertida <- «»;
Para i<-longitud(cadenaOriginal)-1 Hasta 0 Con Paso -1 Hacer
cadenaInvertida <- Concatenar(cadenaInvertida, subcadena(cadenaOriginal, i, i));
FinPara
FinSubProceso
Lo podemos hacer como subproceso:
[code]Proceso testPalindromo
definir cadenaOriginal como cadena;
Escribir «Escribe una palabra»;
leer cadenaOriginal;
Si esPalindromo(cadenaOriginal) Entonces
Escribir «La palabra es un palindromo»;
SiNo
Escribir «La palabra no es un palindromo»;
FinSi
FinProceso
SubProceso cadenaInvertida <- invertirCadena ( cadenaOriginal )
definir cadenaInvertida como cadena;
definir i como entero;
cadenaInvertida <- «»;
Para i<-longitud(cadenaOriginal)-1 Hasta 0 Con Paso -1 Hacer
cadenaInvertida <- Concatenar(cadenaInvertida, subcadena(cadenaOriginal, i, i));
FinPara
FinSubProceso
SubProceso palindromo <- esPalindromo ( cadenaOriginal )
definir palindromo Como Logico;
definir cadenaInvertida como cadena;
cadenaOriginal <- Minusculas(cadenaOriginal);
cadenaInvertida <- invertirCadena(cadenaOriginal);
Si cadenaOriginal = cadenaInvertida Entonces
palindromo <- Verdadero;
SiNo
palindromo <- Falso;
FinSi
FinSubProceso
[/code]
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta