SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: El Novato en Sábado 22 de Mayo de 2004, 19:12

Título: Programa En C++
Publicado por: El Novato en Sábado 22 de Mayo de 2004, 19:12
Hola, espero que me puedan ayudar, y de ante mano gracias.
Tengo un ligero problema con un programa en c++, que tiene que evaluar una palabra y mostrar como resultado si es o no un palindromo, hasta el momento he trabajado con solo esto.



#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>

int palindromo (char palabra [80]);

void main () {
   clrscr ();
   char palabra [80], r=0, a;
   cout<<"Escribe la palabra a evaluar: ";
   cin.getline (palabra,80);
   r=palindromo (palabra);
   cout<<"\n\nLa palabra "<<r<<" es un palindromo";
   getch ();
   }

int palindromo (char palabra [80]) {
   char a [80], res=0;
   strcpy (a,palabra);
   strrev (a);
   if (strcmp (palabra,a)) {
      res=0;
   }
   else
      res=1;
   return (res);
   }



espero que me haya explicado bien, lo que pasa es que es mi primer mensaje.
Título: Re: Programa En C++
Publicado por: © Jonathan © en Sábado 22 de Mayo de 2004, 23:04
Lindo codigo :D ... deberias especificar el problema que te hace, asi te podriamos ayudar, lo que pasa es que algunos no podemos compilar codigos de aqui debido al tiempo, si especifica un poco mas te ayudaremos mejor. Saludos :hola:
Título: Re: Programa En C++
Publicado por: lordford en Sábado 22 de Mayo de 2004, 23:09
Hola:

el algoritmo no esta mal, aunque tiene detalle que luego te dire por razones de tiempo no te respondo, pero el problema se puede simplificar si usas una pila y un array auxiliar, luego comparas y ya esta !!!!!


Mas o menos asi:

entrar palabra,
llenar la pila con los caracteres de la palabra,
vaciar la pila y llenar el array auxiliar,
comparar cadenas,
retornar si es o no palindrome.


Es solo eso, aunque se puede optimizar mas.

Espero que te ayude

Salu2,

 :hola:  :smartass:  :o  :D

LordFord
Título: Re: Programa En C++
Publicado por: Ezdlir en Domingo 23 de Mayo de 2004, 06:22
Cita de: "El Novato"
   cout<<"\n\nLa palabra "<<r<<" es un palindromo";
Hola... lo único que veo mal es el mensaje que muestra el resultado: siempre escribís "La palabra <valor de r: caracter 0 o 1> es palíndromo". Creo que deberías ver qué valor tiene r para saber si es palabra palíndrome o no.

Saludos
Ez.
Título: Re: Programa En C++
Publicado por: Blag en Domingo 23 de Mayo de 2004, 15:04
Estoy de acuerdo con Ezdlir.....el código debería de quedar así.....

Código: Text
  1.  
  2. r=palindromo (palabra);
  3. if r == 0
  4. cout&#60;&#60;&#34;&#092;n&#092;nLa palabra &#34;&#60;&#60;palabra&#60;&#60;&#34; es un palindromo&#34;;
  5. else
  6. cout&#60;&#60;&#34;&#092;n&#092;nLa palabra &#34;&#60;&#60;palabra&#60;&#60;&#34; no es un palindromo&#34;;
  7.  
  8.  

Saludos,

Blag  :devil:
Título: Re: Programa En C++
Publicado por: Noel Solw en Lunes 24 de Mayo de 2004, 10:24
Otra forma de revisar palindromos (para cadenas)

char a[50],b[50];
cin >> a;
strcpy(b,a); // copia b = a;
strrev(b);   // invierte b
if(strcmp(a,b))
   cout << "no ";
cout << "es capicua" << endl;
Título: Re: Programa En C++
Publicado por: scatterbrain en Martes 25 de Mayo de 2004, 19:34
:)
que es un palindromo?

 :P
Título: Re: Programa En C++
Publicado por: Blag en Martes 25 de Mayo de 2004, 19:55
Citar
que es un palindromo?

Es una palabra que lee igual de derecha a izquierda que de izquierda a derecha.......por ejemplo:

SOMOS
ANA


Saludos,

Blag  :devil:
Título: Re: Programa En C++
Publicado por: scatterbrain en Martes 25 de Mayo de 2004, 20:14
ahhh, muchas gracias
Título: Re: Programa En C++
Publicado por: El Novato en Jueves 27 de Mayo de 2004, 17:03
Hola a todos, quiero decirles que su ayuda me sirvio de mucho,
y que de nuevo agradezco que se hayan tomado el tiempo para contestar.