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.