Frases Capicuas

Necesito ay6uda con esto urgente por favor
"2) Una frase es denominada capicúa si se lee igual de izquierda a derecha como de derecha a izquierda. Por ejemplo, ?Anita lava la tina? es una frase capicúa (si obviamos los espacios en blanco y no somos ?sensibles? a letras mayúsculas y minúsculas). Determine si una frase dada como dato es capicúa."
Agradecería que fuese lo más pronto posible

1 respuesta

1
Respuesta de
Hola.
Lo que preguntas es más fácil de lo que piensas:
Tienes "frase1". Declara dos variables tipo integer: comienzo, fin.
La funcion lo que tiene que hacer es comparar el primer (comienzo = 1) caracter con el ultimo (fin = length(frase1)), y si son iguales comparar el segundo (comienzo := comienzo + 1) con el penultimo (fin := fin - 1), y si son iguales tambien, comparar el tercero (comienzo := comienzo + 1) con el antepenultimo (fin := fin - 1), y asi sucesivamente hasta que:
1- Se llegue a una comparación que de por resultado "falso" (dos caracteres comparados no eran iguales).
2- Se cumpla: comienzo >= fin . Esto significaría que se han hecho todas las comparaciones posibles y todas han sido correctas, por lo que la frase seria capicula.
Pero para que esto funcione bien, antes de ninguna comparación tienes que despreciar los espacios en blanco y las minúsculas, así que lo que harás sera lo siguiente:
- Introduces la frase sin espacios en otra variable de tipo string. Ademas cada inserción la haces con el comando UpCase (para convertir todos los caracteres de la nueva frase en mayúsculas, y así librarnos del problema de diferencia entre minusculas/mayusculas). Esto puedes hacer lo con un bucle for, dentro del cual habrá un IF que comprueba si un carácter es "novacio", y en caso afirmativo lo introduce en la nueva variable en forma de mayúscula( fraseSinEspacios := fraseSinEspacios + Upcase(frase1) ).
Si aun después de esta explicación te interesa saber el código fuente, responde y te respondo con el código, sin ningún problema.
Si tienes más dudas con el pascal preguntame, estaré encantado de ayudarte en todo lo posible.
Un saludo.
Nashgul
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema Pascal o hacer tu propia pregunta: