Saltar al contenido
EjemplosEnglishEspacio →

Palíndromos

Revisa si una frase se lee igual al derecho y al revés.

Nivel
Intermedio
Tema:
Texto
Conceptos:
Entrada y salida
Texto
Para
Si
Abrir en Codoritmo

Ejecuta, modifica y depura este ejemplo en el navegador.

Lo que aprenderás

Subcadena saca una letra a la vez y Minusculas las normaliza. Un Para con Con Paso -1 recorre el texto al revés para construir la versión invertida.

Código

palindrome.psc · 23 líneas
Algoritmo Palindromo    Definir frase, limpia, invertida, letra Como Caracter    Definir i Como Entero    Escribir "Escribe una palabra o frase:"    Leer frase    // Quitamos los espacios y pasamos todo a minúsculas    limpia <- ""    Para i <- 1 Hasta Longitud(frase) Hacer        letra <- Minusculas(Subcadena(frase, i, i))        Si letra <> " " Entonces            limpia <- limpia + letra        FinSi    FinPara    invertida <- ""    Para i <- Longitud(limpia) Hasta 1 Con Paso -1 Hacer        invertida <- invertida + Subcadena(limpia, i, i)    FinPara    Si limpia = invertida Entonces        Escribir 'Sí, "', frase, '" es un palíndromo.'    SiNo        Escribir 'No es un palíndromo: al revés se lee "', invertida, '".'    FinSiFinAlgoritmo

Diagrama de flujo

Cada bloque del diagrama corresponde a una instrucción del código.

Algoritmo PalindromoSíNoSíNoAlgoritmo PalindromoAlgoritmo PalindromoDefinir frase, limpia, invertida, letra Como CaracterDefinir frase, limpia,invertida, letra Como CaracterDefinir i Como EnteroDefinir i Como EnteroEscribir "Escribe una palabra o frase:"Escribir "Escribe una palabrao frase:"Leer fraseLeer fraselimpia <- ""limpia <- ""Para i <- 1 Hasta Longitud(frase) HacerPara i <- 1 HastaLongitud(frase)letra <- Minusculas(Subcadena(frase, i, i))letra <-Minusculas(Subcadena(frase, i,i))Si letra <> " " Entoncesletra <> " "limpia <- limpia + letralimpia <- limpia + letrainvertida <- ""invertida <- ""Para i <- Longitud(limpia) Hasta 1 Con Paso -1 HacerPara i <- Longitud(limpia)Hasta 1 Con Paso -1invertida <- invertida + Subcadena(limpia, i, i)invertida <- invertida +Subcadena(limpia, i, i)Si limpia = invertida Entonceslimpia = invertidaEscribir "Sí, "", frase, "" es un palíndromo."Escribir "Sí, "", frase, "" esun palíndromo."Escribir "No es un palíndromo: al revés se lee "", invertida, ""."Escribir "No es un palíndromo:al revés se lee "", invertida,""."FinAlgoritmoFinAlgoritmo

Ejemplo de ejecución

Esto muestra el programa al ejecutarlo. Las respuestas escritas por el usuario aparecen resaltadas.

Escribe una palabra o frase:Respuesta del usuario: Anita lava la tinaSí, "Anita lava la tina" es un palíndromo.

Desafío

Ignora también las comas y los puntos, para que "Yo hago yoga, hoy." cuente como palíndromo.

Ver pista

Amplía la condición del Si que descarta los espacios.

Abrir en Codoritmo