Palindromo en PseInt

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.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *