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://www.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.
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:
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
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta