elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 122
91  Programación / Programación C/C++ / Re: Ejercicio compila pero no se ejecuta en: 10 Abril 2014, 12:44 pm
¿Que IDE usas?

En el codeblocks si pulsas F8 activas el depurador, y puedes avanzando el programa línea a línea. Así ves donde el programa "estalla".

Otra opción es ir poniendo printfs por el código y ver cuantos printfs llega a escribir antes de que de error, pero el depurador es una tecnica un poco chapucera xD
92  Programación / Programación C/C++ / Re: Representación de Coordenadas en: 10 Abril 2014, 12:41 pm
* Si expones la variable directamente y después necesitas cambiarlo a función porque te das cuenta de que necesitas realizar algún chequeo u operación adicional, te ves obligado a recompilar todo el código ( en mi caso unas 6 horas ).
Un inciso.

Si cambias el tipo de la coordenada de int a float (o añades algún método/operador nuevo)... ¿No tendrías que recompilar todo el código? Para que te coja la declaración de la clase digo.

Lo pregunto por si conoces algún atajo que yo no sepa.
93  Programación / Programación C/C++ / Re: Como crear un autoclicker sin timer:D en: 10 Abril 2014, 11:10 am
Simplemente es llamar continuamente a la funcion de windows api que simule "clicks".

Aunque yo lo pondria una pequeña pausa (10-20ms) entre click y click (por la cpu mas que nada).
94  Programación / Programación C/C++ / Re: Calculo de pi en alta precisión (aporte) en: 9 Abril 2014, 21:08 pm
El problema no es imprimir muchos datos, sino el acceso a pantalla. Cada vez que adcedes a pantalla el programa se "congela" hasta que se refresque.

Por eso he condensado toda tu salida en un solo string, para que haga un solo acceso a pantalla.

PD: Si crees que la diferencia de tiempo es baja, te invito a poner un simple cout en el bucle de cálculo. A ver la diferencia de tiempos ;D
95  Foros Generales / Sugerencias y dudas sobre el Foro / Sobre los avatares en: 9 Abril 2014, 20:24 pm
No sé porque, pero esto de los avatares me falla bastante.

Dado esta imagen:


La subo al avatar y al cambiar de página me la borra sola :huh:

Y que yo sepa las dimensiones son las legales *_*:
https://docs.google.com/document/d/1OsG_dD3SwbkOmMTg3bAFFRFY69Tq6JQLFf593n97D7Y/preview#heading=h.0f7161dd5db5
96  Programación / Programación C/C++ / Re: Calculo de pi en alta precisión (aporte) en: 9 Abril 2014, 20:04 pm
Las asignaciones de este tipo de números son muy lentas. Si puedes evitarte usar esa variable auxiliar aumentarías velocidad.

Y bueno el cout es muyyyyyyyy lento, tardarías menos en imprimir haciendo así:
Código
  1. #include <sstream>
  2.  
  3. //....
  4.  
  5. string valor = mpf_get_str(NULL, &buff, 10, 0, sumatoria);
  6. stringstream aux;
  7.  
  8. for (i = 1; i < digitos * 100 + 1; i++) {
  9.       aux << valor[i];
  10.       if (i % 10 == 0) aux << ' ';
  11.       if (i % 500 == 0) aux << endl;
  12.       if (i % 50 == 0 && i < digitos * 100) aux <<endl << i + 1 << ":\t";
  13. }
  14. aux << endl;
  15.  
  16. cout<<aux.str();
  17.  
97  Programación / Programación C/C++ / Re: Representación de Coordenadas en: 9 Abril 2014, 18:37 pm
Se puede interpretar. Pero sigue sin ser cuerdo, por ejemplo, ver "coordenada.longitud()".
Cierto.

Pues le cambio el nombre de Cord a vector y listo ^^
98  Programación / Programación C/C++ / Re: Representación de Coordenadas en: 9 Abril 2014, 18:29 pm
A mi me gusta más la tercera opción por varias razones:

* Existe encapsulamiento.

* Permite obtener un código más legible, sobretodo si se sobrecargan varios operadores ( suma, resta, ... )

* Su mantenimiento luego es más sencillo y se limitan la cantidad de "gazapos" por parte del que usa el objeto.

* Es muy sencillo acoplarle una batería te test para asegurar el correcto funcionamiento.

Se que tiene varias desventajas, pero desde mi punto de vista y mi experiencia ( trabajo en un cad orientado al sector naval ) me dicen que la tercera opción es la que más beneficios tiene.

Algunas desventajas:

* Resevas de memoria al crear copias del objeto, lo que reduce sensiblemente el rendimiento.

* Hay que currárselo todo al principio.

Vaya no lo había visto así. ¿Pero es necesario el encapsulamiento en un objeto así?

La segunda manera tambien usa un objeto, en C++ las estructuras son a todos los efectos clases con sus miembros y clases bases publicos por defecto. Los constructores no existen en C.
Muy cierto, quizás debería haber sido más preciso en la terminología ^^

Y como dato final, yo prefiero hacer vectores, no coordenadas. Aunque prácticamente son lo mismo, tienen más usos cuerdos. No es cuerdo sumar coordenadas, en cambio sí lo es sumar vectores. No es cuerdo un producto mixto de coordenadas, pero sí uno de vectores. En fin.
Las coordenadas se pueden interpretar como un vector desde la posición (0,0) a la posición (x,y). Ergo si tiene un uso cuerdo.

Quizás para no liar se puede cambiar el nombre de Cord -> Vector.
99  Programación / Programación C/C++ / Representación de Coordenadas en: 9 Abril 2014, 16:49 pm
Buenas.

Frecuentemente hay que trabajar con coordenadas en la programación. Actualmente conozco tres formas de pasarlas:

1º A "pelo" con dos variables int:

Código
  1. int x = 1;
  2. int y = 1;
  3.  
  4. pintar(x,y);

2º Creandote una estructura "Cord":

Código
  1. struct Cord
  2. {
  3.    int X,Y;
  4.  
  5.   Cord(int x,int y) : X(x),Y(y) {}
  6. };
  7.  
  8. //...
  9.  
  10. pintar(Cord(1,1));

3º Un objeto Cord con su encapsulamiento y su todo:
Código
  1. class Cord
  2. {
  3. int X,Y;
  4.  
  5. public:
  6.  
  7. Cord(int x,int y) : X(x),Y(y) {}
  8.  
  9. int getX() const {return X;}
  10. int getY() const {return Y;}
  11. void setX(int x){X = x;}
  12. void setY(int y){Y = y;}
  13.  
  14. bool operator==(const Cord a) const {return X == a.X && Y == a.Y;}
  15. bool operator!=(const Cord a) const {return X != a.X || Y != a.Y;}
  16.        Cord operator+(const Cord a) const{return Cord(A.X+X,A.Y+Y);}
  17. };
  18.  
  19. //...
  20.  
  21. Pintar(Cord(1,1));]

En vuestra opinión. ¿Cual es la forma más adecuada? Con la primera quizás se escribe menos, aunque se te acumulan los argumentos en la función.
100  Programación / Programación C/C++ / Re: Duda función barajar en: 8 Abril 2014, 22:18 pm
Al parecer ya ha editado su post con la implementación... Pero la propuesta de Ivan no es una solución eficiente (intenta mezclar 10 millones de elementos, a mí me tardó 4 minutos...).

Por cierto Leo, haciendo pruebas me he dado cuenta que hay una forma un poco más sencilla de mezclar. No es necesario definirte una constante con el numero de iteraciones:
Código
  1. for (int i = 0;i < v.size(); i++)
  2.    swap(v[i],v[rand()%A.size()]);

Dicho de otra forma, recorro el array y cada posición la intercambio con otra aleatoria. De esa forma tengo la garantía de tener el array desordenado y no tengo que definir una constante "a ojo".

La función swap no es más que:
Código
  1. void swap(int &a,int &b)
  2. {
  3.    int c = a;
  4.    a = b;
  5.    b = c;
  6. }
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 122
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines