• Miércoles 15 de Abril de 2026, 02:40

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

Páginas: [1]
1
C/C++ / Re: tiny_malloc error? Agradecería mucho la ayudita :(
« en: Viernes 31 de Diciembre de 2010, 12:30 »
A ver he estado toda la noche sin dormir intentando depurar y parece que ahora el unico error que me sale es el siguiente:

Código: C++
  1. #0  0x93992338 in tiny_malloc_from_free_list ()
  2. #1  0x9398b1cd in szone_malloc ()
  3. #2  0x9398b0d8 in malloc_zone_malloc ()
  4. #3  0x9398b06c in malloc ()
  5. #4  0x90b27598 in operator new ()
  6. #5  0x0000b828 in __gnu_cxx::new_allocator<unsigned long>::allocate (this=0xbffff4d4, __n=1) at ext/new_allocator.h:88
  7. #6  0x0000b852 in std::_Bvector_base<std::allocator<bool> >::_M_allocate (this=0xbffff4d4, __n=6) at stl_bvector.h:389
  8. #7  0x0000b86c in std::vector<bool, std::allocator<bool> >::_M_initialize (this=0xbffff4d4, __n=6) at stl_bvector.h:468
  9. #8  0x0000bafd in std::vector<bool, std::allocator<bool> >::operator= (this=0xbffff4d4, __x=@0x802750) at stl_bvector.h:707
  10. [b]#9  0x000048a9 in Individuo::Individuo (this=0xbffff4d4, rhs=@0x802750) at Individuo.H:171
  11. #10 0x0000492a in Individuo::Individuo (this=0xbffff4d4, rhs=@0x802750) at Individuo.H:174[/b]
  12. #11 0x000055f9 in Algoritmo::Algoritmo (this=0xbffff8c4, var=2, ops_L=6, pob=50, inf=-1, sup=1, fich=@0xbffff94c, sel=1, cru=3, mut=1, rep=1, pc=0.899999976, pm=0.100000001, tp=10000, el=1) at Algoritmo.H:287
  13. #12 0x000064cf in Algoritmo::Algoritmo (this=0xbffff8c4, var=2, ops_L=6, pob=50, inf=-1, sup=1, fich=@0xbffff94c, sel=1, cru=3, mut=1, rep=1, pc=0.899999976, pm=0.100000001, tp=10000, el=1) at Algoritmo.H:495
  14. #13 0x000087d1 in main () at main_con_SLP_punto_H.cpp:308
  15.  

Parece problema de Individuo::Individuo (this=0xbffff4d4, rhs=@0x802750) at Individuo.H y la funcion es :

Código: C++
  1. Individuo :: Individuo (const Individuo & rhs)
  2. {
  3.     tamanio = rhs.tamanio;
  4.     max_operations_L = rhs.max_operations_L;
  5.     limite_inferior = rhs.limite_inferior;
  6.     limite_superior = rhs.limite_superior;
  7.     fitness = rhs.fitness;
  8.     operacion_escalar.resize(0); -> line 170
  9.     operacion_escalar = rhs.operacion_escalar;
  10.     parametros_reales.resize(0);
  11.     parametros_reales = rhs.parametros_reales; -> line 173
  12. }
  13.  

2
C/C++ / Re: tiny_malloc error? Agradecería mucho la ayudita :(
« en: Viernes 31 de Diciembre de 2010, 01:28 »
y cómo hago eso? ya se me escapa... jeje gracias

3
C/C++ / Re: tiny_malloc error? Agradecería mucho la ayudita :(
« en: Jueves 30 de Diciembre de 2010, 22:25 »
Eso que puse al principio ya es la depuración del gdb... no muestra nada mas

4
C/C++ / Re: tiny_malloc error? Agradecería mucho la ayudita :(
« en: Jueves 30 de Diciembre de 2010, 21:01 »
No tengo ni idea, es solo el error que produce el depurador... me han dicho por ahí que puede que sea problema del kernel de Mac Os a la hora de asignar memoria... pero buf, ni idea.... :(

5
C/C++ / Re: tiny_malloc error? Agradecería mucho la ayudita :(
« en: Jueves 30 de Diciembre de 2010, 15:27 »
Bueno cabe decir que ese error me sale también en otras partes del proyecto, pero la función donde sale éste es la sguiente:


Código: C++
  1. void Poblacion :: Cruce_uniforme (Individuo & padre1, Individuo & padre2,
  2.                                              Individuo & hijo1, Individuo & hijo2)
  3. {
  4.     // Lo primero de todo sera generar dos mascaras aleatorias, una para los
  5.     // parametros booleanos y otro para los reales
  6.     vector<bool> mascara_booleana (0);
  7.     vector<bool> mascara_reales (0);
  8.    
  9.     for (int i = 0; i < padre1.operacion_escalar.size(); i++)
  10.     {
  11.         float b = padre1.Numeros_Aleatorios_Entre_a_y_b (0, 1);
  12.         if (b >= 0.5)
  13.             mascara_booleana.push_back(1);
  14.         else
  15.             mascara_booleana.push_back(0);
  16.     }
  17.    
  18.     for (int i = 0; i < padre1.parametros_reales.size(); i++)
  19.     {
  20.         float b = padre1.Numeros_Aleatorios_Entre_a_y_b (0, 1);
  21.         if (b >= 0.5)
  22.             mascara_reales.push_back(1);
  23.         else
  24.             mascara_reales.push_back(0);
  25.     }
  26.    
  27.     // En este punto se tienen generadas de forma aleatoria unas mascaras que seran
  28.     // distintas para cada cruce.
  29.    
  30.     /* La politica de cruce a uilizar sera la siguiente:
  31.    
  32.             Si 1 en Mascara -> Parametro del padre1 para el hijo1
  33.             Si 0 en Mascara -> Parametro del padre2 para el hijo1
  34.            
  35.             Si 1 en Mascara -> Parametro del padre2 para el hijo2
  36.             Si 0 en Mascara -> Parametro del padre1 para el hijo2
  37.     */
  38.    
  39.     // Aplicamos el cruce selectivo con la politica anterior para crear el hijo1 y
  40.     // el hijo 2
  41.     for (int i = 0; i < mascara_booleana.size(); i++)
  42.     {
  43.         if (mascara_booleana[i] == 1)
  44.         {
  45.             hijo1.operacion_escalar.push_back (padre1.operacion_escalar[i]);
  46.             hijo2.operacion_escalar.push_back (padre2.operacion_escalar[i]);
  47.  
  48.         }
  49.         else
  50.         {
  51.             hijo1.operacion_escalar.push_back (padre2.operacion_escalar[i]);
  52.             hijo2.operacion_escalar.push_back (padre1.operacion_escalar[i]);
  53.  
  54.         }
  55.     }
  56.  
  57.     for (int i = 0; i < mascara_reales.size(); i++)
  58.     {
  59.         if (mascara_reales[i] == 1)
  60.         {
  61.             hijo1.parametros_reales.push_back (padre1.parametros_reales[i]);
  62.             hijo2.parametros_reales.push_back (padre2.parametros_reales[i]);
  63.         }
  64.         else
  65.         {
  66.             hijo1.parametros_reales.push_back (padre2.parametros_reales[i]);
  67.             hijo2.parametros_reales.push_back (padre1.parametros_reales[i]);
  68.         }
  69.     }
  70. }
  71.  
  72.  

6
C/C++ / tiny_malloc error? Agradecería mucho la ayudita :(
« en: Jueves 30 de Diciembre de 2010, 14:55 »
Hola !! He intentando ejecutar mi proyecto fin de carrera y me he encontrado en que en varias de esas ejecuciones me sale este error de "tiny_malloc..." y no tengo ni idea de por qué puede ser por más vueltas que le doy...

Código: C++
  1. (gdb) bt
  2. #0 0x93992338 in tiny_malloc_from_free_list ()
  3. #1 0x9398b1cd in szone_malloc ()
  4. #2 0x9398b0d8 in malloc_zone_malloc ()
  5. #3 0x9398b06c in malloc ()
  6. #4 0x90b27598 in operator new ()
  7. #5 0x0000bd48 in __gnu_cxx::new_allocator<unsigned long>::allocate ()
  8. #6 0x0000bd72 in std::_Bvector_base<std::allocator<bool> >::_M_allocate ()
  9. #7 0x0000dbe8 in std::vector<bool, std::allocator<bool> >::_M_insert_aux ()
  10. #8 0x0000dd95 in std::vector<bool, std::allocator<bool> >::push_back ()
  11. #9 0x00003618 in Poblacion::Cruce_uniforme ()
  12. #10 0x000060db in Algoritmo::Algoritmo ()
  13. #11 0x00006c89 in Algoritmo::Algoritmo ()
  14. #12 0x00008f7a in main ()
  15.  
  16.  

Alguien tiene idea? La verdad es que os agradecería mucho la ayuda ya que en teoría mi proyecto está finalizado, pero si me ocurre esto en algunas ejecuciones no puedo experimentar...

Muchas gracias a todos como siempre

7
C/C++ / Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
« en: Lunes 29 de Noviembre de 2010, 23:00 »
Sí, era eso.. porque probé a hacer un cout.flush() al final de las sntencias y funciona.... GRACIAS !!!

8
C/C++ / Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
« en: Lunes 29 de Noviembre de 2010, 20:25 »
Al final sí se leían los número, pero no se mostraban........... Es decir, se leen si hago esto:

Código: C++
  1. if (Puntos_Muestra.is_open())
  2.         {
  3.             cout << "Hello" << endl;
  4.             float x;
  5.             Puntos_Muestra >> x;
  6.  
  7.             cout << x;        ----------------------> asi NO se muestran los numeros
  8.                         cout << x << endl; ------------------> asi SI se muestran
  9.         }
  10.  

Alguien sabe a qué se debe esto? Porque en teoria tendrían que mostrarse igualmente :S

9
C/C++ / Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
« en: Lunes 29 de Noviembre de 2010, 18:25 »
Ya encontré un error, el archivo si se abre, lo que no sucede es que se lea su contenido... me explico

Código: C++
  1. ifstream Puntos_Muestra (route.c_str());
  2.  
  3.         if (Puntos_Muestra.is_open())
  4.         {
  5.             cout << "hola" << endl;
  6.             float x;
  7.             Puntos_Muestra >> x;
  8.             cout << x;
  9.            
  10.         }      
  11.         // Se comprueba que el fichero se ha abierto correctamente
  12.         //if (!Puntos_Muestra)
  13.         else
  14.         {
  15.             cout << endl << endl;
  16.             cout << "No se pudo abrir el fichero. No existe o la ruta no es valida.";
  17.             cout << endl << endl;
  18.             exit(1);
  19.         }
  20.  

hola se imprime, pero X no...

10
C/C++ / Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
« en: Lunes 29 de Noviembre de 2010, 17:54 »
Hola, al final declaro un string (ruta), se lo paso a la funcion y hago:

ifstream Puntos_Muestra (ruta.c_str());

Pero el problema persiste, es decir, parece que abre el archivo, pero es como si reconociera el nombre y que está ahí pero sin embargo no sigue ejecutando sentencias...

PD: lo de reservar memoria sí me había dado cuenta pero más tarde, la verdad q era un fallo técnico algo grave :P jejeje

Gracias por dedicarme tiempo eh? l verdad es que me corre algo de prisa y por mas vueltas que le doy no consigo dar con el error :S

11
C/C++ / Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
« en: Lunes 29 de Noviembre de 2010, 13:59 »
la declaración es:

char * ruta_archivo;
string ruta;

luego convierto el string a char* y ese char * es el parametro q l paso a la funcion donde luego se ejecuta lo anterior, pero es que no sé por qué no va... :(

pongo aquí parte de la funcion que abre el archivo por si acaso :
Código: C++
  1. ifstream Puntos_Muestra (route);
  2.  
  3.        
  4.         if (!Puntos_Muestra)
  5.         {
  6.  
  7. // Ejecucion correcta
  8.  
  9.             cout << endl << endl;
  10.             cout << "No se pudo abrir el fichero. No existe o la ruta no es valida.";
  11.             cout << endl << endl;
  12.             exit(1);
  13.         }
  14.        
  15.         else
  16.         {
  17.  
  18. // Ejecución errónea, aquí se para el programa....
  19.  
  20.             cout << "hola";  // Comprobacion para ver que se abre el archivo
  21.            
  22.             float x, f_x_y;
  23.            
  24.  
  25.             vector<float> componentes (n_var);
  26.  
  27.             int n_puntos_muestra = 0;
  28.            
  29.             float valor_fitness = 0;
  30.  
  31.             Puntos_Muestra >> x;
  32.  
  33.             while (!Puntos_Muestra.eof())
  34.             {
  35.                
  36.                 for (int j = 0; j <  n_var; j++)
  37.                 {
  38.                     componentes[j] = x;
  39.                     Puntos_Muestra >> x;
  40.                 }
  41.                
  42.                 float output;
  43.                
  44.                 output = pob[i].Calcula_Output (componentes, straight_line);
  45.                
  46.                 float t = output - f_x_y;
  47.                 valor_fitness += pow (t, 2);
  48.                
  49.                 n_puntos_muestra++;
  50.                
  51.                 Puntos_Muestra >> x;
  52.             }
  53.            
  54.             valor_fitness /= n_puntos_muestra;
  55.            
  56.             pob[i].fitness = valor_fitness;
  57.         }
  58.     }
  59.  

12
C/C++ / Error Codigo!! Urge !! Problema al Leer Archivo !!
« en: Lunes 29 de Noviembre de 2010, 13:03 »
Hola, estoy intentando hacer una práctica en la que tengo que leer un archivo txt, pero no se por qué no se abre, si no que el programa en ejecucion se queda parado sin hacer nada...

Parte del código es:
Código: C++
  1.  
  2.     cout << endl << endl << "--> Ruta del fichero : ";
  3.    
  4.     cin >> ruta;
  5.    
  6.     ruta_archivo = new char [ruta.size()-1];
  7.     strcpy (ruta_archivo, ruta.c_str());
  8.  
  9.  

Ahora, "ruta_archivo" se lo paso a una función que, a parte de más cosas, abre el fichero, haciendo:

Código: C++
  1.     ifstream Puntos_Muestra (route);
  2.  
  3.         // Se comprueba que el fichero se ha abierto correctamente
  4.         if (!Puntos_Muestra)
  5.         {
  6.             // Código que se ejecuta bien si no se espcifica ruta o mal el nombre del fichero
  7.         }
  8.        
  9.         else
  10.         {
  11.                        // El programa se queda parado, supongo que aquí
  12.                 }
  13.  
  14.  
  15.  

Muchas gracias y un saludo.

13
C/C++ / Como se utiliza Función Objeto? :( Es importante porfavor !!
« en: Miércoles 23 de Junio de 2010, 13:47 »
Hola, necesito hacer una práctica para aprobar una asignatura de la carrera en la que me piden usar una función objeto. Yo tengo el código siguiente:

Código: C++
  1. #include <iostream>
  2. #include <vector>
  3. #include <iterator>
  4. #include <algorithm>
  5. #include <map>
  6.  
  7. using namespace std;
  8.  
  9. map<string,int> d;
  10.  
  11. void mifuncion (pair<string, string> t)
  12. {
  13.   map<string, int>::iterator i;
  14.   i = d.find(t.first);
  15.   if (i != d.end()) // Existe clave
  16.     d[t.first] += 1;
  17.   else
  18.       d.insert(i, pair<string,int>(t.first,1));
  19. }
  20.  
  21.  
  22. int main ()
  23. {
  24.         multimap<string, string> multi;
  25.  
  26.         cout << "Vaya insertando las claves en la forma K1, K2" << endl;
  27.         cout << "Presione ctrl+z para finalizar" << endl;
  28.  
  29.         string k1, k2;
  30.  
  31.         while (cin >> k1)
  32.         {
  33.             cin >> k2;
  34.             multi.insert(pair<string, string>(k1, k2));
  35.         }
  36.  
  37.         cout << endl << "Elementos del multidiccionario: " << endl;
  38.         for (multimap<string, string>::iterator it = multi.begin(); it != multi.end(); ++it)
  39.            {
  40.                cout << "  [" << (*it).first << ", " << (*it).second << "]" << endl;
  41.            }
  42.  
  43.         for_each (multi.begin(), multi.end(), mifuncion);
  44.  
  45.         cout << endl << "Elementos del diccionario: " << endl;
  46.         for (map<string, int>::iterator it = d.begin(); it != d.end(); ++it)
  47.            {
  48.                cout << "  [" << (*it).first << ", " << (*it).second << "]" << endl;
  49.            }
  50.  
  51.         return 0;
  52. }
  53.  


Cómo es entonces haciéndolo con una función objeto sin necesidad de declarar el diccionario global?

Muchas gracias !!

Páginas: [1]