elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 [2] 3
11  Programación / Programación C/C++ / Re: problema de medioprincipiante usando arreglos n.nU en: 19 Septiembre 2010, 21:29 pm
Citar
a=i
for(i=a;i>=O;i++){
imprime datos
}

creo que deberias hacer esto
 mostrar()
   {empiezas a recorre el vector
        si vector en pos x!=0 
              imprimes
        si no
               nada xD(vuelve al for)           
   }

12  Programación / Programación C/C++ / Re: problema de medioprincipiante usando arreglos n.nU en: 19 Septiembre 2010, 05:32 am
Yo tambien veo estructuras, soy nuevo en esto pero creo que algunos de tus errores son:

1. TDA Pila (LastIn-FirstOut) Cuando extraes no validas eso e imprimes tu arreglo al revés
2. dd y aa lo usas para lo mismo, por lo tanto usa solo una
3. te imprime basura por que no inicializas tu vector, podrias inicializar tu vector en 0 y cuando vayas a imprimir validas que solo imprima si es diferente de 0

Te dejo un link donde te explican mejor el funcionamiento de una pila
http://8556080156135426046-a-1802744773732722657-s-sites.googlegroups.com/site/rcalderonmoreno/PILAS.pdf?attachauth=ANoY7cp0m1D2qP_BeLxSUB7i1euyIzRrSAh71g99KmR-KpLLzpOAI6AW-QbRRwuWO4GQ9rYt8LXn51XWIgna7YUdMpxDiFMZ074fi5GQFp45pFtIZReYW9O_Yoox9gFEwP2Yj_Q-yV9Sg95Rryn37rIx4trQ_xJJFEcHIInvvjeFTKRtY7p0tFxtNDeEmJR4kQxd2EjDEYkP&attredirects=0
13  Programación / Programación C/C++ / Unas Veces Lo Hace Bien Otras No :S (Plis Urgente) en: 12 Septiembre 2010, 23:22 pm
Basicamente El Programa Debe Hacer Una Lista Circular Con n nombres, y despues eliminarlo hasta que kede solo 1, el problema es que a veces toma como borrado un nodo sin haberlo eliminado (si me hice entender)
Código
  1. /*****************
  2. Librerias
  3. *****************/
  4. #include <stdio.h>
  5. #include <conio.h>
  6. #include <iostream.h>
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. /*Clase nodo*/
  10. class nodo
  11.     {public:
  12.      char info[30];
  13.     nodo *sig;
  14.      nodo *generar_nodo(char a[30])
  15.          {nodo *n;
  16.        n=new nodo[30];
  17.           strcpy(n->info,a);
  18.        n->sig=NULL;
  19.        return n;}
  20.      };
  21. /*Clase lista*/
  22. class lista_circular
  23.     {public:
  24.      nodo *cab;
  25. int cant;
  26.      lista_circular()
  27.         {cab=NULL;
  28.          cant=0;}
  29.      insertar(char a[30]);
  30.      extraer(int dato2);
  31.      mostrar();
  32.     };
  33. /*Inserta en la lista*/
  34. lista_circular::insertar(char a[30])
  35.    {char cad[30];
  36.     strcpy(cad,a);
  37.     nodo *nuevo=nuevo->generar_nodo(a);
  38.     if(!cab)
  39.       {cab=nuevo;
  40.      cab->sig=nuevo;
  41.        cant++;}
  42.     else{nodo *p;
  43.          p=cab;
  44.          while(p->sig!=cab)
  45.               {p=p->sig;}
  46.          p->sig=nuevo;
  47.          p=p->sig;
  48.          p->sig=cab;
  49.          cant++;}
  50.     }
  51. /*muestra la lista*/
  52. lista_circular::mostrar()
  53.    {nodo *p=cab;
  54.  while(p->sig!=cab)
  55.          {cout<<p->info<<endl;
  56.       p=p->sig;}
  57.     cout<<p->info<<endl;}//Cierro Mostrar
  58.  
  59. /*Extrae de la lista*/
  60. lista_circular::extraer(int dato2)
  61.    {if(cab)
  62.       {nodo *p,*q;
  63.      p=cab;
  64.        if(dato2==cant-5)
  65.           {while(p->sig!=cab)
  66.                 {p=p->sig;}
  67.         if(cab->sig==cab)
  68.               {cab=NULL;
  69.                cant--;}
  70.         else{cab=cab->sig;
  71.           p->sig=cab;
  72.                 cant--;}
  73.           }
  74.        else{if(dato2==cant)
  75.               {while(p->sig!=cab)
  76.                    {p=p->sig;}
  77.    p->sig=cab;
  78.                cant--;}
  79.             else{for(int i=0;i<dato2;i++)
  80.                     {q=p;
  81.             p=p->sig;}
  82.              q->sig=p->sig;
  83.              cant--;
  84.              delete p;}}
  85. }else{cout<<"  NO EXISTE LISTA\n";}
  86.    }
  87.  
  88. main()
  89.   {lista_circular obj;
  90.    char nombre[30];
  91.    int aux=0;
  92.    for(int i=0;i<5;i++)
  93.       {cout<<"Digite El Nombre "<<i<<" De La Lista: ";
  94.          gets(nombre);
  95.          cout<<endl;
  96.          obj.insertar(nombre);}
  97.    clrscr();
  98.    obj.mostrar();
  99.    int aux2=obj.cant-1;
  100.    for(int i=0;i<aux2;i++)
  101.       {clrscr();
  102.        randomize();
  103.    aux=random(obj.cant)+1;
  104.    cout<<"Cantidad De Elementos "<<obj.cant<<endl<<"Se Elimino El Elemento "<<aux<<" De La Lista."<<endl<<"Lista Actual: "<<endl;
  105.        obj.extraer(aux);
  106.        obj.mostrar();
  107.        getch();}
  108.    getch();}
14  Programación / Programación C/C++ / Re: Urgebte problema con pila estatica :S en: 12 Septiembre 2010, 03:39 am
jejeje si no me habia dado cuenta jejeje pero igual ya compilado y funcionando Gracias
15  Programación / Programación C/C++ / Ayuda Acerca De Listas y Listas Circulares (Revienta Memoria :S) en: 12 Septiembre 2010, 01:49 am
Tengo Un Problema al intentar Extraer un numero de la lista, me revienta memoria, alguien podria decirme por que es :S le he dado vueltas y nada
Código
  1. # include <conio>
  2. # include <iostream>
  3. # include <stdlib>
  4. # define cant 4
  5.  
  6. class nodo
  7.     {public:
  8.      int info;
  9.      nodo *sig;
  10.      nodo(int a)
  11.          {info=a;
  12.           sig=NULL;}
  13.      };
  14. class listac
  15.     {public:
  16.      nodo *cab;
  17.      listac(){cab=NULL;}
  18.      void insertar(int a);
  19.      void mostrar();
  20.      bool buscar(int a);
  21.      void extraer(int a);
  22.      };
  23.  
  24. int main()
  25.    {int a=0;
  26.     listac obj;
  27.     for(int i=1;i<=cant+1;i++)
  28.         {cout<<"Digite El Elemento "<<i<<" De La Lista: ";
  29.          cin>>a;
  30.          cout<<endl;
  31.          obj.insertar(a);}
  32.     obj.mostrar();
  33.     cout<<"Digite El Numero a Buscar: ";
  34.     cin>>a;
  35.     if(obj.buscar(a)==true)
  36.        cout<<"El Numero Buscado Existe En La Lista";
  37.     else
  38.        cout<<"El Numero Buscado No Existe En La Lista";
  39.     cout<<"Digite El Numero a Extraer De La Lista: ";
  40.     cin>>a;
  41.     obj.extraer(a);
  42.     obj.mostrar();
  43.     getch();
  44.     return 0;
  45.    }
  46.  
  47. void listac::insertar(int a)
  48.    {nodo *nuevo=new nodo(a);
  49.     if(!cab)
  50.        {nuevo->sig=nuevo;
  51.         cab=nuevo;}
  52.        else
  53.        {nuevo->sig=cab->sig;
  54.         cab->sig=nuevo;}
  55.    }//cierro Insertar
  56. void listac::mostrar()
  57.    {nodo *p=cab;
  58.     do{p=p->sig;
  59.        cout<<p->info<<" ";}
  60.     while(p!=cab);
  61.    }
  62. bool listac::buscar(int a)
  63.   {nodo *p=cab;
  64.    do{p=p->sig;
  65.       if(p->info==a)
  66.          {return true;}}
  67.       while (p!=cab);
  68.       return false;}
  69. void listac::extraer(int a)
  70.     {nodo*p=cab;
  71.      do{p=p->sig;
  72.         if(p->info=a)
  73.            {while(cab->sig!=p)
  74.                  {cab=cab->sig;
  75.                   cab->sig=p->sig;
  76.                   delete p;
  77.                   break;}//cierro while
  78.            }//cierro if
  79.        }//cierro do
  80.        while (p!=cab);
  81.     }
  82.  
  83.  
16  Programación / Programación C/C++ / Urgebte problema con pila estatica :S en: 11 Septiembre 2010, 05:54 am
lo tenia en estatica se me dio por hacerlo a memoria dinamica y grabe encima ahora no encuentro el error, si alguien lo ve por fa ayudaaa es urgenteeeeeee
Código
  1. #include <iostream>
  2. #include <conio>
  3. #include <stdlib>
  4. #define tama1 10
  5. #define tama2 8
  6. #define tama3 6
  7. class Pila
  8.      {public:
  9.       int tope,y;
  10.       int pila1[tama1];
  11.       Pila(){tope=-1;
  12.              y=0;}
  13.       mostrar()
  14.          {for(int i=0;i<tama1;i++)
  15.                   {cout<<"\tPila1["<<i<<"]="<<pila1[i]<<endl;}}
  16.       insertar(int a)
  17.         {tope++;
  18.          if(tope==tama1)
  19.             {cout<<"\t\t\nPila llena "<<endl;
  20.              tope--;}
  21.          else {pila1[tope]=a;}
  22.          }
  23.       int sacar()
  24.           {if(tope==-1)
  25.            cout<<"\t\t\nPila Vacia ";
  26.            else{
  27.                 y=pila1[tope];
  28.                 pila1[tope]=0;
  29.                 tope--;
  30.                 return y;
  31.                 cout<<"\n\tElemento Eliminado "; }
  32.           }};
  33. class Pil
  34.      {public:
  35.       int tope2,z;
  36.       int pila2[tama2];
  37.       Pil(){tope2=-1;}
  38.        mostrar()
  39.          {for(int i=0; i<tama2;i++)
  40.                   {cout<<"\tPila2["<<i<<"]="<<pila2[i]<<endl;}}
  41.        insertar(int a)
  42.         {tope2++;
  43.          if(tope2==tama2)
  44.             {cout<<"\t\t\nPila llena "<<endl;
  45.              tope2--;}
  46.          else {pila2[tope2]=a;}
  47.          }
  48.        int sacar()
  49.           {if(tope2==-1)
  50.            cout<<"\t\t\nPila Vacia ";
  51.            else{z=pila2[tope2];
  52.                 pila2[tope2]=0;
  53.                 tope2--;
  54.                 return z;
  55.                 cout<<"\n\tElemento Eliminado "; }
  56.           }};
  57. class Pi
  58.      {public:
  59.       int tope3;
  60.       int pila3[tama3];
  61.       Pi(int z)
  62.           {tope3=-1;}
  63.        mostrar()
  64.          {for(int i=0; i<tama3;i++)
  65.                   {cout<<"\tPila3["<<i<<"]="<<pila3[i]<<endl;}}
  66.        insertar(int a)
  67.         {tope3++;
  68.          if(tope3==tama3)
  69.             {cout<<"\t\t\nPila llena "<<endl;
  70.              tope3--;}
  71.          else {pila3[tope3]=a;}
  72.          }
  73.        int sacar()
  74.           {if(tope3==-1)
  75.            cout<<"\t\t\nPila Vacia ";
  76.            else{pila3[tope3]=0;
  77.                 tope3--;
  78.                 cout<<"\n\tElemento Eliminado "; }
  79.           }};
  80. int main()
  81.      {int x=0;
  82.      Pila ob();
  83.      Pil o();
  84.      Pi obj();
  85.      cout<<"\n\nInsercion de Elementos a la Pila1\n";
  86.      randomize();
  87.      while(x<tama1)
  88.        {ob.insertar(random(10));
  89.         x++;}
  90.      ob.mostrar();
  91.      getch();
  92.      for(int i=0;i<tama2;i++)
  93.          {o.insertar(ob.sacar());}
  94.      o.mostrar();
  95.      for(int i=0;i<tama3;i++)
  96.          {obj.insertar(o.sacar());}
  97.      obj.mostrar();
  98.      getch();
  99.      return 0;
  100.      }

EI: juntando mensajes.

ya lo encontre jejeje el rpoblema eran los parentesis en los objetos del amin y el objeto de pi recibia parametro pero ya
17  Programación / Programación C/C++ / Re: Problema con programa... en: 1 Septiembre 2010, 19:38 pm
Código
  1. # include <conio.h>
  2. # include <stdio.h>
  3. # include <iostream.h>
  4.  
  5. class Tiempo
  6.      {public:
  7.       int s,h,m,seg;
  8.  
  9.       Tiempo(){s,h,m,seg=0;
  10.               };
  11.       ~Tiempo(){};
  12.       void time()
  13.         {cout<<"...:::Conversion De Segundos A Horas Minutos y Segundo:::...";
  14.         cout<<"\n\nDigite Los Segundos a Convertir: ";
  15.         cin>>s;
  16.         if(s>=3600)
  17.               {h=s/3600;
  18.                m=(s%3600)/60;
  19.                seg=(s%3600)/60;
  20.                }
  21.         clrscr();
  22.         cout<<"La Conversion de Segundos a Horas Minutos y Segundos es: ";
  23.         cout<<"\n\n"<<h<<" Horas";
  24.         cout<<"\n"<<m<<" Minutos";
  25.         cout<<"\n"<<seg<<" Segundos";
  26.         getch();
  27.        }
  28.      };
  29. main(){
  30.     Tiempo obj;
  31.     obj.time();
  32.     }

Espero Te sirva
18  Programación / Programación C/C++ / Sugerencias en: 1 Septiembre 2010, 19:36 pm
Código
  1. #include <conio>
  2. #include <iostream>
  3. #include <stdlib>
  4. #include <math>
  5.  
  6. class C
  7. {public:
  8.  int *c;
  9.  int r;
  10.  C(){c=new int [10];}
  11.  Union(int q[10],int p[10],int a,int b);
  12.  int suma(int q[10],int a);
  13.  double promedio(int a,int b);
  14.  double varianza(int a,int b);
  15.  double desviacion(int a);
  16. };
  17. main ()
  18.   {int a,z;
  19.    int *conjuntoA;
  20.    int *conjuntoB;
  21.    conjuntoA=new int [10];
  22.    conjuntoB=new int [10];
  23.    cout<<"Digite El Numero De Elementos Del Conjunto A: ";
  24.    cin>>a;
  25.    cout<<"Digite El Numero De Elementos Del Conjunto B: ";
  26.    cin>>z;
  27.    randomize();
  28.    cout<<"\nEl Conjunto A es : ";
  29.    for(int i=0;i<a;i++)
  30.       {conjuntoA[i]=random(100);
  31.        cout<<conjuntoA[i]<<" ";}
  32.    cout<<"\nEl Conjunto B es : ";
  33.    for(int j=0;j<z;j++)
  34.       {conjuntoB[j]=random(100);
  35.        cout<<conjuntoB[j]<<" ";}
  36.    C obj;
  37.    obj.Union(conjuntoA,conjuntoB,a,z);
  38.    cout<<"\nLa Suma De A es :"<<obj.suma(conjuntoA,a);
  39.    cout<<"\nLa Suma De B es :"<<obj.suma(conjuntoB,z);
  40.    cout<<"\nEl Promedio De A Es :"<<obj.promedio(obj.suma(conjuntoA,a),a);
  41.    cout<<"\nEl Promedio De B Es :"<<obj.promedio(obj.suma(conjuntoB,z),z);
  42.    cout<<"\nLa Varianza De A Es :"<<obj.varianza(obj.promedio(obj.suma(conjuntoA,a),a),a);
  43.    cout<<"\nLa Varianza De B Es :"<<obj.varianza(obj.promedio(obj.suma(conjuntoB,z),z),z);
  44.    cout<<"\nLa Varianza De A Es :"<<obj.desviacion(obj.varianza(obj.promedio(obj.suma(conjuntoA,a),a),a));
  45.    cout<<"\nLa Varianza De B Es :"<<obj.desviacion(obj.varianza(obj.promedio(obj.suma(conjuntoB,z),z),z));
  46.    getch();
  47.    }
  48. C::Union(int q[10],int p[10],int a,int b)
  49.   {for(int i=0;i<a;i++)
  50.       c[i]=q[i];
  51.    for(int i=0;i<b;i++)
  52.       {c[a+i]=p[i];}
  53.    cout<<"\nEl Conjunto Union De A y B Es : ";
  54.    for(int i=0;i<(a+b);i++)
  55.        {cout<<c[i]<<" ";}
  56.   return 0;}//Cierro Union
  57. int C::suma(int q[10],int a)
  58.    {r=0;
  59.     for(int i=0;i<a;i++)
  60.         {r+=q[i];}
  61.     return r;}//Cierro Suma
  62. double C::promedio(int a,int b)
  63.     {return a/b;}//Cierro Promedio
  64. double C::varianza(int a,int b)
  65.       {return a/(b-1);}
  66. double C::desviacion(int a)
  67.       {return sqrt(a);}
  68.  

lo que quiero es ver si hay otra forma de eliminar la info de r cada vez que llamo la funcion suma, ademas si hay sugerencias en otra parte del codigo se aceptan 
19  Programación / Programación C/C++ / Re: Dudilla con Paso Parametros en: 19 Agosto 2010, 00:35 am
Muchisimas Gracias por la ayuda ^^^, los tipos de retorno no los había declarado aún
ya que solo las puse ahí como prototipos, igual gracias por la sugerencia del cin.getline
20  Programación / Programación C/C++ / Dudilla con Paso Parametros en: 18 Agosto 2010, 22:36 pm
Código
  1. class Cadena
  2. {public:
  3. char cad1[50],cad2[50];
  4. Cadena(char cade1,char cade2)
  5.       {strcpy(cad1,cade1);
  6.        strcpy(cad2,cade2);}
  7. int Cantidad_Caracteres();
  8. Mayusculas();
  9. Minusculas();
  10. int Caracteres_Numericos();
  11. int Caracteres_Alfabeto();
  12. Union();
  13. Iguales();
  14. Generar();
  15. };
  16.  
  17. main()
  18. {char cadena1[50],cadena2[50];
  19.  cout<<"Digite La Cadena 1: ";
  20.  gets(cadena1);
  21.  cout<<"Digite La Cadena 2: ";
  22.  gets(cadena2);
  23.  Cadena obj(cadena1,cadena2);
  24. }

Errores de que no puede convertir de int a char :S ayuda
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines