• Jueves 28 de Marzo de 2024, 15:38

Mostrar Mensajes

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


Mensajes - lilezek

Páginas: [1]
1
C/C++ / Re: COLA EN C++
« en: Viernes 18 de Junio de 2010, 21:11 »
Cita de: "N3oDoc"
Primero tienes que crear la implementación de la clase cola supongo:
Aquí te dejo dicha implementación:

[...]

Quizá la cola es un array de edades consecutivas en memoria. Si es así, simplemente haz el looping de for almacenando cada número en 3 vectores distintos.

2
C/C++ / Re: duda sobre listas anidadas y pilas
« en: Lunes 14 de Junio de 2010, 16:46 »
Te lo he reestructurado un poquillo, y te he eliminado un puntero que era redundante en una función en la que realmente no necesitas puntero. El programa no funciona (no sé que es lo que intentas) pero compila, así que a partir de aquí deberías poder continuar.

Por ejemplo, en la estructura NODO tienes una PILA*, pero PILA ya es un puntero pila*, entonces sería un pila**, cosa que no necesitas.

Código: C++
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include <time.h>
  4.  
  5. FILE *dat;
  6. typedef struct pila
  7. {
  8.     int codigo;
  9.     char nombre[20];
  10.     struct pila *sig;
  11. }*PILA;
  12.  
  13.  
  14. struct NODO
  15. {
  16.     PILA pila;
  17.     struct NODO *next;
  18. };
  19.  
  20.  
  21. NODO * CrearLista(PILA,NODO*);
  22. NODO * push(PILA*, NODO *);
  23. void MostrarLista(NODO*);
  24.  
  25. void main(int argc,char ** argv)
  26. {
  27.     int n,m,i;
  28.     PILA p=NULL;
  29.     NODO *head=NULL;
  30.  
  31.     dat=fopen("containers.txt", "r");
  32.     printf("Ingrese el numero de Pilas : ");
  33.     scanf("%d", &m);
  34.     system("cls");
  35.     printf("Ingrese el tamaño de las Pilas : ");
  36.     scanf("%d", &n);
  37.  
  38.     for(i=0;i<m;i++)
  39.         head=push(&p,head);
  40.  
  41.     if(!fclose(dat))
  42.         printf( "n<Fichero datos_secadoras.txt cerrado>n" );
  43.     else
  44.         printf( "n<Error: datos_secadoras.txt NO CERRADO>n" );
  45.  
  46.  
  47.     MostrarLista(head);
  48.     system("pause");
  49. }
  50.  
  51. NODO * push(PILA * pila, NODO *head)
  52. {
  53.     PILA aux;
  54.  
  55.     aux = (PILA) malloc(sizeof(struct pila));
  56.     aux->sig = NULL;
  57.  
  58.     if(pila == NULL)
  59.     {
  60.         aux->codigo = rand();
  61.         fscanf( dat, "%sn", &aux->nombre);
  62.         *pila = aux;
  63.         printf("entro");
  64.     }
  65.     else
  66.     {
  67.         aux->codigo = rand();
  68.         fscanf( dat, "%sn", &aux->nombre);
  69.         aux->sig = *pila;
  70.         *pila = aux;
  71.     }
  72.  
  73.     return CrearLista(*pila,head);
  74. }
  75.  
  76. NODO * CrearLista(PILA pila,NODO *head)
  77. {
  78.  
  79.  
  80.     NODO *p,*r;
  81.     p=head;
  82.     if(head==NULL)
  83.     {
  84.         p=new(NODO);
  85.         head=p;
  86.         p->pila=pila;
  87.         p->next=NULL;
  88.  
  89.  
  90.     }
  91.     else
  92.     {
  93.         while(p->next!=NULL)
  94.             p=p->next;
  95.         r=new(NODO);
  96.         p->pila=pila;
  97.         p->next=r;
  98.         r->next=NULL;
  99.     }
  100.  
  101.     return(head);
  102. }
  103.  
  104.  
  105. void MostrarLista(NODO *head)
  106. {
  107.     int i=0;
  108.     NODO *p;
  109.     p=head;
  110.  
  111.     while(p != NULL)
  112.     {
  113.         printf("%dn%snn", p->pila->codigo, p->pila->nombre);
  114.         p=p->next;
  115.     }
  116.     printf("NULLnn");
  117. }
  118.  

3
C/C++ / Re: COLA EN C++
« en: Lunes 14 de Junio de 2010, 16:31 »
Tomas todos los números en un loop for y guardas en una variable vector las que vayan cumpliendo esa condición.

4
C/C++ / Re: socorro principiante!!! dificultad con funcion
« en: Lunes 14 de Junio de 2010, 15:47 »
Pues creo que windows.h tiene definido FILE y sus funciones, iostream todas las funciones de input-output streamed, excepto _getch() que viene definido en conio.h

De todos modos si lo que vas a intentar es a manejar datos, mírate la API de SqlLite, conseguirás algo mucho mejor para tu proyecto (hazlo sólo si tienes tiempo antes de acabar el curso)

5
C/C++ / Re: socorro principiante!!! dificultad con funcion
« en: Domingo 13 de Junio de 2010, 22:50 »
Principiante, ponle más empeño la próxima vez xD. Yo tengo 17 años y todo esto lo he aprendido teniendo paciencia, revisando muchos links y leyendo muchos documentos. Y después del consejo, la pregunta:

No entiendo que intentas hacer. Pero creo que esto es lo que necesitas:

Código: C++
  1. #include <Windows.h>
  2. #include <iostream>
  3. #include <conio.h>
  4.  
  5. typedef struct rutas
  6.  {
  7.    int codruta;
  8.    char cadorigen[20];
  9.    char caddestino[20];
  10.    float distancia;
  11. } trut;
  12.  
  13. void datos_ruta()  
  14. {
  15.     int cod=0;
  16.     trut rutas;
  17.     FILE *pfich;
  18.  
  19.     printf ("Introduzca el codigo de la ruta:");
  20.     scanf ("%i",&cod);
  21.     pfich=fopen("c:\rutas.dat","r+");
  22.     if (pfich == NULL)
  23.     {
  24.         printf ("Se ha producido un error. Imposible abrir el fichero.");
  25.         exit(1);
  26.     }
  27.     else
  28.     {
  29.         fread(&rutas,sizeof(trut),1,pfich);
  30.         while (cod == rutas.codruta)
  31.         {
  32.             printf ("El código introducido ya existe.");                                      
  33.             printf ("Por favor, introduzca un código diferente:");
  34.             scanf ("%d",&cod);
  35.             fseek(pfich,0,0);
  36.         }
  37.         printf ("INTRODUZCA:nn");
  38.         printf ("*Origen del viaje:");
  39.         scanf ("%s",&rutas.cadorigen);
  40.         printf ("*Destino del viaje:");
  41.         scanf ("%s",&rutas.caddestino);
  42.         printf ("*Distancia a recorrer:");
  43.         scanf ("%f",&rutas.distancia);  
  44.         system ("cls");
  45.         printf ("*La ruta ha sido creada correctamente*");
  46.         _getch();
  47.         rutas.codruta = cod;
  48.         fwrite (&rutas, sizeof(trut),1,pfich);
  49.     }
  50.     fclose(pfich);
  51. }
  52.  
  53. int main (int argc, char ** argv)
  54. {
  55.     datos_ruta();
  56.     return 0;
  57. }
  58.  

Si es esto, déjame un agradecimiento o algo xD. Saludos.

6
C/C++ / La memoria ram poco a poco se va consumiendo.
« en: Domingo 13 de Junio de 2010, 22:25 »
Buenos días a todos. Estoy haciendo una aplicación en c++, y esta aplicación embebe LUA y usa HGE. Mi aplicación consume , cada aproximadamente 5 segundos, 4 kb más. No es mucho, pero es. Y si aumento mi código de LUA esto empezará a chupar más y más rápido. Entonces, me gustaría que me dieran pautas para revisar mi código. Qué debería comprobar, si hay herramientas que me ayuden a comprobar que códigos comen más memoria ram.

Utilizo Visual Studio 2010 Ultimate, bajo windows xp. Saludos y gracias.

PD: Pondría vínculos a LUA y HGE pero no puedo  :mellow:

7
Otros CLR / Problema con el constructor de una estructura.
« en: Jueves 24 de Septiembre de 2009, 17:11 »
Hola. Tengo este código en visual c++:

Código: C++
  1.  
  2.  
  3.  
  4.  
  5. // Meto 9 espacios para que la línea
  6. // 18 coincida con mi línea (ya que no puse el principio del archivo).
  7.  
  8.  
  9.  
  10. struct Calc  
  11.     {
  12.     private:
  13.         Ezek::Int64 __vbuffer1;
  14.         Ezek::Int64 __vbuffer2;
  15.         bool __vbuffer;
  16.         gcroot<TextBox^> TBarraDeTexto;
  17.     public: 
  18.         Calc(TextBox^ e)
  19.         {
  20.             TBarraDeTexto = e;
  21.             __vbuffer = true;
  22.             __vbuffer1 = Ezek::Int64(0);
  23.             __vbuffer2 = Ezek::Int64(0);
  24.             MaxNum = Ezek::Int64(0);
  25.         };
  26.         ~Calc()
  27.         {
  28.             TBarraDeTexto.~gcroot();
  29.         }
  30.         Ezek::Int64 MaxNum;
  31.         void RefrescarBDT(TextBox^ TBarraDeTexto)
  32.         {
  33.             TBarraDeTexto->Text = vbuffer().ToString() + ",";
  34.         }
  35.         void InsertarNumero(int Numero, TextBox^ TBarraDeTexto)
  36.         {
  37.             if ((Ezek::Int64)NDigitos(vbuffer()) + 1 >= MaxNum)
  38.             {
  39.                 // sonido de error
  40.                 return;
  41.             }
  42.             vbuffer() = vbuffer() * 10 + Numero;
  43.             RefrescarBDT(TBarraDeTexto);
  44.         }
  45.         void QuitarNumero(TextBox^ TBarraDeTexto)
  46.         {
  47.             vbuffer() = vbuffer() / 10;
  48.             RefrescarBDT(TBarraDeTexto);
  49.         }
  50.         void QuitarTodosLosNumeros(TextBox^ TBarraDeTexto)
  51.         {
  52.             vbuffer() = 0;
  53.             RefrescarBDT(TBarraDeTexto);
  54.         }
  55.         void CambiarBuffer()
  56.         {
  57.             __vbuffer = (!__vbuffer);
  58.         }
  59.         Ezek::Int64 vbuffer()
  60.         {
  61.             if (__vbuffer) return __vbuffer1;
  62.             else return __vbuffer2;
  63.         }
  64.         };
  65.  

Ese código está dentro de mi propio namespace Ezek junto muchos otros componentes, pero sólo este me da error (ni siquiera el me da warning los otros componentes, así que el problema está en este). Exactamente, el error reside en la línea del constructor Calc(TextBox^ e):

Código: Text
  1. 1>------ Build started: Project: Proyecto 1 (Calculadora Simple), Configuration: Debug Win32 ------
  2. 1>Compiling...
  3. 1>Proyecto 1 (Calculadora Simple).cpp
  4. 1>c:documents and settingsusuariomis documentosvisual studio 2008projectsproyecto 1 (calculadora simple)proyecto 1 (calculadora simple)calculadora(projecto1).h(18) : error C2512: 'Ezek::Int64' : no appropriate default constructor available
  5. 1>c:documents and settingsusuariomis documentosvisual studio 2008projectsproyecto 1 (calculadora simple)proyecto 1 (calculadora simple)calculadora(projecto1).h(18) : error C2512: 'Ezek::Int64' : no appropriate default constructor available
  6. 1>c:documents and settingsusuariomis documentosvisual studio 2008projectsproyecto 1 (calculadora simple)proyecto 1 (calculadora simple)calculadora(projecto1).h(18) : error C2512: 'Ezek::Int64' : no appropriate default constructor available
  7. 1>Build log was saved at "file://c:Documents and SettingsUsuarioMis documentosVisual Studio 2008ProjectsProyecto 1 (Calculadora Simple)Proyecto 1 (Calculadora Simple)DebugBuildLog.htm"
  8. 1>Proyecto 1 (Calculadora Simple) - 3 error(s), 0 warning(s)
  9. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
  10.  

8
Otros CLR / Re: Problemas con arrays
« en: Lunes 21 de Septiembre de 2009, 12:43 »
¿Si esto no es c++, entonces qué es? Yo pensaba que era c++ o visual c...

9
Otros CLR / Problemas con arrays
« en: Domingo 20 de Septiembre de 2009, 19:33 »
Buenos días. Tengo un problema con c++. Utilizo visual c++ y me gustaría conseguir una lista de todas las ventanas (HWND) que existen. Para ello, he creado esta función:

Código: C++
  1.     array<HWND>^ GetAllWindows()
  2.     {
  3.         array<HWND>^ RetResult = gcnew array<HWND>(1000);
  4.         HWND temporary = WIN32::GetTopWindow(void);
  5.         while temporary != 0 do
  6.         {
  7.             RetResult<RetResult->Length + 1> = temporary
  8.             temporary = WIN32::GetNextWindow();
  9.         }
  10.     }
  11.  

No funciona. Sobre c++ se muuuy poquito, y cuando veo las arrays hasta me mareo. ¿Alguien me puede dar una pequeña explicación de lo qué está mal?

Páginas: [1]