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 - pitka

#1
muchísimas gracias a los 2 lo he solucionado..!
#2
Cita de: Ferno en 24 Mayo 2012, 14:04 PM
Con el primero no funciona ya que, el puntero que debes cambiar es pIni en tu code. Lo que tu haces es cambiar un puntero que apunta a cada nodo de la lista, y en teoría está bien! Pero recordá que hay un puntero especial "pIni" que apunta al primer nodo de tu lista, y esa referencia no la estás cambiando cuando debes eliminar el primer nodo. Supongo que por eso no funciona.

La solución más rápida es agregar un if en la parte de eliminado, que pregunte si el nodo a cambiar es igual a pIni. Si eso es cierto, cambias pIni además de p.

Saludos


Lo hice asi y sigue sin funcionar!!

Código (cpp) [Seleccionar]
void borrarNodo()
{
     system("cls");
     p = pIni;
     if(p != NULL)
     {
                 
         nodo *aux = NULL, *ant = NULL;
         ant = new nodo; 
         aux = new nodo;
         cout<<"INTRODUZCA EL ID A ELIMINAR\n";
         cin>>aux->id;
         while(aux->id != p->id)
           {
              ant = p;
              p = p->siguiente;
           }
           if(ant == pIni)
           {           
              pIni = pIni->siguiente;
              free(ant);
              free(aux);
              cout<<"ELEMENTO 1 ELIMINADO";
              cont--;
           }else if(aux->id == p->id)
                {                   
                   ant = p;
                   p = p->siguiente;               
                   free(ant);
                   free(aux);
                   cout<<"ELEMENTO x ELIMINADO";
                   cont--;
                }                             
    }else   
       cout<<"ELEMENTO NO ENCONTRADO";
    VOLVER_MENU       
}
#3
Hola de nuevo por aca molestando con una gran duda (al menos para mi), pues verán con la ayuda del foro y lo que he leído en la red, tengo este código que va llenando una lista de personas a las cuales le pide su nombre, id y edad, consultar por id y eliminar toda la lista eso hasta ahora lo hace bien o eso creo, el problema esta cuando trato de eliminar a una persona de la lista ingresando yo el id a eliminar, si no es el primer elemento ingresado lo elimina perfectamente pero si es el primero no funciona al intentar volver al menú, dejo el código para que vean lo que llevo hecho y también de que todos los errores que tengan me orienten para mejorar, de antemano gracias y saludos!

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;

#define VOLVER_MENU cout<<"\n\nPRESIONE ENTER PARA VOLVER AL MENU"; setbuf(stdin, NULL); cin.get();


struct nodo
{
        string nombre;
        int id;
        int edad;
        nodo *siguiente;     
};

nodo *pIni = NULL;
nodo *pFin;
nodo *p;

char op = 'n';
int cont = 0;
int i = 0;
int enc =0;


void cargar();
void mostrarlista();
void cargarnodo(nodo *x);
void consultar();
void eliminar();
void borrarNodo();


int main()
{

      do{         
         system("cls");       
         cout<<"Insertar elemento --- (I) (Personas ingresadas) "<<cont<<endl;       
         cout<<"Mostrar elementos --- (M)\n"; 
         cout<<"Consultar elemento -- (C)\n";
         cout<<"Eliminar elementos ---(E)\n";
         cout<<"Eliminar por id ------(N)\n";
         cout<<"Salir --- (S)\n";
         cin.get(op);
         if(toupper(op) == 'I')
             {
              cargar();
             }   
         else if(toupper(op) == 'M')
              mostrarlista();
         else if(toupper(op) == 'C')
              consultar();
         else if(toupper(op) == 'E')
              eliminar();
         else if(toupper(op) == 'N')
              borrarNodo();             
       }while(toupper(op) != 'S');
p = pIni;
if(p != NULL)
{
         nodo *aux;
         while(p!=NULL)
             { 
                 aux = new nodo;
                 aux = pIni;
                 pIni = pIni->siguiente;
                 free(aux);
                 p = p->siguiente;                         
             }
}
return 0;

}


void mostrarlista()
{
     
     system("cls");
      if(pIni != NULL)
         {
           p = pIni;
           i = 0;
         while (p->siguiente != NULL)
            {
                  i++;
                  cout<<i<<"Direccion : "<<int(p)<<endl;
                  cout<<i<<".1) Nombre: "<<p->nombre<<endl;
                  cout<<i<<".2) Id: "<<p->id<<endl;
                  cout<<i<<".3) Edad: "<<p->edad<<endl<<endl;
                  p = p->siguiente;
            }     
        }else
         cout<<"NO HAY ELEMENTOS PARA MOSTAR";
         VOLVER_MENU
}


void cargar()
{
     if(pIni == NULL) 
       {       
             pIni = new nodo;
             pFin = new nodo;
             pIni->siguiente = pFin;           
             pFin->siguiente = NULL;           
             cargarnodo(pIni);                 
       }
       else                               
         {
             cargarnodo(pFin);                     
             pFin->siguiente = new nodo;         
             pFin = pFin->siguiente;           
             pFin->siguiente = NULL;             
         }
       cont++;
       p = pIni;
}

void cargarnodo(nodo *x)
{
      system("cls");
      cout<<"introduzca el nombre: ";
      cin>>x->nombre;
      cout<<"introduzca el id: ";
      cin>>x->id;
      cout<<"introduzca la edad: ";
      cin>>x->edad; 
}

void consultar()
{
                   system("cls");
                   p = pIni;         
                   if(p != NULL)
                   {
                   nodo *c = NULL;
                   c = new nodo;             
                   cout<<"INGRESE ID A CONSULTAR\n";
                   cin>>c->id;
                   enc = 0;
                   while(p != NULL)
                     {   
                          if(c->id == p->id)
                          { 
                              enc = 1;         
                              cout<<"\n\nNombre: "<<p->nombre<<endl;
                              cout<<"id: "<<p->id<<endl;
                              cout<<"Edad: "<<p->edad<<endl;
   
                          }
                          p = p->siguiente;
                     }     
                     if(enc == 0)
                        {
                            cout<<"\n\nELEMENTO NO ENCONTRADO";
                        } 
                        free(c);
                    }else
                        cout<<"NO HAY ELEMENTOS PARA CONSULTAR";
                        VOLVER_MENU   



void eliminar()
{
     system("cls");
     p = pIni;
     if(p!=NULL)
     {
         nodo *aux;
         aux = new nodo;
         while(p->siguiente != NULL)
                         {       
                             aux = pIni;
                             pIni = pIni->siguiente;
                             free(aux);
                             p = p->siguiente;                         
                         }
         cout<<"ELEMENTOS ELIMINADOS";               
         cont = 0;     
                             
    }else   
       cout<<"NO HAY ELEMENTOS PARA ELIMINAR";
    VOLVER_MENU       
}


void borrarNodo()
{
     system("cls");
     p = pIni;
     if(p)
     {
                 
         nodo *aux = NULL, *ant = NULL;
         ant = new nodo; 
         aux = new nodo;
         cout<<"INTRODUZCA EL ID A ELIMINAR\n";
         cin>>aux->id;
         while(aux->id != p->id)
           {
              ant = p;
              p = p->siguiente;
           }           
             if(aux->id == p->id)
                {                   
                   ant = p;
                   p = p->siguiente;               
                   free(ant);
                   free(aux);
                   cout<<"ELEMENTO ELIMINADO";
                   cont--;
                }                                 
    }else   
       cout<<"ELEMENTO NO ENCONTRADO";
    VOLVER_MENU       
}
#4
Cita de: Aberroncho en 20 Mayo 2012, 18:45 PM
Espero que además de dejarlo así hayas entendido porqué es así. Ese era el objetivo ;)

En cuanto a los formatos para la entrada de datos:
si de verdad muchísimas gracias lo he entendido perfectamente, lo de los enlaces y la explicación excelente como dije!! cualquier duda estaré molestando nuevamente por aca  :rolleyes: jaja

De nuevo gracias, así provoca aprender![/list]
#5
muchísimas gracias me ayudo mucho  :D  ;-) y la explicación excelente al final lo deje así y funciona bien, toda critica sera bien recibida, muchas gracias nuevamente.

ahora una pregunta que no viene tanto con el tema, es posible validar que solo se escriban números o que solo acepte números en donde pido la edad y letras en donde pido el nombre?

Saludos
#6
Hola apenas estoy empezando con punteros y listas, quiero hacer un programa que vaya leyendo por teclado nombre y edad de una persona y lo vaya almacenando en a lista(sin conocer la cantidad de personas que vayan a ser registradas) y luego mostrar todas esas personas, pero estoy atascado,  me han dicho que tengo que usar un puntero auxiliar que guarde el primer valor o algo así pero de verdad me gustaría entender el porque.

gracias de antemano, aquí dejo lo que llevo

Saludos

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

struct nodo
   {
       string nombre;
       int edad;
       nodo *siguiente;      
   };

int main(void)
{

nodo *persona;
char resp;


do
{
     persona = new nodo;
     cout<<"introduzca el nombre: ";
     cin>>persona->nombre;
     cout<<"introduzca la edad: ";
     cin>>persona->edad;
     cout<<"Salir? S/N ";
     cin>>resp;
}while(resp!='s');

p = persona;

while (p->siguiente != NULL)
{
     cout<<p->nombre<<endl;
     cout<<p->edad<<endl;
     p=p->siguiente;  
}

system("pause");

}
#7
Buenas asi como dice el titulo tengo una duda cual de esos 2 procesadores es mejor y porque?? cual es mas optimo para juegos o para el sistema en general??... gracias!!

Saludos.

Edito: segun lo que he buscado y entendido el dual core (por ser mas nuevo) se lo lleva, pero aun no me saca todas las dudas!! igual creo q mejor es el dual core (en este caso)
#8
Windows / Tarjeta de red windows 7
24 Marzo 2012, 07:05 AM
Buenas ya he soucionado el otro problema, pero me acaba de surgir uno nuevo, he instalado win 7 en una pc de escritorio, es una vit modelo 2600 (si hace falta un log de everest o que se yo lo pongo) y bueno segun veo en administrador de dispositivo aparecen todos aunque en adaptadores de red solo dice esto

D-link airplus dwl-g520 wireless pci adapter (rev.B) (me imagino que es la inalambrica)
Realtek PCIe GBE Family controller (la integrada)

Bueno conecto el cable de red y no enciende ninguno de los leds, he revisado en el bios y la opcion de onboard lan esta enabled asi que creo que se descarta la posibilidad de que fuese eso..!

ya no se que hacer, es como si estuviera apagado eso, pero es integrado no se como se apaga o se enciende..! :S disculpen la ignorancia pero es la verdad  :(

Bueno si alguien sabe a q se puede deber y una posible solucion sera mucho mas que bienvenida, gracias de antemano

Saludos
#9
Cita de: FrankBlack en 23 Marzo 2012, 00:49 AM
Hola,

Yo tenia ese problema al instalar Windows 7 a una HP Evo 530, reemplaze el disco duro cables, memoria, lectoras, discos de instalacion y nada, lo que realizamos fue instalar Windows XP y actualizarlo a Win 7, se que suena absurdo pero solo asi nos quedo  :silbar:  :silbar:.

Saludos y suerte ;) ;)

Gracias por la respuesta amigo aunque. He probado instalar xp y 7 y nada el detalle es que se queda congelada al intentar entrar al xp o al intentar entrar al setup del SO que se este instalando carga los archivos pero mas nada, probe el disco duro en otra pc, y entro normal al xp, lo q m imagino se traduce a algun error de hardware que se yo (fuente, mobo) la verdad ni idea o no se si pueda ser una mala configuracion del bios aunque he quitado la pila unas 10 veces ajwajwaw y se resetea pero nada sigue sin funcionar..! gracias

Saludos seguire intentando :S

pd: lo de instalar windows 7 en la otra y que luego reconozca el hardware me parecia tentador, pero si no es problema del hd no se si funcione ese metodo!!

Edito:

Ya puedo descartar que sea la fuente de poder, intente con otra y ni aun asi funciona :s

EDITO:

He solucionado el problema, lo que hice fue deshabilitar todo en el bios tuve que hacerlo varias veces despues la pc no arrancaba jejeje, bueno dejando solo las opciones necesarias para arrancar el sistema, logre formatear y despues me puse a jugar con las opciones y aunque no recuerdo como estaban todas, se que con la opcion ACPI APIC support [enabled] se congela, al desactivarlo funciona nuevamente si alguien pasa por lo mismo espero que esta experiencia le sirva de algo y sea una solucion, ahora si alguien sabe a que se debe esto o que hace esa opcion seria interesante conocerlo..! nuevamente gracias por la ayuda adoro este foro aunque participe poco gracias!!

Saludos!
#10
Cita de: Songoku en 22 Marzo 2012, 13:22 PM
Casi seguro que el disco que usas para la instalacion esta mal. O eso o el lector de dvd tampoco esta bien del todo. Tambien suele pasar eso cuando la memoria ram del equipo no anda bien.
Saludos...

Songoku


Hola, gracias por la respuesta.. asi lo hice probe con otro cd de windows, cambie la lectora, cambie la memoria ram. y aun nada sigo con el problema podria intentar sacar el disco duro formatearlo en otra pc instalarlo de nuevo y hacer que windows 7 reconozca todos los componentes? o simplemente al colocarlo no iniciaria mas? gracias de antemano!!