viernes, 11 de noviembre de 2011

11/11/11: Capicuas, palíndromos y php, todo en uno.

Buenos días a quien lea el blog.

Como sabéis, o deberíais saber, hoy es 11 de noviembre del 2011. O lo que es lo mismo, 11/11/11. Es curioso cómo en el mundo de las matemáticas los números capicua tienen también su aquel, como es en el caso de los Primos de Fermat.

¿A qué viene todo esto? Pues esta mañana a primera hora mi tutor (@fjagui) nos ha recordado lo curioso de la fecha del día de hoy y, asociándolo a la asignatura que nos imparte (Implantación de Aplicaciones Web) nos ha propuesto crear un pequeño script php que nos ayude a saber si una cadena es palíndroma o no (una palabra palíndroma es aquella que se lee igual al derecho que al revés, es el equivalente en letras a los números capicuas).

A la hora de crear el script tenemos en cuenta que php contiene una función muy útil para este propósito: la función strrev() la cual invierte una cadena.

Aquí los códigos de las dos páginas creadas para tal objetivo, consulta.php en la que tenemos el formulario que recoge la cadena y respuesta.php en la que invertimos la cadena y la comparamos con la original para ver si coincide o no.


consulta.php

//Esta es la cabecera de la página

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html charset=utf-8" />
<title>Crear BBDD de Servidores</title>
<link rel="stylesheet" type="text/css" href="/css/index.css">
</head>

<body>


//Aquí tenemos un texto que dará una pequeña explicación sobre el funcionamiento de la página

<h1>¡El palindromotizador!</h1>
<h2>Rellenando este sencillo formulario podrás averiguar si lo que has escrito en él es un palíndromo o no. Recordemos que una palabra palíndroma es aquella que se lee igual de izquierda a derecha que de derecha a izquierda (por ejemplo, radar es palíndroma, casa no).</h2><br><h2>En el caso de tratarse de números, la palabra que se usa es CAPICUA.</h2><br>
Nota: Debido a que lo he hecho en 15 minutos no he podido pulir el script por lo que los textos que pongáis han de ser en minúsculas/mayúsculas en su totalidad, omitir signos de puntuación (comas, puntos, etc) y acentos y no estar separadas las palabras con espacios.</br>

//Comenzamos el formulario que recogerá la cadena dada por el usuario

<form action="respuesta.php" method="post">

<br>Palabra / frase / número a palindromotizar: <input type="text" name="palindromo" />
<input type="submit" value="¿Es un palíndromo?" />
</form>

//final del formulario y de la página de la consulta

</body>
</html>



respuesta.php

//Esta es la cabecera de la página

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html charset=utf-8" />
<title>Crear BBDD de Servidores</title>
<link rel="stylesheet" type="text/css" href="/css/index.css">
</head>

<body>


//Comienza el script php y recogemos la cadena dada en consulta.php por método "post".  También usamos la función "strrev()" para invertir la cadena


<?php
$cadena = $_POST['palindromo'];
$invertido = strrev($cadena);



//usaremos una condición, de forma que si se cumple que la cadena inicial es igual que la cadena invertida, la cadena será un palíndromo. En caso contrario nos dará un mensaje avisando de que no lo es.

if ($invertido == $cadena)
{
    echo "La cadena que acabas de introducir se puede leer tanto de izquierda a derecha como de derecha a izquierda, por lo tanto... ¡es un palíndromo!";
}

else
{
    echo "Lo siento," . $cadena . " al revés se lee" . "<br>" . $invertido . "<br>" . "como no coincide con lo inicial, no es un palíndromo";
}
?>

// final del script y de la página

</body>
</html>



No hay comentarios:

Publicar un comentario