Primero que nada hola.
A continuación explicare un programa que desarrolle para la clase de Taller de Programación con el Ing. Carlos Bernardo Treviño que sirve para verificar si una palabra o frase es un palindromo o no. También escribiré un algoritmo de como funciona el programa y explicare parte por parte lo que hace.
Explicación:
El programa lee un arreglo del tipo cadena de caracteres que se desea comprobar si es o no palindromo.Entonces se utiliza la función strlen de la librería string.h para conseguir el largo de la cadena,este se asigna a la variable n.Esta cadena se voltea y se asigna a otro arreglo.Al tenerlos simplemente al derecho y al revés no se puede comprobar simplemente en el programa, ya que los espacios y las mayúsculas( si las contiene) serian diferentes y aunque sea palindromo,el programa te diría que no.Por esto, se procede a omitir los parentesis. A continuación también se utiliza una función tolower (de la librería ctype.h) para cambiar las letras de los arreglos, de mayúsculas a minúsculas,por si tienen,para que pueda comprobar bien .
Tal vez tenga pasos que sean innecesarios como voltear la palabra,pero los considere importantes.Dentro del programa puse comentarios para explicar parte a parte el código.
.:Descargar:.
Algoritmo:
Donde n es el largo de la frase,i indica el inicio del arreglo,y pal y lap son cadenas de caracteres.
1. Primero se lee la palabra o frase,y esta se asigna a un arreglo del tipo caracter pal,cada letra de la cadena de caracteres se almacenara en una casilla de el arreglo pal.
2. Despues se procede a voltear la palabra asignando a la primera casilla del arreglo lap,la ultima letra del arreglo pal de la siguiente manera, lap[i]=pal[n], lap[i+1]=pal[n-1], etc.
3. Ahora se procede a eliminar los espacios,para esto se pasaran todos los caracteres del arreglo pal,exceptuando los espacios, a una variable pal0, y todos los caracteres del arreglo lap, a el arreglo lap0,de nuevo exceptuando los espacios.Con esto se obtiene de nuevo n, ya que sin espacios,cambiara su largo amenos que sea solamente una palabra.
5. A continuación se cambian todas las mayúsculas por minúsculas en ambos arreglos,para evitar confusiones.
4.Ya teniendo esto se procede a leer letra por letra cada arreglo repitiendo el siguiente proceso:pal0 empieza desde i y aumenta hasta n,y lap0 comienza desde n y disminuye hasta i,comparando si estos son iguales.Si todos los valores son iguales,se obtiene e=1. De otra manera si alguno no es igual,se obtiene e=0 y se termina la repetición.
5. Si e es igual a 1, la cadena de caracteres es un palindromo y se termina.De otra forma la frase no es un palindromo,y se termina.
Saludos.
Exelente programa ;)
ResponderEliminarjajajaja gracias... eso creo ¬¬
ResponderEliminar