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

#191
Cual es el archivo que tengo que mirar , alli hay unos cuantos
#192
Programación C/C++ / Re: entorno grafico
27 Abril 2010, 18:31 PM
Pues mira , muy en general te lo digo, creas el esqueleto de la aplicación , si un boton será el que muestre la info , pues al evento, o handler que meneje ese boton le metes la logica de tu programa , llamas a las funciones que creaste que te devuelven la info , y  la asignas a los controles que la muestran , puedes incluir en el esqueleto de la interfaz tu programa y luego llamar a sus funciones desde donde las necesites ...
#193
Programación C/C++ / Re: entorno grafico
27 Abril 2010, 18:24 PM
el programa que tienes hecho te sirve sin duda , lu único que en lugar de mostrar los resultados por consola lo  muestras en la interfaz
si antes tenias por ejemplo
printf("la info es %s", info);
ahora tendrás
pantalla.caja_texto_salida.setText(info)
todo depende de lo que escojas para crear la interfaz
#194
Programación C/C++ / Re: entorno grafico
27 Abril 2010, 18:11 PM
Puede que aqui tengas tu respuesta , yo la haria con WINAPI

http://foro.elhacker.net/programacion_cc/interfas_grafica-t290481.0.html
#195
Programación C/C++ / Re: entorno grafico
27 Abril 2010, 18:06 PM
En que sistema operativo te mueves , windows , linux ?¿?¿?
#196
Hola , anoche actualize mi sistema operativo  ubuntu de la versión 9.4 a la 9.10 , pero al reiniciar no he podido entrar, me
ha mostrado la consola INITFRAMS o algo así (lo siento estoy escribiendo desde el trabajo y no recuerdo bien lo que ponia)
el caso es que no quiero reistalar la 9.4 sin por lo menos intentar arreglar la altual instalación , el problema es que no se que archivo
mirar para postear el error exacto que me da para poder pedir ayuda , alguien sabe como saco información del error o  si a alguien ya
le ha pasado , como lo arreglo , me parece que decia algo del disco o así , es la segunda vez que me sucede . Gracias.
P.D. entrar en modo de recuperación no me ha servido ...
#197
Lo probaré en casa en ubuntu , pero aqui en el curro , con windows , se ejecuta una vez el print de arbol_to_array y peta
  printf("\nPos:%d  ele:%d",numElem ,*array[numElem]);
espero que se solucione solo con agregarle la libreria...
#198
Buenas a todos , estoy intentando crear operaciones para un árbol binario y no se que sucede,  el compilador me da estos resultados

diego@diego-desktop:~/Documentos/fuente$ gcc arbol.c -o arbol
arbol.c: En la función 'main':
arbol.c:24: aviso: declaración implícita incompatible de la función interna 'malloc'
arbol.c: En la función 'insertar':
arbol.c:43: aviso: declaración implícita incompatible de la función interna 'malloc'
arbol.c: En la función 'arbol_to_array':
arbol.c:76: aviso: declaración implícita incompatible de la función interna 'realloc'
arbol.c:81: aviso: declaración implícita incompatible de la función interna 'realloc'
diego@diego-desktop:~/Documentos/fuente$

Pero cuando ejecuto me aparece los siguiente

*** glibc detected *** ./arbol: realloc(): invalid pointer: 0xbfe00bd8 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7640604]
/lib/tls/i686/cmov/libc.so.6(realloc+0x242)[0xb7645022]
/lib/tls/i686/cmov/libc.so.6(realloc+0x42)[0xb7644e22]
./arbol[0x804872f]
./arbol[0x8048519]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb75e7775]
./arbol[0x80483a1]
======= Memory map: ========
08048000-08049000 r-xp 00000000 08:05 10223911   /home/diego/Documentos/fuente/arbol
08049000-0804a000 r--p 00000000 08:05 10223911   /home/diego/Documentos/fuente/arbol
0804a000-0804b000 rw-p 00001000 08:05 10223911   /home/diego/Documentos/fuente/arbol
08ffa000-0901b000 rw-p 08ffa000 00:00 0          [heap]
b75d0000-b75d1000 rw-p b75d0000 00:00 0
b75d1000-b772d000 r-xp 00000000 08:05 376906     /lib/tls/i686/cmov/libc-2.9.so
b772d000-b772e000 ---p 0015c000 08:05 376906     /lib/tls/i686/cmov/libc-2.9.so
b772e000-b7730000 r--p 0015c000 08:05 376906     /lib/tls/i686/cmov/libc-2.9.so
b7730000-b7731000 rw-p 0015e000 08:05 376906     /lib/tls/i686/cmov/libc-2.9.so
b7731000-b7734000 rw-p b7731000 00:00 0
b7734000-b7741000 r-xp 00000000 08:05 327701     /lib/libgcc_s.so.1
b7741000-b7742000 r--p 0000c000 08:05 327701     /lib/libgcc_s.so.1
b7742000-b7743000 rw-p 0000d000 08:05 327701     /lib/libgcc_s.so.1
b7743000-b7746000 rw-p b7743000 00:00 0
b7746000-b7747000 r-xp b7746000 00:00 0          [vdso]
b7747000-b7763000 r-xp 00000000 08:05 328221     /lib/ld-2.9.so
b7763000-b7764000 r--p 0001b000 08:05 328221     /lib/ld-2.9.so
b7764000-b7765000 rw-p 0001c000 08:05 328221     /lib/ld-2.9.so
bfded000-bfe02000 rw-p bffeb000 00:00 0          [stack]
Cancelado

Agradeceria cualquier sugerencia , el código es el siguiente

#include <stdio.h>

typedef struct {
    int  info;
    void *izq , *der;
}Nodo;

//definimos el tipo puntero a nodo
typedef Nodo * PtrNodo;


void insertar(PtrNodo *ptrNodo, int info);
int esVacio(PtrNodo nodo);
int buscar(PtrNodo nodo, int elem);
int nodos(PtrNodo nodo);
int arbol_to_array(PtrNodo nodo, int **array, int numEle);

int main(){
    PtrNodo raiz = NULL;
    int array[] ={8,1,4,2,6,7};
    int info = 4;
    int  *elem;
    int i = 0;
    elem = (int*)malloc(sizeof(int));
    insertar(&raiz , array[0]);
    insertar(&raiz , array[1]);
    insertar(&raiz , array[2]);
    insertar(&raiz , array[3]);
    insertar(&raiz , array[4]);
    insertar(&raiz , array[5]);
    if(arbol_to_array(raiz, &elem , 0)){
        while(i < 5){
            printf("\nValor %d",elem[1]);
            i++;
        }
    }
    return 0;
}


void insertar(PtrNodo *ptrNodo, int info){
    if(esVacio(*ptrNodo)){
        *ptrNodo = (PtrNodo) malloc(sizeof(Nodo));
        (*ptrNodo)->info = info;
        (*ptrNodo)->izq = (*ptrNodo)->der = NULL;
    }
    else if ((*ptrNodo)->info < info) insertar((void*)(&(*ptrNodo)->der), info);
    else if ((*ptrNodo)->info > info) insertar((void*)(&(*ptrNodo)->izq), info);
}


int esVacio(PtrNodo nodo){
    if(nodo == NULL)return 1;
    return 0;
}

int buscar(PtrNodo nodo, int elem){   
  if (nodo == NULL) return 0;
  else if (nodo->info < elem) return buscar(nodo->der, elem);
  else if (nodo->info > elem) return buscar(nodo->izq, elem);
  else return 1;
}

int nodos(PtrNodo nodo){
    if(!nodo)return 0;
    else return(1 + nodos(nodo->izq) + nodos(nodo->der));
}
int arbol_to_array(PtrNodo nodo, int **array, int numElem){   
    if(!nodo){
        return 0;
    }else{       
        *array[numElem] = nodo->info;
        printf("\nPos:%d  ele:%d",numElem ,*array[numElem]);
        if(nodo->izq){
            numElem++;
            realloc(array , (numElem + 1) * sizeof(int));
            arbol_to_array(nodo->izq , array , numElem);
        }
        if(nodo->der){
            numElem++;
            realloc(array , (numElem + 1) * sizeof(int));
            arbol_to_array(nodo->der , array , numElem);
        }
        return 1;
    }
}