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

#1041
Has visto alguna vez una especificación de un lenguaje de programación ??

Si la respuesta es negativa, búscate el estándar de cualquier lenguaje... javascript, c, c++, ruby, ... verás que disponen de una especificación bastante completa que cubre todos los posibles casos de uso del lenguaje.

Ese estándar es la base sobre la que se asienta el lenguaje y a partir de la cual se desarrolla el mismo.

Para empezar careces de esa base, lo cual implica que no te has parado a pensar las posibles implicaciones que puede tener cualquier característica que le añadas al lenguaje, y eso suele conllevar como norma general al fracaso del proyecto al llegar a vías sin salida cuyo arreglo requiere demasiadas horas de trabajo.

Si quieres desarrollar una suerte de lenguaje de scripting, primero acota ese lenguaje y escribe una especificación sobre el mismo. Después revisa esa especificación y busca puntos débiles, posibles fallos y errores y detalles sin especificar que hayas pasado por alto.

Cuando termines con esa tarea tendrás una idea bastante buena de cómo ha de funcionar tu analizador.

Sin especificación tu idea es bastante posible que no alcance buen puerto... no ponerle límites, por ejemplo, da pie a que se te ocurran ideas maravillosas que tengan un impacto terrible en tu sistema... la pena es que para cuando te quieras dar cuenta habrás dedicado una cantidad ingente de horas y deshacerlo no va a ser moco de pavo.

#1042
Cita de: HijoDePuta en  5 Agosto 2013, 11:14 AM
Mi primera duda es que no comprendo a qué se refiere con secuencia, si a una palabra (como "cosa") o si a una serie de caracteres ("c" - "o" - "s"...).

Una secuencia es que el usuario escriba en pantalla, por ejemplo, "abcdf hola como estas no se que poner".

En c tienes varias opciones:

* Puedes proponerte crear un vector lo suficientemente grande como para que sea dificil llenarlo... 1000 caracteres por ejemplo.

* Una opción más elegante sería implementar una función que permitiese incrementar el tamaño del buffer de forma dinámica según se llene... para hacer esto tendría que crear un nuevo buffer de un tamaño superior al actual, copiar los datos del buffer viejo al nuevo y liberar la memoria del viejo buffer.

En c++, utilizando las clases stream no deberías tener problemas por overflow, ya que estas clases ya incorporan sus propios mecanismos de protección.
#1043
Lo que tu estás buscando es un sistema de reconocimiento de patrones... ya te digo que con tus conocimientos va a ser complicado dominar ese terreno.

Deberías empezar con cosas más asequibles.

Si tienes como mucho unos conocimientos superficiales sobre programación deberías olvidarte de esto por una temporada y centrarte primero en mejorar tus aptitudes... aprende a manejar la memoria, a gestionar clases y recursos, etc...

Si ya tienes unos conocimientos más o menos sólidos de programación prueba a bajarte e instalarte opencv, tiene bastantes funciones para crear sistemas de reconocimiento de patrones y hay tutoriales por internet ( ojo, si te saltas la parte del párrafo anterior esto no te va a servir de nada ). Deberías empezar primero por intentar reconocer patrones sencillos sobre imágenes estáticas y luego intentar dar el paso para reconocer patrones directamente sobre la marcha leyendo la memoria de la pantalla.
#1044
si tienes conexión a internet puedes probar el sistema de google.

No es que sea el mejor del mundo pero según tus necesidades puede ser gratuito.
#1045
Cita de: DarkSorcerer en  3 Agosto 2013, 07:12 AM
Quiero dar un pequeño aporte, un "Arbol Binario de Busqueda" (tipo especifico de Arbol Binario) cumple que siempre el hijo izquierdo es menor que la raiz, y el de la derecha es mayor.

Eso mismo lo había dicho yo más o menos aquí:

Cita de: eferion en 31 Julio 2013, 12:12 PM
El nodo izquierdo, si existe, tiene un valor inferior al nodo padre... el nodo derecho es superior.

#1046
Electrónica / Re: Duda inhibidores
2 Agosto 2013, 12:05 PM
Todo esto al final no deja de ser teoría de la señal... yo gracias a no dedicarme a ello lo tengo un poco oxidado y no se si podría ayudarte mucho más.

Al final todo se reduce a matemáticas.
#1047
Electrónica / Re: Duda inhibidores
2 Agosto 2013, 11:05 AM
Un inhibidor cumple su cometido emitiendo ruido en un rango de frecuencias determinado y con una potencia más alta que la señal a inhibir.

Es como intentar hablar en una discoteca... la música de la discoteca es bastante alta y actúa a modo de inhibidor... para contrarrestarlo tienes que hablar muy alto y al día siguiente te despiertas afónico.

Cualquier dispositivo que se comunique por ondas es susceptible de ser inhibido... si quieres inhibir el router basta con que emitas ruido a 2.4 GHz a más de 200mW cerca del router.

Si por contra quieres inhibir la tarjeta tendrías que subir la potencia por encima de 1W.

Tu piensa que la comunicación de red es bidireccional, no funciona únicamente en un solo sentido.

Esto quiere decir que si lo que emite la tarjeta le llega al router, pero éste es incapaz de comunicarse con la tarjeta la comunicación no funciona.

En este caso metiendo, por ejemplo, 400mW de potencia cerca del router seguramente no evites que la señal que emita la tarjeta le llegue al router... pero si vas a impedir que el router sea capaz de enviar algo legible a la tarjeta, ya que la señal del ruido va a ser superior siempre a la señal del router y, en consecuencia, la tarjeta no va a recibir información legible.

Si quieres cortar definitivamente la comunicación con el router tendrás que subir la potencia por encima de 1W... de esta forma ni tan siquiera lo que envíe la tarjeta será recibido por el router.
#1048
Programación C/C++ / Re: C ó C++ ??
2 Agosto 2013, 09:19 AM
Cita de: cracksergio en  2 Agosto 2013, 08:36 AM
Eso pasa porque, lamentablemente, en las Universidades te entregan conocimientos basándose en lo que es necesario para uno al salir al mundo laboral. Y, teniendo eso en cuenta, y sin comparar ningún lenguaje con otro, Java se vende más que C++. Es mejor pagado y las empresas buscan más a gente que sepa trabajar con Java, en comparación a C++.

No llega a ser del todo cierto.

Java y .Net son lenguajes que se están haciendo muy populares, además de ser más sencillo programar en ellos con respecto a c y c++.

Esto lleva a que mucha gente se dedique a aprender tanto Java como .Net... la bolsa de trabajadores crece pero no así la de ofertas laborales... en consecuencia los salarios bajan.

Yo estuve buscando trabajo hace dos años... mirando por la rama de .Net y Java no conseguía encontrar una oferta seria que superase los 22.000 anuales... por c y c++ pude encontrar sin rascar mucho ofertas más apropiadas.

Amén de todo esto, el que quiera vivir bien con un trabajo casi asegurado, que aprenda cobol y se vaya a trabajar a un banco... no innovará pero tendrá un salario bastante decente y prácticamente un trabajo fijo de por vida.
#1049
Cita de: OmarHack en  2 Agosto 2013, 06:38 AM
No creo que haya tanta diferecia, si me lo puedes demostrar las usaré :P
Gracias, voy a informarme, un saludo.

A ver, las llamadas a printf, cout, etc, se comunican directamente con el sistema.

Sin embargo, un system( " ... " ) es más complejo:

* En primer lugar, no es portable.
* En segundo lugar, una llamada a system( "echo ..." ), por ejemplo implica ejecutar el programa pause, es decir, tu aplicación solicita al sistema la ejecucion de la aplicación echo, esta aplicación se ejecuta, recibe el mensaje y entonces hace su propia llamada a printf, después finaliza, se liberan los recursos y tu programa vuelve a recuperar el hilo de ejecución.

Se puede afirmar, por tanto, que usar funciones propias de c y c++ para interactuar con el usuario son muuuuucho más eficientes que usar system.
#1050
Mira, te pongo un ejemplo de herencia, en c++... ya que en vb esto que te voy a poner no se puede hacer.

Código (cpp) [Seleccionar]

class Animal
{
  public:
    virtual void Nombre( )
    {  std::cout << "Animal" << std::endl; }
};

class Perro : public Animal
{
  public:
    void Nombre( );
    {  std::cout << "Perro" << std::endl; }
};


class Gato: public Animal
{
  public:
    void Nombre( );
    {  std::cout << "Gato" << std::endl; }
};

void main ( )
{
  // Creo tres clases de forma dinamica y almaceno sus instancias en punteros de tipo de la clase base
  // Esto en vb directamente no puedes hacerlo.
  Animal* animal1 = new Animal( );
  Animal* animal2 = new Perro( );
  Animal* animal3 = new Gato( );

  // Saca por pantalla lo siguiente:
  // Animal
  // Perro
  // Gato
  animal1->Nombre( );
  animal2->Nombre( );
  animal3->Nombre( );

  // Le pregunto a las 3 instancias si son del tipo Perro
  Perro* perro1 = dynamic_cast< Perro* >( animal1 ); // devuelve un puntero nulo, pues no es de tipo Perro.
  Perro* perro2 = dynamic_cast< Perro* >( animal2 ); // devuelve un puntero valido.
  Perro* perro3 = dynamic_cast< Perro* >( animal3 ); // devuelve un puntero nulo.

  // ... Podria hacer lo mismo con la clase Gato ...

  // ... Si por ejemplo gato heredase de perro, la instruccion siguiente devolveria un puntero valido
  Perro* perro3 = dynamic_cast< Perro* >( animal3 );


Esto es herencia... y en vb no lo puedes hacer.