crear un programa _ que permita identificar una palabra palindrome!

Iniciado por ~V, 24 Abril 2008, 04:20 AM

0 Miembros y 1 Visitante están viendo este tema.

~V

escriba un programa c++, que permita identificar una palabra "palindrome"
ingrese una palabra de 5 caracteres y el algoritmo
debe ser capaz de enviar un mensaje si es palindrome o no!
_
palindrome palabra q al leer al reves se pronuncia igual ej: salas, oruro ...

mmm... soy noob! :(
__

trate de hacerlo pero no me VA!


#include<stdio.h>
#include<conio.h>

char let[5];

void main()

{

  printf("Ingrese una palabra de 5 letras");
  scanf("%s",let[5]);

if(let[0]==let[4])
{
if(let[1]==let[3])
{
printf("La palabra ingresada es Palindrome");
}
}
else {
printf("La palabra ingresada NO es Palindrome");
}
}


:S

soy xarxa XD:::::::::
:::::::::
eso compilado me dice a todas palinfrome!!

qn me puede ayudar!::: gracias


zhyzura

me temo que tu problema es:
scanf("%s",let[5]);

en realidad deberia de ir:
scanf("%s",let);
recuerda que estas almacenando en una variable no en un arreglo.


ademas tienes agregada la libreria conio y en realidad ni siquera la estas usando...


byebye

y copia los trabajos tal cual los piden. tienes un morro

Kasi

Deberias plantearte el ejercicio para un caso mas general y no uno de 5 letras, pues imaginate que sea una palabra de 11 letras(x decir alguna) te vas a poner a enlazar unos if dentro de otros?

Quedaria mejor planteado con un bucle repetitivo y 2 contadores, uno que cuente desde el principio hasta la mitad(o hasta que alcancen los 2 el mismo valor) y otro que cuente desde el final hacia atras.Y pregunte en cada momento si el contenido en esas posiciones sigue siendo igual, mientras sea igual se sigue recorriendo hasta salir del bucle, bien por que se recorre todo el array o bien por que se hallan valores diferentes.
Suena bastante complicado, pero es sencillito xD

Esta en c++, pero bueno xD

/*
Ejercicio: XX

      Descripción: Palindromos

*/
#include <iostream>
#include <stdio.h>
#define n 15
char palabra[n];
int i=0;
void palindromo(char t[],int nl);
void main()
{
do
{
cout<<"Introduce una palabra caracter a caracter para saber si es palindroma: ";
        cout<<"\nPulse * para terminar.";
   cin>>palabra[i];
   i++;
}
while(palabra[i-1]!='*' && i<n);
palindromo(palabra,i-1);
getchar();
}

void palindromo(char t[],int nl)
{
int i=0,j=nl;
   bool iguales=(t[i]==t[j-1]);
   while(iguales && i<=j)
    {
    iguales=(t[i]==t[j-1]);
    i++;
    j--;
    }
    if(iguales==true)
    cout<<"\nLa palabra es palindroma";
    else
    cout<<"\nLa palabra no es palindroma.";
}//fin


Realmente es un tochazo de codigo para la ***** de ejercicio que es, pero puede servir xD

BETA_V

hola¡¡ espero que sirva¡¡
Código (cpp) [Seleccionar]

/*
  Author: Beta_v
  Date: 24/04/08 14:09

*/

#include  <stdio.h>
#include  <string.h>
#include  <stdlib.h>

int main(int argc, char *argv[])
{
    char *cad="neuquen";
    char *cad2;
    int len=strlen(cad)-1;
    cad2=cad+len;
    len=1;
    while (*cad)
    {
        if (*cad!=*cad2) len=5;
        cad++;
        cad2--;
        }

    if (len==1) printf("\nes palindromo\n");
    else printf("\nno es palindromo\n");
    system("PAUSE");
    return EXIT_SUCCESS;
}

~V

GRacias....

!! muchas de verdad!!!

por sus respuestas :)

_____

especial zhyzura.. era eso :$...

___
y a los dema.. para analizar los suios y aprender mas ..gracias!

eagle17

También podrías pensar en usar una pila, es lo que yo veo mejor si kieres un caso general. Vas copiando una pila en otra y luego las comparas, si son iguales son un palindromo. La clase pila ya viene definida en la STL asi que... mas facil...

Suerte!  :D

carres_91

hola buenos dias, tengo dudas de como realizar una practica de programacion en codigo C. Como hariais este ejercicio?
Busca palíndromos En esta segunda práctica se quiere ser capaz de analizar un texto para encontrar los palíndromos que contiene. Un palíndromo es aquella palabra o frase que puede ser leída tanto de izquierda a derecha como de derecha a izquierda considerando sólo sus letras (se obvian los acentos, espacios y signos de puntuación). Por ejemplo: Palabras: anna. radar. suyas. seis. Frases: Senén tiene seis niños y siete niñas. se esta o no se esta. y ahora menos. es así, burro. y ahora calla, caray. Tenga en cuenta que estas frases son palíndromos, pues consideramos sólo sus letras (ej: "se esta o no se esta" -> "sesonoses"). Como entrada del programa, leeremos un texto formado por un conjunto frases separadas por '.'. Cada frase contendrá una o más palabras (separadas por espacios en blanco o signos de puntuación diferentes de'.'). En el texto sólo encontraremos letras en minúscula sin acentuar. En caso de que se lea de teclado, el texto acabará con el carácter '$'. Por ejemplo: anna. se esta o no se esta. radar. esto no es un palíndromo. $ En caso de que leemos de un fichero no nos hará falta el delimitador de final de secuencia, pues disponemos de herramientas para detectar que hemos leído todo el contenido del fichero. El texto tendrá como máximo una longitud de 1000 caracteres. Las frases tendrán una longitud máxima de 100 caracteres y no habrá más de 10. Finalmente, podemos considerar que el usuario siempre nos da la información de forma correcta. Una vez leído el texto, tendremos que indicar las frases que son palíndromos. Sólo hay que mostrar la frase en "formato palíndromo", no es necesario mantener los signos de puntuación originales. En el ejemplo anterior, la solución sería: anna. sesonoses. radar.[code=c][/code]

LearningSpanishProgrammer

Creo que tambien pueden hacer así:

Código (cpp) [Seleccionar]
// str, strlen(str)
int palindromo1(char palabra[], int length)
{
  if (length <= 0)
    return true;
  else
    return palabra[0] == palabra[length - 1]
        && palindromo1(&palabra[0] + 1, length - 2);
}

// str, strlen(str)
int palindromo2(char palabra[], int length)
{
  for (int i = 0; i < length / 2; ++i)
  {
    if (palabra[i] != palabra[length - 1 - i])
      return false;
  }

  return true;
}

// C++
int palindromo3(const std::string& nice)
{
  std::string::const_iterator first = nice.begin();
  std::string::const_reverse_iterator second = nice.rbegin();
  return std::equal(first, first + nice.size() / 2, second);
}


Hice dos en C y uno en C++
Estoy aprendiendo español, y tu estas aprendiendo programación

s00rk

Cita de: LearningSpanishProgrammer en  8 Noviembre 2011, 13:45 PM
Código (cpp) [Seleccionar]
// str, strlen(str)
int palindromo1(char palabra[], int length)
{
  if (length <= 0)
    return true;
  else
    return palabra[0] == palabra[length - 1]
        && palindromo1(&palabra[0] + 1, length - 2);
}


No deberia ser &palabra[0 + 1] ? O.o