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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 [113] 114 115 116 117 118 119 120 121 122 123 124 125
1121  Programación / Programación C/C++ / Re: Programa para averiguar el dia de la semana en: 18 Julio 2013, 16:25 pm
a ver... si tu sabes que, de promedio, cada mes tiene 30.42 días.

Si tu pones 5 de Julio de 1900... qué día del año es??

Lo primero es calcular el número de días hasta Julio, es decir, 30.42 * ( 7 - 1 ) = 182.52.

Como estás trabajando con enteros, el resultado se trunca a 182.

Si tu sumas: 31 + 28 + 31 + 30 + 31 + 30 = 181 ( uno menos ).

Luego en las siguientes líneas hace los ajustes necesarios para terminar de cuadrar el dato.

Una vez que tienes el número de días que hay entre el 1 de enero de 1900 y la fecha que has introducido, divides entre 7 y te quedas con el resto... ese resto te da el día de la semana.


1122  Programación / Programación C/C++ / Re: Duda direcciones de memoria C en: 18 Julio 2013, 16:14 pm
Si hacemos int* ptr1,ptr2,ptr3;  entonces ptr1,ptr2 y ptr3 son punteros a un entero.
Si hacemos int *ptr1,ptr2,ptr3;  entonces solo ptr1 es un punterom. El resto son variables enteras.

Ese es un ejemplo claro de cosas que no hay que hacer a la hora de programar :)

Que luego baila algún espacio y podemos sudar tinta hasta dar con el fallo.
1123  Programación / Programación C/C++ / Re: Duda direcciones de memoria C en: 18 Julio 2013, 15:59 pm
son idénticas.

En c y c++ los espacios no son tenidos en cuenta ( salvo en las cadenas de caracteres )
1124  Programación / Programación C/C++ / Re: Programa para averiguar el dia de la semana en: 18 Julio 2013, 15:59 pm
Código
  1. ndias= (long) (30.42 * (mm - 1) + dd); //dia aproximado del año

Enero: 31 días
Febrero: 28 días
Marzo: 31 días
Abril: 30 días
...

Total días por año: 365 días ( 12 meses )
Media de días por mes: 365 / 12 = 30.41666

Para calcular el número de días calcula la media de días por mes y lo multiplica por el número de mes que hayas puesto.

Luego hace un ajuste rápido para los meses de menos de 31 días y ajusta también posibles años bisiestos y listo.
1125  Programación / Programación C/C++ / Re: Duda direcciones de memoria C en: 18 Julio 2013, 15:53 pm
Cuando tú ejecutas un programa el sistema operativo reserva memoria y se la asigna al programa para que pueda trabajar.

La memoria, como norma general, está paginada y/o segmentada. Básicamente esto quiere decir que está dividida en fragmentos.

El sistema operativo dispone de un algoritmo que elige, entre los disponibles, qué segmento de memoria va a asignar al programa... dicho algoritmo suponemos que es LTI ( lineal e invariante en el tiempo ), es decir, que a una misma entrada, en unas mismas condiciones, generará siempre la misma salida.

Por tanto, si tu ejecutas varias veces seguidas tu programa sucederá lo siguiente:

Ejecutas el programa ( 1ª vez )
El sistema operativo reserva un fragmento de memoria y se lo asigna.
El programa te muestra los desplazamientos.
El programa finaliza y el fragmento de memoria es liberado.
Ejecutas el programa ( 2ª vez )
El sistema operativo, te asigna el mismo fragmento de memoria.
El programa te muestra los desplazamientos.
El programa finaliza y el fragmento de memoria es liberado.
...

Si quieres tener resultados diferentes prueba a poner una pausa en el programa, lo ejecutas una vez y, sin cerrarlo, lo vuelves a ejecutar. Verás como entonces sí te cambian las posiciones de memoria.
1126  Programación / Programación General / Re: Programacion de chatbot con IA en: 18 Julio 2013, 15:46 pm
La inteligencia artificial que tu planteas de momento no creo que sea realizable por una sola persona.

No es algo accesible de primera mano y tiene una gran carga matemática por detrás.

Normalmente las aplicaciones que hacen uso de IA disponen de una "inteligencia" limitada casi en exclusiva a un campo de aplicación: jugar al ajedrez, imitar a un insecto, reconocer matrículas, ... pero lo que tu propones es algo así como aglutinar todo eso para crear una aplicación que sea capaz de aprender leyendo libros... no cuesta ya conseguir un traductor medio decente y tu pretendes que tu proyecto sea capaz de aprender a base de leer.

Yo creo sinceramente que de momento el proyecto es irrealizable, al menos como lo planteas.

1127  Programación / ASM / Re: Comandos puertos I/O en: 18 Julio 2013, 13:34 pm
Eso es algo que te tiene que proporcionar el fabricante... el que fabrica la tarjeta es el que conoce todos los entresijos de dicha tarjeta.

Otra opción es usar ( si la tarjeta dispone de esta posibilidad ) del protocolo estándar para el caso, por ejemplo el de comunicación por usb o el de las tarjetas gráficas... no podrás obtener toda la potencia del hardware usando este mecanismo pero desde luego la programación será más sencilla y estará mejor documentada.
1128  Programación / Programación C/C++ / Re: Ayuda con bot! (Half-life) en: 18 Julio 2013, 09:36 am
En serio, practica primero haciendo tareas más sencillas con los sockets y luego verás como hacer lo que quieres aquí no va a ser tan complicado.

Eso si, más que cogerse un exploit e intentar desgranarlo suele ser más productivo buscar y empollarse el protocolo de comunicación que utiliza el juego.

Más que nada porque dichos protocolos, a nada que sean mínimamente completos, suelen tener características que pasan desapercibidas pero que pueden provocar fallos inesperados en tu código si no las tienes en cuenta.
1129  Programación / Programación C/C++ / Re: Calcular máximo de matriz, error en: 18 Julio 2013, 08:47 am
Si quieres que todos los elementos de un array se inicializen a cero:
Código
  1. int _temp[128]; // temporal para ordenar
  2. for (int i = 0; i < 128; i++) {
  3.   _temp[i] = 0; // añado inicializador
  4. }
Puedes hacerlo de una forma mas breve, indicando el valor del primer elemento:
Código
  1. int _temp[128] = {0}; // _temp[0] es cero, los elementos restantes se inicializan a cero

Además de las dos mencionadas, creo que la forma más común de inicializar la memoria es utilizar la función memset.

Código
  1. memset( _temp, 0, sizeof( _temp ) );

1130  Programación / Programación C/C++ / Re: Ayuda con bot! (Half-life) en: 18 Julio 2013, 08:40 am
Por qué no empiezas por cosas más asequibles como diseñarte un pequeño entorno cliente-servidor en el que puedas intercambiar mensajes y archivos??

Lo que tu pides aquí es bastante denso y, aparte de eso, no tienes las ideas claras.

Con el "sistema UPD de winsock" imagino que te refieres a establecer una conexión UDP ( que no UPD ) con el servidor de half life... UDP es un protocolo de conexión estándar, no una exclusividad de winsock, que funciona sobre IP ( otro protocolo ).

No tiene sentido que te pongas a hacer programas así si no tienes ni idea de lo que estás haciendo... así no vas a aprender y te va a resultar demasiado frustrante.
Páginas: 1 ... 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 [113] 114 115 116 117 118 119 120 121 122 123 124 125
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines