Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Gerik

#11
Citara=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
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
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 (cpp) [Seleccionar]
/*****************
Librerias
*****************/
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
/*Clase nodo*/
class nodo
     {public:
      char info[30];
    nodo *sig;
      nodo *generar_nodo(char a[30])
          {nodo *n;
        n=new nodo[30];
           strcpy(n->info,a);
        n->sig=NULL;
        return n;}
      };
/*Clase lista*/
class lista_circular
     {public:
      nodo *cab;
int cant;
      lista_circular()
         {cab=NULL;
          cant=0;}
      insertar(char a[30]);
      extraer(int dato2);
      mostrar();
     };
/*Inserta en la lista*/
lista_circular::insertar(char a[30])
    {char cad[30];
     strcpy(cad,a);
     nodo *nuevo=nuevo->generar_nodo(a);
     if(!cab)
       {cab=nuevo;
        cab->sig=nuevo;
        cant++;}
     else{nodo *p;
          p=cab;
          while(p->sig!=cab)
               {p=p->sig;}
          p->sig=nuevo;
          p=p->sig;
          p->sig=cab;
          cant++;}
     }
/*muestra la lista*/
lista_circular::mostrar()
    {nodo *p=cab;
  while(p->sig!=cab)
          {cout<<p->info<<endl;
         p=p->sig;}
     cout<<p->info<<endl;}//Cierro Mostrar

/*Extrae de la lista*/
lista_circular::extraer(int dato2)
    {if(cab)
       {nodo *p,*q;
      p=cab;
        if(dato2==cant-5)
           {while(p->sig!=cab)
                 {p=p->sig;}
         if(cab->sig==cab)
               {cab=NULL;
                cant--;}
         else{cab=cab->sig;
           p->sig=cab;
                 cant--;}
           }
        else{if(dato2==cant)
               {while(p->sig!=cab)
                    {p=p->sig;}
    p->sig=cab;
                cant--;}
             else{for(int i=0;i<dato2;i++)
                     {q=p;
             p=p->sig;}
              q->sig=p->sig;
                cant--;
                delete p;}}
}else{cout<<"  NO EXISTE LISTA\n";}
    }

main()
   {lista_circular obj;
    char nombre[30];
    int aux=0;
    for(int i=0;i<5;i++)
       {cout<<"Digite El Nombre "<<i<<" De La Lista: ";
          gets(nombre);
          cout<<endl;
          obj.insertar(nombre);}
    clrscr();
    obj.mostrar();
    int aux2=obj.cant-1;
    for(int i=0;i<aux2;i++)
       {clrscr();
        randomize();
      aux=random(obj.cant)+1;
      cout<<"Cantidad De Elementos "<<obj.cant<<endl<<"Se Elimino El Elemento "<<aux<<" De La Lista."<<endl<<"Lista Actual: "<<endl;
        obj.extraer(aux);
        obj.mostrar();
        getch();}
    getch();}

#14
jejeje si no me habia dado cuenta jejeje pero igual ya compilado y funcionando Gracias
#15
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 (cpp) [Seleccionar]
# include <conio>
# include <iostream>
# include <stdlib>
# define cant 4

class nodo
     {public:
      int info;
      nodo *sig;
      nodo(int a)
          {info=a;
           sig=NULL;}
      };
class listac
     {public:
      nodo *cab;
      listac(){cab=NULL;}
      void insertar(int a);
      void mostrar();
      bool buscar(int a);
      void extraer(int a);
      };

int main()
    {int a=0;
     listac obj;
     for(int i=1;i<=cant+1;i++)
         {cout<<"Digite El Elemento "<<i<<" De La Lista: ";
          cin>>a;
          cout<<endl;
          obj.insertar(a);}
     obj.mostrar();
     cout<<"Digite El Numero a Buscar: ";
     cin>>a;
     if(obj.buscar(a)==true)
        cout<<"El Numero Buscado Existe En La Lista";
     else
        cout<<"El Numero Buscado No Existe En La Lista";
     cout<<"Digite El Numero a Extraer De La Lista: ";
     cin>>a;
     obj.extraer(a);
     obj.mostrar();
     getch();
     return 0;
    }

void listac::insertar(int a)
    {nodo *nuevo=new nodo(a);
     if(!cab)
        {nuevo->sig=nuevo;
         cab=nuevo;}
        else
        {nuevo->sig=cab->sig;
         cab->sig=nuevo;}
    }//cierro Insertar
void listac::mostrar()
    {nodo *p=cab;
     do{p=p->sig;
        cout<<p->info<<" ";}
     while(p!=cab);
    }
bool listac::buscar(int a)
   {nodo *p=cab;
    do{p=p->sig;
       if(p->info==a)
          {return true;}}
       while (p!=cab);
       return false;}
void listac::extraer(int a)
     {nodo*p=cab;
      do{p=p->sig;
         if(p->info=a)
            {while(cab->sig!=p)
                  {cab=cab->sig;
                   cab->sig=p->sig;
                   delete p;
                   break;}//cierro while
            }//cierro if
        }//cierro do
        while (p!=cab);
     }

#16
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 (cpp) [Seleccionar]
#include <iostream>
#include <conio>
#include <stdlib>
#define tama1 10
#define tama2 8
#define tama3 6
class Pila
     {public:
      int tope,y;
      int pila1[tama1];
      Pila(){tope=-1;
             y=0;}
      mostrar()
         {for(int i=0;i<tama1;i++)
                  {cout<<"\tPila1["<<i<<"]="<<pila1[i]<<endl;}}
      insertar(int a)
        {tope++;
         if(tope==tama1)
            {cout<<"\t\t\nPila llena "<<endl;
             tope--;}
         else {pila1[tope]=a;}
         }
      int sacar()
          {if(tope==-1)
           cout<<"\t\t\nPila Vacia ";
           else{
                y=pila1[tope];
                pila1[tope]=0;
                tope--;
                return y;
                cout<<"\n\tElemento Eliminado "; }
          }};
class Pil
     {public:
      int tope2,z;
      int pila2[tama2];
      Pil(){tope2=-1;}
       mostrar()
         {for(int i=0; i<tama2;i++)
                  {cout<<"\tPila2["<<i<<"]="<<pila2[i]<<endl;}}
       insertar(int a)
        {tope2++;
         if(tope2==tama2)
            {cout<<"\t\t\nPila llena "<<endl;
             tope2--;}
         else {pila2[tope2]=a;}
         }
       int sacar()
          {if(tope2==-1)
           cout<<"\t\t\nPila Vacia ";
           else{z=pila2[tope2];
                pila2[tope2]=0;
                tope2--;
                return z;
                cout<<"\n\tElemento Eliminado "; }
          }};
class Pi
     {public:
      int tope3;
      int pila3[tama3];
      Pi(int z)
          {tope3=-1;}
       mostrar()
         {for(int i=0; i<tama3;i++)
                  {cout<<"\tPila3["<<i<<"]="<<pila3[i]<<endl;}}
       insertar(int a)
        {tope3++;
         if(tope3==tama3)
            {cout<<"\t\t\nPila llena "<<endl;
             tope3--;}
         else {pila3[tope3]=a;}
         }
       int sacar()
          {if(tope3==-1)
           cout<<"\t\t\nPila Vacia ";
           else{pila3[tope3]=0;
                tope3--;
                cout<<"\n\tElemento Eliminado "; }
          }};
int main()
     {int x=0;
     Pila ob();
     Pil o();
     Pi obj();
     cout<<"\n\nInsercion de Elementos a la Pila1\n";
     randomize();
     while(x<tama1)
       {ob.insertar(random(10));
        x++;}
     ob.mostrar();
     getch();
     for(int i=0;i<tama2;i++)
         {o.insertar(ob.sacar());}
     o.mostrar();
     for(int i=0;i<tama3;i++)
         {obj.insertar(o.sacar());}
     obj.mostrar();
     getch();
     return 0;
     }


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 C/C++ / Re: Problema con programa...
1 Septiembre 2010, 19:38 PM
Código (cpp) [Seleccionar]
# include <conio.h>
# include <stdio.h>
# include <iostream.h>

class Tiempo
      {public:
       int s,h,m,seg;

       Tiempo(){s,h,m,seg=0;
               };
       ~Tiempo(){};
       void time()
         {cout<<"...:::Conversion De Segundos A Horas Minutos y Segundo:::...";
         cout<<"\n\nDigite Los Segundos a Convertir: ";
         cin>>s;
         if(s>=3600)
               {h=s/3600;
                m=(s%3600)/60;
                seg=(s%3600)/60;
                }
         clrscr();
         cout<<"La Conversion de Segundos a Horas Minutos y Segundos es: ";
         cout<<"\n\n"<<h<<" Horas";
         cout<<"\n"<<m<<" Minutos";
         cout<<"\n"<<seg<<" Segundos";
         getch();
        }
      };
main(){
     Tiempo obj;
     obj.time();
     }


Espero Te sirva
#18
Programación C/C++ / Sugerencias
1 Septiembre 2010, 19:36 PM
Código (cpp) [Seleccionar]
#include <conio>
#include <iostream>
#include <stdlib>
#include <math>

class C
{public:
  int *c;
  int r;
  C(){c=new int [10];}
  Union(int q[10],int p[10],int a,int b);
  int suma(int q[10],int a);
  double promedio(int a,int b);
  double varianza(int a,int b);
  double desviacion(int a);
};
main ()
   {int a,z;
    int *conjuntoA;
    int *conjuntoB;
    conjuntoA=new int [10];
    conjuntoB=new int [10];
    cout<<"Digite El Numero De Elementos Del Conjunto A: ";
    cin>>a;
    cout<<"Digite El Numero De Elementos Del Conjunto B: ";
    cin>>z;
    randomize();
    cout<<"\nEl Conjunto A es : ";
    for(int i=0;i<a;i++)
       {conjuntoA[i]=random(100);
        cout<<conjuntoA[i]<<" ";}
    cout<<"\nEl Conjunto B es : ";
    for(int j=0;j<z;j++)
       {conjuntoB[j]=random(100);
        cout<<conjuntoB[j]<<" ";}
    C obj;
    obj.Union(conjuntoA,conjuntoB,a,z);
    cout<<"\nLa Suma De A es :"<<obj.suma(conjuntoA,a);
    cout<<"\nLa Suma De B es :"<<obj.suma(conjuntoB,z);
    cout<<"\nEl Promedio De A Es :"<<obj.promedio(obj.suma(conjuntoA,a),a);
    cout<<"\nEl Promedio De B Es :"<<obj.promedio(obj.suma(conjuntoB,z),z);
    cout<<"\nLa Varianza De A Es :"<<obj.varianza(obj.promedio(obj.suma(conjuntoA,a),a),a);
    cout<<"\nLa Varianza De B Es :"<<obj.varianza(obj.promedio(obj.suma(conjuntoB,z),z),z);
    cout<<"\nLa Varianza De A Es :"<<obj.desviacion(obj.varianza(obj.promedio(obj.suma(conjuntoA,a),a),a));
    cout<<"\nLa Varianza De B Es :"<<obj.desviacion(obj.varianza(obj.promedio(obj.suma(conjuntoB,z),z),z));
    getch();
    }
C::Union(int q[10],int p[10],int a,int b)
   {for(int i=0;i<a;i++)
       c[i]=q[i];
    for(int i=0;i<b;i++)
       {c[a+i]=p[i];}
    cout<<"\nEl Conjunto Union De A y B Es : ";
    for(int i=0;i<(a+b);i++)
        {cout<<c[i]<<" ";}
   return 0;}//Cierro Union
int C::suma(int q[10],int a)
    {r=0;
     for(int i=0;i<a;i++)
         {r+=q[i];}
     return r;}//Cierro Suma
double C::promedio(int a,int b)
     {return a/b;}//Cierro Promedio
double C::varianza(int a,int b)
       {return a/(b-1);}
double C::desviacion(int a)
       {return sqrt(a);}


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
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
Código (cpp) [Seleccionar]
class Cadena
{public:
char cad1[50],cad2[50];
Cadena(char cade1,char cade2)
       {strcpy(cad1,cade1);
        strcpy(cad2,cade2);}
int Cantidad_Caracteres();
Mayusculas();
Minusculas();
int Caracteres_Numericos();
int Caracteres_Alfabeto();
Union();
Iguales();
Generar();
};

main()
{char cadena1[50],cadena2[50];
  cout<<"Digite La Cadena 1: ";
  gets(cadena1);
  cout<<"Digite La Cadena 2: ";
  gets(cadena2);
  Cadena obj(cadena1,cadena2);
}


Errores de que no puede convertir de int a char :S ayuda