Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda urgente con programa en C++

Estas en el tema de Ayuda urgente con programa en C++ en el foro de C/C++ en Foros del Web. Buenas gente, soy nuevo programando en C++, y para esta semana tengo que presentar un trabajo, les explico mas o menos, tengo que pedir una ...
  #1 (permalink)  
Antiguo 27/02/2011, 20:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Ayuda urgente con programa en C++

Buenas gente, soy nuevo programando en C++, y para esta semana tengo que presentar un trabajo, les explico mas o menos, tengo que pedir una palabra a un usuario x, el programa debe hacer las siguientes opciones:
1. Guardar esa palabra en un arreglo
2. Eliminar x palabra
3. Imprimir el arreglo
4. Ver si x palabra es palindromo o no
5. Salir del programa

Ya pude hacer el codigo para saber si la palabra es palindromo, lo que no he podido es ingresar x palabra a un arreglo y con esto desplejar las demas opciones.

Aca les dejo lo que tengo hasta el momento:

Les agradecería enormemente la ayuda que me puedan brindar gente...buena nota y gracias por adelantado

Código C++:
Ver original
  1. #include "iostream.h"
  2. #include "conio.h"
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <conio.h>
  6. #include <dos.h>
  7. #define MAX 100  
  8. #define Valor_Error -9999
  9.  
  10. // Declaramos la variable tipo Cadena, de longitud maxima MAX
  11. typedef char Cadena[MAX];
  12. typedef char pal[];
  13. // Declaramos la variable tipo Caracter, de longitud 1
  14. typedef char Caracter;
  15.  
  16.  int x,ind;
  17. // Devuelve la longitud de una cadena
  18. int longitud(Cadena cadena)
  19. {
  20.    int i=0;
  21.    
  22.    while(cadena[i]!='\0')
  23.    {
  24.       i++;
  25.    }
  26.    
  27.    return i;
  28. }
  29.  
  30. // Determina si una cadena es un palindromo
  31. bool esPalindromo(Cadena cadena)
  32. {
  33.      Caracter caracter1, caracter2;
  34.      int longCadena, mitad, posCaracter1, posCaracter2, i;
  35.      bool esPalindromo=true;
  36.      
  37.      // tamCadena: longitud de la cadena
  38.      longCadena=longitud(cadena);
  39.  
  40.      /*
  41.      (tamCadena-1)/2: mitad de los caracteres efectivos a evaluar
  42.      */
  43.      // Verificamos si la longitud de la cadena es par            
  44.      if(longCadena%2==0)
  45.      // mitad: Posicion que indica la posicion del caracter hasta el cual recorreremos
  46.          mitad=longCadena/2-1;
  47.      else
  48.          mitad=longCadena/2;
  49.          
  50.      i=0;
  51.        
  52.      /* el indice i se detendra hasta llegue a mitad o hasta que
  53.      ya se halla determinado que esPalindromo es false*/
  54.      while(i<=mitad&&esPalindromo)
  55.      {
  56.          /*
  57.          caracter1 y caracter2 seran detrminados tomando los extremos de la subcadena
  58.          segun el indice i
  59.          */
  60.          posCaracter1=i;
  61.          posCaracter2=longCadena-1-i;
  62.          caracter1=cadena[posCaracter1];
  63.          caracter2=cadena[posCaracter2];
  64.              
  65.          if(caracter1!=caracter2)
  66.                 esPalindromo=false;
  67.              
  68.          i++;
  69.      }              
  70.      
  71.      return esPalindromo;                      
  72. }
  73.  
  74. typedef int posicion, logico;
  75.  
  76. struct Lista {Cadena elems [MAX];posicion ultimo;};
  77.  
  78.  
  79. typedef struct Lista lista;
  80.  
  81. void Inicializa (lista &L);
  82. void Elementos (lista &L);
  83. void Elimina (lista &L);
  84. logico Vacia(lista L);
  85. logico Llena (lista L);
  86. posicion Fin (lista L);
  87. posicion Primero (lista L);
  88. posicion Ultimo (lista L);
  89. logico Inserta (Cadena x, posicion p, lista &L);
  90. logico Elimina (posicion p, lista &L);
  91. posicion Localiza (Cadena x, lista L);
  92. void Imprime (lista L);
  93. //Cadena RecuperaValor (posicion p, lista L);
  94.  
  95. int main()
  96. {
  97.     int res=1, posicion;
  98.     Cadena cadena;
  99.     lista LISTA;
  100.     Inicializa(LISTA);
  101.     do{
  102.     printf("Que desea realizar: \n1. Ingresar palabras\n2. Ver si es palindromo.\n3. Salir.\n=>");
  103.     scanf("%d", &x);
  104.     ind=1;
  105.     while(ind==1){
  106.                
  107.     switch (x){
  108.            case 1: Elementos(LISTA); break;
  109.            case 2:
  110.      Cadena cadena;    
  111.      cout<<"Ingrese la cadena: "<<endl;
  112.      cin.getline(cadena,MAX);    
  113.      if(esPalindromo(cadena))
  114.               cout<<"SI es palindromo";
  115.      else
  116.               cout<<"NO es palindromo";                            
  117.      cout<<endl;
  118.      system("PAUSE");
  119.      ind=0;
  120.      break;
  121.            case 3:
  122.           printf("Gracias");
  123.           getch();
  124.           res=0;
  125.           return 0;
  126.           break;
  127.            }
  128.            }
  129.            }while(res=1);
  130.      return 0;
  131. }
  132.  
  133. /////////////////////////////////////////////
  134.  
  135. void Inicializa (lista &L){
  136.      L.ultimo=-1;}
  137.      
  138. /*//////////////////////////////////////////////
  139.  
  140. Cadena RecuperaValor (posicion p, lista L) {
  141.           if (!Vacia (L) && p >= Primero (L) && p <= Ultimo(L))
  142.            return (L.elems [p]);
  143.           else
  144.            return (NULL);
  145.   }
  146.  
  147. //////*/////////////////////////////////////////
  148.  
  149. void Elementos (lista &L)  // Esta funcion es la que inserta los digitos en la lista
  150. {
  151.      int n,i;
  152.      Cadena x;
  153.       system ("cls");
  154.       cout << ("Numero de elementos en la lista? :  ");
  155.       scanf ("%d", &n);
  156.       for (i=1; i<=n; i++)
  157.        {
  158.         printf("\Elemento %d:  ",i);
  159.         scanf("%d", &x);
  160.         Inserta(x, Fin (L), L);
  161.         }
  162.       system("cls");
  163.         Imprime (L);
  164.         getch ();
  165.       }
  166.      
  167. //////////////////////////////////////////////////
  168.  
  169. void Imprime (lista L)
  170. {
  171.      int i;
  172.       if (Vacia (L))
  173.        cout<<("\nLa lista esta sin nada\n");
  174.       else
  175.        {
  176.          for(i=0; i<=L.ultimo; i++)
  177.            printf ("\n%d. - %d\n", i+1, L.elems[i]);          
  178.            }
  179.        }
  180.        
  181. ////////////////////////////////////////////////////
  182.  
  183.        logico Vacia(lista L)
  184.  {
  185.        if (L.ultimo==-1)
  186.        return(1);
  187.        else
  188.        return (0) ;
  189. }
  190.  
  191. ////////////////////////////////////////////////////
  192.  
  193. posicion Fin (lista L)
  194.          {
  195.          return (L.ultimo+1);
  196.          }
  197.        
  198. ////////////////////////////////////////////////////
  199.  
  200. logico Inserta (Cadena x, posicion p, lista &L)
  201.        {
  202.        int i;
  203.        if (Llena (L) || (p<Primero(L) || p>Fin(L)))
  204.         return (0);
  205.        else        
  206.         {                
  207.            for(i=L.ultimo; i>=p; i--)
  208.            L.elems[i+1]=L.elems[i];
  209.            L.elems [p] = x;
  210.            L.ultimo++;
  211.             return (1);
  212.             }  
  213.        }
  #2 (permalink)  
Antiguo 28/02/2011, 07:00
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: Ayuda urgente con programa en C++

Hola, lo vi medio rapido, pero te digo algunas cosas que te pueden tirar errores...

En main no declaraste int x que usas en el menú.
En el switch te hacen falta abrir y cerrar llaves en el case 2 y case 3, ya que tienen mas de una instrucción.

Tal vez no te solucione el programa, pero te va a sacar algunos errores, cuando pueda vuelvo.
Saludos
  #3 (permalink)  
Antiguo 07/03/2011, 16:16
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 2 meses
Puntos: 9
Respuesta: Ayuda urgente con programa en C++

falta
using namespace std;

Etiquetas: programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:32.