• Domingo 28 de Abril de 2024, 22:08

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.


Temas - cremix

Páginas: [1]
1
XSL / Código XSL no me devuelve nada
« en: Jueves 25 de Noviembre de 2010, 19:47 »
Hola:

Estoy empezando con el xsl y estoy atascado en un punto y no condigo dar con una solución, qué además seguro que es una cosas muy tonta.
El fichero de entrada xml contiene lo siguiente:

Código: XML
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <graphml>
  3.     <graph>
  4.         <node id="sevilla"/>
  5.         <edge source="sevilla" target="huelva"/>
  6.         <edge source="sevilla" target="cadiz"/>
  7.         <edge source="sevilla" target="rosal de la frontera"/>
  8.         <node id="cadiz"/>
  9.         <edge source="cadiz" target="medina sidonia"/>
  10.         <node id="huelva"/>
  11.         <edge source="huelva" target="rosal de la frontera"/>
  12.         <node id="medina sidonia"/>
  13.         <node id="rosal de la frontera"/>
  14.     </graph>
  15. </graphml>
  16.  

Y el fichero de xsl contiene lo siguiente

Código: Text
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet
  3. version="1.0"
  4. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  5. xmlns="http://www.w3.org/1999/xhtml">
  6.  
  7. <xsl:variable name="ciudad" select="'cadiz'"/>
  8.  
  9. <xsl:output method="xml"/>
  10.  
  11. <xsl:template match="/graphml">
  12.     <graphml>
  13.         <graph>
  14.             <xsl:if test="graph/egde/@source = $ciudad">
  15.                 <xsl:copy-of select="graph/edge"/>
  16.             </xsl:if>
  17.         </graph>
  18.     </graphml>
  19. </xsl:template>
  20. </xsl:stylesheet>
  21.  
  22.  

Yo quiero que me salgan los edge cuyo atributo source sea el mismo que la variable ciudad que he declarado pero el programa no me devuelve nada. En este caso yo quiero que me devuelva
Código: XML
  1.  
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <graphml>
  4. <graph>
  5. <edge source="cadiz" target="medina sidonia"/>
  6. </graph>
  7. </graphml>
  8.  

Gracias, un saludo

2
Visual C++ / funcion getTickCount()
« en: Martes 23 de Junio de 2009, 13:18 »
Hola:

Tengo un programa que tarda en realizar calculos durante varios minutos. Es normal, eso no es lo que me importa. Lo que estoy intentando medir es el tiempo de ejecución del programa. Habia encontrado una solucion por Internet pero como mi programa tardaba varios minutos el contador se desbordaba. Entonces encontre la funcion getTickCount (http://msdn.microsoft.com/en-us/library/ms724408(VS.85).aspx). La he usado de este modo, con un codigo de prueba:

Código: C++
  1. #include <cstdio>
  2. #include <fstream>
  3. #include <iostream>
  4. #include <cstdlib>
  5. #include "CDuracion.cpp"
  6. #include <Windows.h>
  7. #include <time.h>
  8.  
  9. using namespace std;
  10.  
  11. int main(void)
  12. {
  13.    
  14.     double valor= 0.0,valor2 = 0.0;
  15.  
  16.     valor = getTickCount();
  17.     for(int i=0;i<100000;i++)
  18.         cout << "yyprum ";
  19.    
  20.     valor2 = GetTickCount();
  21.  
  22.     return 0;
  23. }
  24.  

Pero me da el siguiente error al compilar: error C3861: 'getTickCount': no se encontró el identificador.
Si he incluido la biblioteca y la funcion es así, ¿qué es lo que está pasando?

3
Visual C++ / funcion goto
« en: Domingo 21 de Junio de 2009, 21:07 »
Hola:

Estoy usando la función GOTO pero al ejecutar el programa me da el siguiente fallo. Sale en una ventana

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   
+   Microsoft Visual C++ Debug Library                                             +
+                                                                                                   +
+   Debug Erro2!                                                                             +
+                                                                                                   +
+   Program: L:IA2_RNNeuralNetworkDebugNeuralNetwork.exe     +
+                                                                                                   +
+   Invalid allocation size: 4294967295 bytes                                    +
+                                                                                                   +
+   (Press retry to debug the application)                                         +
+                                                                                                   +
+   [Anular]   [Reintentar]   [Omitir]                                            +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

El codigo que me da error es el siguiente:

Código: C++
  1. int crearRed(){
  2.    
  3. //Variables ...
  4.  
  5.    
  6. //Etiqueta
  7. menu_crear:
  8. {
  9.     //operaciones...
  10.  
  11.     while(...)
  12.     {   
  13.        //operaciones
  14.         if (...)
  15.         {
  16.             //...
  17.         }
  18.         if (...)
  19.         {
  20.             //...
  21.         }
  22.         else
  23.         {
  24.             //...
  25.         }
  26.        
  27.     }
  28.    
  29.    
  30.    //...
  31.  
  32.     while(...)
  33.     {
  34.         //...
  35.  
  36.         if (...) goto menu_crear;
  37.     }
  38.  
  39.  
  40.     //...
  41.  
  42.    
  43.     if (...)
  44.     {
  45.         //...
  46.         for (...)
  47.         {
  48.             //...
  49.             while(...)
  50.             {
  51.                 //...
  52.             }
  53.         }
  54.     }
  55.  
  56.     //...
  57.     while(strcmp(nombre, "")==0)
  58.     {
  59.         //...
  60.     }
  61.  
  62.    //...
  63.  
  64.     if (...)
  65.     {
  66.         //...
  67.     }
  68.     return tratarRed(red, nombre); 
  69.    
  70. }
  71. }
  72.  

Todo funcionaba perfectamente hasta que le puse el GOTO. Por eso he omitido el código dentro de los bucles y demás. ¿Alguien sabe por qué me da ese fallo?

4
Visual C++ / Caracter Enter y -1
« en: Sábado 20 de Junio de 2009, 13:22 »
Hola:

Estoy haciendo un programita en el que si introduces un -1 vas a un menu y si introduces Enter vas a otro. Sé que el Enter es el 13 pero ¿cómo puedo comparar un caracter con un entero?

5
Visual C++ / función open
« en: Martes 16 de Junio de 2009, 14:58 »
Hola:

Tengo un trozo de código en el que utilizo la función open.

Código: C++
  1.  ifstream entrada;
  2. entrada.open("red.txt");
  3.  

El problema que tengo es que si quiero abrir un fichero que no esté en el mismo directorio del programa, por ejemplo C:carpetared.txt. Entonces no me abre el fichero. ¿Esto se puede cambiar?

Un saludo

6
C/C++ / Arrays con basura
« en: Sábado 13 de Junio de 2009, 13:02 »
Hola:

No sé porqué razón defino los arrays con un tamaño determinado y cuando los imprimo por pantalla me salen con basura. Estoy haciendo una función llamada append que me una cadenas (por cierto, ¿sabéis si ya existe una?). Aquí os enseño el código:

Código: C++
  1.  
  2. char s1[5] = "abcd";
  3. char s2[5] = "efgh";
  4.  
  5. char *a;
  6.  
  7. a = append(s1,s2);
  8. cout << a << endl;
  9.  
  10.  
  11. char* append(char *cadena1,char *cadena2)
  12. {
  13.     int size=0,size1=0,i=0;
  14.  
  15.         //Obtengo lo que mediría la nueva cadena
  16.     while(cadena1[i]!='')
  17.     {
  18.         size1++;
  19.         i++;
  20.     }
  21.    
  22.     i=0;
  23.  
  24.     while(cadena2[i]!='')
  25.     {
  26.         size++;
  27.         i++;
  28.     }
  29.  
  30.     size += size1;
  31.  
  32.        //creo el nuevo array
  33.     char *res = new char[size];
  34.         //lo inicializo
  35.     for(int i=0;i<size1;i++)
  36.         res[i] = cadena1[i];
  37.    
  38.  
  39.     for(int i=size1;i<size;i++)
  40.         res[i] = cadena2[i-size1];
  41.  
  42.     return res;
  43. }
  44.  
  45.  
  46.  

¿Alguien puede decirme por qué pasa?

Un saludo

7
Visual C++ / Fallo en memoria
« en: Jueves 21 de Mayo de 2009, 10:51 »
Hola:

Mi problema es el siguiente. Tengo dos clases: Red y Nodo. En la clase red hay un triple puntero:

"Red.cpp"

protected:
  Nodo*** capas;//Es una matriz de punteros del tipo objeto Nodo


Ahora, en la misma clase, declaro las siguientes funciones:

Nodo***  Red::getCapas()
{
          return capas;
}

Nodo* Red::getNodo(int capa, int nodo)
{
       return capas[capa][nodo];
}


Y si me voy al MAIN y realizo, por ejemplo, lo siguiente:

Red* red = new Red(...);//creo Red

red->getCapas[j][k]->print_atributoDeNodo();//j y k son unos valores cualesquiera. El print es una función de la clase Nodo

Me compila correctamente pero al ejecutar el programa se me interrumpe la ejecución diciéndome:

Excepción no controlada en 0x00411fa1 en NeuralNetwork.exe: 0xC0000005: Infracción de acceso al leer la ubicación 0xcdcdcddd. Con las opciones de Interrumpir o Continuar.

En Resultados me sale lo siguiente:

'NeuralNetwork.exe': se cargó 'C:Documents and SettingspracticaEscritorioIA2_RNNeuralNetworkDebugNeuralNetwork.exe', Símbolos cargados.
'NeuralNetwork.exe': se cargó 'C:WINDOWSsystem32ntdll.dll'
'NeuralNetwork.exe': se cargó 'C:WINDOWSsystem32kernel32.dll'
'NeuralNetwork.exe': se cargó 'C:WINDOWSWinSxSx86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456msvcp90d.dll', Símbolos cargados.
'NeuralNetwork.exe': se cargó 'C:WINDOWSWinSxSx86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456msvcr90d.dll', Símbolos cargados.
Primera excepción en 0x00411fa1 en NeuralNetwork.exe: 0xC0000005: Infracción de acceso al leer la ubicación 0xcdcdcddd.
Excepción no controlada en 0x00411fa1 en NeuralNetwork.exe: 0xC0000005: Infracción de acceso al leer la ubicación 0xcdcdcddd.


Y si me voy al código de la función print por ejemplo ésta:

                                         void Nodo::print_delta()
                                        {

       ====>                               cout << "Delta del nodo: " << delta << endl;
                                        }


Me aparece esa flecha en amarillo.

¿Alguien sabe que es lo qué pasa? Si creo un Nodo normal, llamar a sus funciones no es ningún problema. Pero crear las funciones de acceso a un objeto de tipo Red, usarlas y acceder a los Nodos es todo un problema.

Un saludo

8
Visual C++ / Tamaño de un puntero pasado por parámetro
« en: Lunes 18 de Mayo de 2009, 18:12 »
Hola:

Si tengo esta función, por ejemplo:

int sumatorio(int* vector){...}

Como a la función le paso un array en forma de puntero ¿Cómo puedo calcular, en el cuerpo de esa función, el tamaño de vector?

No puedo hacerlo con sizeof porque entonces me dice, lógicamente, que el array tiene tamaño uno. ¿Hay algún modo de hacerlo?

un saludo

9
Visual C++ / No me deja crear un array de arrays de objetos
« en: Lunes 18 de Mayo de 2009, 16:04 »
Hola:

Necesito ayuda con una cosa del código que no sale ni para atrás. Estoy intentando crear un array de arrays de objetos. Los objetos son de tipo Nodo(creado por mi). En un primer momento he escrito lo siguiente:

"Red.h"

public:
   Nodo** capas;
   Nodo* nodos;
   Red(void);
   Red(int *num_nodos);
   ~Red(void);
};

"Red.cpp"

Red::Red(int *num_nodos) //esto es un array de enteros
{
       int k_capas = sizeof(num_nodos)/sizeof(num_nodos[0]);

   capas = new Nodo* [k_capas];
   
   for(int i=0;i<k_capas;i++)
   {
      capas = new Nodo[num_nodos];
   }
   
}

Pero luego resulta que no puedo hacer red->capas[0][0]. Se supone que el array capas debería de tener el tamaño del vector num_nodos y que además, cada posición de capas ha de apuntar a otro array de tamaño num_nodos. Pero lo que me sale es que capas tiene tamaño 1 y que ademas no es un array de Nodos, sino que directamente es un objeto de tipo Nodo.

¿Alguien sabe como puedo hacer ese array de arrays de objetos de tipo Nodo?

+-----++++++++++---------+---------+---------+---------+---------+
+  -------------->+ Nodo0 + Nodo1 + Nodo2 +    .....     +  NodoN +++++array 0
+-----++++++++++---------+---------+---------+---------+---------+
+ ... +
+-----++++++++++---------+---------+---------+---------+---------+
+  -------------->+ Nodo0 + Nodo1 + Nodo2 +    .....     +  NodoN +++++array M
+-----++++++++++---------+---------+---------+---------+---------+


Muchas gracias

10
Visual C++ / Destruir un objeto
« en: Domingo 17 de Mayo de 2009, 18:47 »
Hola:

Estoy intentado aprender a destruir objetos y por lo visto veo que hay que crear un puntero al objeto que cree y luego eliminarlo desde el objeto. Creo que he hecho eso pero aún asi el código no me copila. ¿Sabe alguien por qué?

Nodo.h
class Nodo{

protected:
   float salida;
   int size_pesos;
   float* pesos;
   
public:
   
   Nodo(int in_size_pesos, float in_salida);
   ~Nodo();
   void print_pesos();
   void print_salida();

};

Nodo.cpp

(...)

Nodo::Nodo(int in_size_pesos, float in_salida)
{
   size_pesos = in_size_pesos;

   salida = in_salida;

   pesos = new float[in_size_pesos];
   
   for(int i=0;i<size_pesos;i++)
      pesos = static_cast<float> (i*0.1);
}

Nodo::~Nodo()
{
   delete[] pesos;
}

(...)


EntryPoint.cpp

int main()
{
   Nodo node(10,6.0);
   Nodo* ptrNodo = new(Nodo)
   Nodo* p1 = &node; //Me da el fallo aquí

   node.print_salida();
   node.print_pesos();
   delete ptrNodo;
 
        (...)
}

Por cierto, ¿el destructor está bien así? Los atributos que no seas arrays o punteros ¿cómo los elimino?

Muchas gracias

11
Visual C++ / Fallo con un puntero
« en: Sábado 16 de Mayo de 2009, 18:49 »
Hola:

Uso el visual C++ y el código me da el siguiente erro

Unhandled exception at 0x004114fa in NeuralNetwork.exe: 0xC0000005: Access violation writing location 0x00000000.

He visto en otros foros (incluido en este) que el fallo está en un puntero, tal y como me indica también el programa. Mi duda es que no sé cómo solucionarlo, qué escribir. Mi archivo *.h es este :

#pragma once

class Nodo{

protected:
   float salida;
   int size_pesos;
   float* pesos;
//Este es el puntero que luego me dará el error
public:
   Nodo(int in_size_pesos, float in_salida);
   void print_pesos();
   void print_salida();

};


Éste es el método constructor, donde me salta el error:

Nodo::Nodo(int in_size_pesos, float in_salida)
{
   size_pesos = in_size_pesos;
   
   salida = in_salida;
   
   for(int i=0;i<size_pesos;i++)
   {

      (*pesos) =  static_cast<float> (i);//Y aquí el fallo
      (*pesos++);
   }
   pesos = pesos - size_pesos;*/
   
}


¿Cómo lo soluciono?
Muchas gracias

un saludo

PD: el fallo me salta con y sin el casting

Páginas: [1]