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
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...
y copia los trabajos tal cual los piden. tienes un morro
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
hola¡¡ espero que sirva¡¡
/*
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;
}
GRacias....
!! muchas de verdad!!!
por sus respuestas :)
_____
especial zhyzura.. era eso :$...
___
y a los dema.. para analizar los suios y aprender mas ..gracias!
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
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]
Creo que tambien pueden hacer así:
// 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++
Cita de: LearningSpanishProgrammer en 8 Noviembre 2011, 13:45 PM
// 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
Cita de: s00rk en 8 Noviembre 2011, 14:26 PMNo deberia ser &palabra[0 + 1] ?
Ambas son equivalentes y resultan en la direccion en memoria del segundo elemento del array. Para el caso la forma mas corta es "palabra + 1".
Un saludo
MATLAB !! Hola amigos, les escribo para ver si hay algún crak me puede ayudar con el desarrollo de estos programas que son de una tarea, desde ya muchas gracias por su tiempo =):
4. Desarrolle un programa que permita visualizar la forma de onda de la energía eléctrica domiciliaria, con sus respectivos valores y mostrar en pantalla. (ogata de control)
5. Desarrolle un programa que permita leer fotografías de un archivo en el computador ( 30 como minimo)
6. Luego el programa debe mostrar el nbumero de filas y columnas de la foto en blanco y negro.
7. Desarrolle un programa que permita tomar imágenes desde la cámara de computador y guardar el archivo.
#include <stdio.h>//Libreria para E/S
#include <conio.h>//Funcion getch()
#include <string.h>//libreria para manejo de librerias
#include <windows.h>//funcion color
#include <malloc.h>//Trabajo con memoria dinámica
char palabra[200]={0}, *aux;//variables globales
int main(int argc, char *argv[]){
system("color 1f");
printf("\t\t\tPalindromo\n");
printf("\t\t\tEscribe la palabra\n");
printf("\t\t\t\t");
fflush(stdin);
gets(palabra);//lectura de la palabra
aux=(char *)malloc(strlen(palabra)+1*sizeof(char));//reservacion de memoria dinámica
strcpy(aux, palabra);//se copian las cadenas
aux=strrev(aux);//se invierte
if(strcmp(aux, palabra)==0){//Se compara si son iguales las cadenas
printf("\t\t\tEs palindromo\n");
}else{
printf("\t\t\tNo es palindromo\n");
}
free(aux);//se libera la memoria
getch();
}