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

#81
Hola a todos.

Tengo que realizar un trabajo a partir de un código escrito en C++/CLI.

El caso es que voy a tener que usar 2 puertos USB y FrameLink.

Necesitaré usar .NET para manejar ambos puertos, y tengo que aprender a usarla.

Mi pregunta es si es lo mismo usar .NET en C# que en C++/CLI. (Salvo diferencias como los punteros y que en C# el separador es '.' y en C++/CLI es '::'), en ese caso debo buscar manuales de .NET no de C++/CLI, ¿cierto?


También me estoy planteando usar alguna API de Java o de Python para esta labor, ya que creo que C++ y .NET será mucho mas complicado que usar Java o Python.
¿Os parece buena idea?
¿Tendré problemas para llamar desde Python o Java a las funciones escritas en C++/CLI?

Gracias y saludos.
#82
Hola a todos.

Tengo que hacer un trabajo utilizando un código ya escrito en C++/CLI.
El caso es que al intentar compilar ese código en mi pc, con visual studio 2012, el compilador da error porque faltan un montón de cosas.

Diré la más sorprendete, parace que no tengo el namespace System::Windows::Forms.

Ya lo he descargado por internet (es un dll), ahora necesito saber donde descomprimirlo.

¿Alguien me ayuda por favor?

Saludos y gracias.
#83
Ok, muchas gracias por la respuesta.

He estado buscando tutoriales/manuales etc. de C++/CLI. NADA en español, ¿alguien tiene algún manual/tutorial en español por favor?

Saludos y gracias.
#84
Hola a todos, tengo que realizar un trabajo en el que tengo que utilizar un código ya escrito de C++ y aparecen cosas que no he visto nunca.

Por ejemplo esto:

ref class MiClase{
  ...
}

¿Eso se supone que usa el garbage collector de .NET?
¿Por descontado que no es C++ estándar no?
¿Que compilador es compatible con esa cosa?

Mi otra pregunta es si esto es un puntero:

static SerialPort^ _serialPort;

De nuevo saber que compilador se traga eso y sobre todo si es o no un puntero.

Gracias, saludos.
#85
SOLUCIONADO:

El algoritmo estaba bien. El problema era que desde el main ponia al caballo en las coordenadas [2][2] por ej. pero antes de entrar al algoritmo no indicaba en el tablero que la casilla [2][2] estaba pisada.

Saludos.
#86
Hola a todos, se trata de resolver el problema de, dado un tablero de ajedrez de 5x5, pisar todas las casillas con un caballo (sin pisar la misma casilla 2+ veces)

Estoy intentando averiguar por qué este código no funciona

def nextMovement(posActual, movedores, iter):
   """ Devuelve el siguiente movimiento a realizar
       posActual: vector de 2 comp. (coords x e y) ==> posicion actual del caballo
       movedores: matriz de 2x8 que indica los posibles movimientos que se pueden hacer con el caballo
       iter: número que indica que movedor aplicar
   """
   casilla = [None] * 2
   casilla[0] = posActual[0] + movedores[0][iter]
   casilla[1] = posActual[1] + movedores[1][iter]
   return casilla

def casillaAdmisible(tablero, casilla):
   x=casilla[0]
   y=casilla[1]
   tam=len(tablero)
   if(x>=tam or y>=tam or x<0 or y<0 or tablero[x][y]!=0):
       return False
   return True

def mover(casilla, tablero, etapa):
   tablero[ casilla[0] ][ casilla[1] ] = etapa
   
def anularMovimiento(casilla, tablero):
   tablero[ casilla[0] ][ casilla[1] ] = 0

def backTrackingChessHorse(tablero, posActual, etapa, movedores):
   exito = False
   for i in range(len(movedores[0])):
       if(exito):
           break
       casilla = nextMovement(posActual, movedores, i)
       if not casillaAdmisible(tablero, casilla):
           continue
       aux=posActual
       mover(casilla, tablero, etapa)
       posActual=casilla
       if(etapa == len(tablero)**2):
           exito = True
       else:
           exito = backTrackingChessHorse(tablero, posActual, etapa + 1, movedores)
           if(not exito):
               anularMovimiento(casilla, tablero)
               posActual=aux
   return exito

def printTablero(tablero):
   for i in range(len(tablero)):
       print(tablero[i])

Problema: se consigue llegar a la etapa 25 (la última), pero nunca devuelve True, entre en bucle infinito.
No veo el error, ¿alguien puede ayudarme?
#87
Programación C/C++ / Re: Duda minishell
4 Abril 2014, 00:53 AM
Hola.

Por lo que leo intentas hacer algo como grep "[regexp]" < [fichero_de_texto], pero con grep no hace falta poner el '<', simplemente:
grep grep "[regexp]"  [fichero_de_texto]
Por ejemplo:
grep "asdasd" fich1 ==> ok
grep "asdasd" < fich1 ==> no ok

Además, cuando haces dup2(), esta función devuelve un nuevo descriptor de fichero, y deberías cerrar el antiguo, me explico:


   int fd=creat(fichName,0644);
   //Creamos un descriptor para el fichero (el mas bajo disponible
   //como no he cerrado ninguno, sería el 3 en principio).
   int nuevoFd=dup2(fd,1);
   //Duplico el descriptor 'fd' para asignárselo al descriptor 1 (stdout)
   //de tal manera que la salida estándar ha pasado a ser el fichero en
   //cuestión.
   close(fd);
   //Ya no necesito el antiguo descriptor, cierro.


Si no cierras el otro, creo que tendras el mismo descriptor apuntando a dos sitios a la vez.

Por otro lado, al crear el proceso hijo luego haces solo un if() para ver si es el hijo, pero el proceso padre debe esperar a que acabe el hijo. Así:

int n=fork();
switch(n){
case -1:
cerr<<"ERROR"<<endl;
break;
case 0:
//soy el proceso hijo, ahora voy a hacer mis cosas...
break;
default:
                       //soy el proceso padre, voy a esperar a mi hijo:
wait(NULL);
break;
}


Saludos.

PD. yo he tenido que hacer una práctica de crear un minishell, la tengo y está bastante documentada (el código con explicaciones y tal), si la quieres pídela.
#88
Hola a todos.

Estoy intentando usar el Google C++ testing framework con un pequeño código fuente pero no consigo hacerlo funcionar.

Ya he instalado el gtest, y he progado a hacer include de sus librerias en los ficheros de código que estoy compilando, y hasta ahí funciona.

El problema me surge cuando intento ya crear un test :

TEST(..., ...){
        EXPECT_GE(..., ...());
}


Intento compilar el fichero donde hago las pruebas con g++ <nombre_fichero> -o test y me da el siguiente error:
(Después de un montón de texto de error que no copio) collect2: ld devolvió el estado de salida 1

Alguien me ayuda por favor? Gracias.
#89
Subo el código, está en dos ficheros separados:

Fichero 1 (decoradores):

'''
Created on 26 Feb 2014

@author: dan
'''

from time import time

#Decora la función para sacar por pantalla el id del
#hilo que se está ejecutando
def printThreadName(_self):
   def _thread_i_am(function):
       def tim(*args,**kwargs):
           r = function(args,kwargs)
           print("I am ",_self.getName()," thread")
           return r
       return tim
   return _thread_i_am


FIchero 2 (clase que usa los decoradores)

import threading
from Decorators import printThreadName

class FileThread(threading.Thread):
   def __init__(self,_filePath):
       threading.Thread.__init__(self)
       self.larger_line=None;
       self.filePath=_filePath
   
   #Devuelve la línea mas larga de un fichero
   def __largerLine(self):
       ...
        ...
       

   def getLargerLine(self):
       return self.larger_line
   
   @printThreadName(self)
   def run(self):
       self.largerLine();



Saludos y gracias de antemano.
#90
Hola a todos.

Estoy intentando decorar el método de una clase. El decorador en cuestión tiene un parámetro.
Dentro de la clase intento decorar la función A() con este decorador (pasándole como parámetro 'self'), pero al llamar al método A() me da error:

" NameError: name 'self' is not defined "

¿Qué hago mal?

Gracias