33bits
[Hilo Oficial] Esto también es otro arte...el ARTE de programar - Versión para impresión

+- 33bits (https://33bits.net/foro)
+-- Foro: Temas de debate (https://33bits.net/foro/Foro-Temas-de-debate)
+--- Foro: Off Topic (https://33bits.net/foro/Foro-Off-Topic)
+--- Tema: [Hilo Oficial] Esto también es otro arte...el ARTE de programar (/Tema-Hilo-Oficial-Esto-tambi%C3%A9n-es-otro-arte-el-ARTE-de-programar)

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 26 27 28 29 30 31 32 33


Re:Esto también es otro arte...el ARTE de programar - Margaruga - 10-11-2012

¿O sea booleanos? Que al fin y al cabo no son más que un 1 o un 0.






Re:Esto también es otro arte...el ARTE de programar - Margaruga - 10-11-2012

No sé si soy muy malo con la algoritmia, con las matemáticas o con las dos cosas. Ando jugando con los números primos y por ejemplo una función que me devuelva el primo nº100000 es lentita (no lo medí pero sobre 4 segundos) y bueno cálcular primos grandes siempre es complejo pero mucho mucho más grandes que el primo nº1000000.


Re:Esto también es otro arte...el ARTE de programar - thewazaa - 10-11-2012

Calcular primos es una pesadilla. No hay funcion. No siguen un patron sencillo.

Ahoora bien, no son multiples dejando el 2, el 3 y el 5..., no son multiples de 2, 3 o 5.

Eso dignifica que puedes ir, a partir del 7, de 2 en 2. Lo mas sencillo es una tabla.

Primos[]=2,3,5,7,11,13,17,19

I=21
Encontrados=8
Mientras encontrados<1000000
  Si i no divisible por algun primo
    Encontrados++
    Primos[]=i
  I+=2
Mas o menos esto.

Los matematicos lo que tienen es complicadas funciones de aproximacion que dicen posibles primos... Pero se han de verificar!

Su naturaleza los convierte en valores ideales para algoritmos de codificacion, usados en tarjetas de credito, y tal.

Es un hecho conocido que si algun dia alguien descubre una funcion matematica que te de los primos...

Bueno, si pasa, mejor sacar el dinero del banco. En el calcetin de toda la vida estsra mas seguro


Re:Esto también es otro arte...el ARTE de programar - Margaruga - 10-11-2012

Hago más o menos eso, compruebo si un número no es divisible por sus primos anteriores a su raíz cuadrada (hay un teorema que viene a decir que si un número no tiene divisores en la mitad inferior de su raíz cuadrada no los tiene en la superior no recuerdo el nombre ahora). Supongo que la misma solución en C será varias veces más rápida que en Python.┬á roto2:


Re:Esto también es otro arte...el ARTE de programar - thewazaa - 10-11-2012

(10-11-2012 15:26)Margaruga link Hago más o menos eso, compruebo si un número no es divisible por sus primos anteriores a su raíz cuadrada (hay un teorema que viene a decir que si un número no tiene divisores en la mitad inferior de su raíz cuadrada no los tiene en la superior no recuerdo el nombre ahora). Supongo que la misma solución en C será varias veces más rápida que en Python.┬á roto2:
tienes razon,obvio me dejaba algo.

Es lento. No tiene más.

Calcular primos es costoso.


Re:Esto también es otro arte...el ARTE de programar - thewazaa - 11-11-2012

Ok, flags

Los flags, como ha dicho Margaura, son variables de control, basadas en base 2.

Ejemplo básico: tienes una función de escribir, que puede escribir en pantalla, en un fichero de logs,, syslog, o el registro de eventos de windows. Para simplificar no pondré un nivel de error.

Tenemos:

LOG_NOTHING = 0
LOG_TXT = 1
LOG_SYSLOG = 2
LOG_EVENTLOG = 4

function writeLog(txt, config) {
  if (config & LOG_TXT != 0)
    wirte txt en fichero
  if (config & LOG_SYSLOG != 0)
    wirte txt en syslog
  if (config & LOG_EVENTLOG != 0)
    wirte txt en eventlog
}

write("prueba 1", LOG_TXT);
write("prueba 2", LOG_TXT | LOG_EVENTLOG);
write("prueba 3", LOG_TXT | LOG_SYSLOG | LOG_EVENTLOG);

Bien, esta tonteria, increiblemente práctica, es uno de los ejemplos más básicos y más usados del uso de flags. Y es increiblemente práctico. En una única variable, que dependiendo del largo puede albergar más o menos posibilidades... podemos hacer que una función tenga más de una forma de uso.

Si añadimos eso a la configuración del programa, podemos habilitar debugs fácilmente, subir de golpe el nivel de detalle de los logs, etc.

De hecho, seguramente ya lo esteis usando sin daros cuenta, o si, sin saber que en realidad es esto o puede que si.

Los flags tienen muchas ventajas:
- consumen poco
- son rápidos (las operaciones de base 2 son de lo más rápido que puede hacer un ordenador)
- son muy fáciles de usar.

Y como os habreis dado cuenta, sencillamente se basan en el or y and.... binarios.


Re:Esto también es otro arte...el ARTE de programar - Margaruga - 11-11-2012

¿Y esto por qué coño nunca me lo contaron en clase?┬á roto2: Lo veo muy práctico sí y no es exactamente lo que estaba pensando. Gracias thewazaa


Re:Esto también es otro arte...el ARTE de programar - thewazaa - 11-11-2012

(11-11-2012 08:13)Margaruga link ¿Y esto por qué coño nunca me lo contaron en clase?┬á roto2: Lo veo muy práctico sí y no es exactamente lo que estaba pensando. Gracias thewazaa
A mi tampoco me lo explicaron, pero francamente, mi profesorado dejaba bastante que desear.

De hecho, a medida avanza la tecnologia,creo que ha ido augmentando una dejadez en la programación. Antes tenias que consumir pocos recursos, poca memoria, ser rápido. Un archivo de guardado ocupaba unos pocos bytes. (para poner un ejemplo). Era el mapeo directo de un struct o vete tu a saber. Ahora, raro es el que no ocupe un par de megas, en una estructura de xml comprimido muy "human redeable" cuando el que sea "human redeable" es lo que menos importa.

Aún así, los flags son muy usados. Seguro que más de una vez los habéis usado y todo.


Re:Esto también es otro arte...el ARTE de programar - IkeIV - 11-11-2012

Qué jodidamente satisfactorio es poder hacer que el monigote de un juego camine de derecha a izquierda y viceversa sin dar errores tras cinco horas de modificar códigos y dibujar pixel a pixel en paint y photoshó roto2:




Re:Esto también es otro arte...el ARTE de programar - Margaruga - 11-11-2012

(11-11-2012 22:27)IkeIV link Qué jodidamente satisfactorio es poder hacer que el monigote de un juego camine de derecha a izquierda y viceversa sin dar errores tras cinco horas de modificar códigos y dibujar pixel a pixel en paint y photoshó roto2:

La verdad es que es muy gratificante cuando horas de trabajo al final dan su fruto. ¿Qué estás haciéndo exactamente?


Re:Esto también es otro arte...el ARTE de programar - IkeIV - 12-11-2012

(11-11-2012 23:24)Margaruga link La verdad es que es muy gratificante cuando horas de trabajo al final dan su fruto. ¿Qué estás haciéndo exactamente?

"Rehaciendo" en Allegro/DEV-C++ los tres primeros niveles de Lode Runner como proyecto final de la clase de Algoritmos y Programación, por ahora tengo listos los movimientos de izquierda a derecha (van como la seda) y la animación de muerte cuando el personaje mira a la izquierda (que la tengo asignada a la tecla B), aunque uno de los sprites de la muerte no está bien ubicado y me va a tocar añadirle dos columnas vacias de a pixeles, pero vamos, aún ando en lo fácil, que luego cuando vengan los enemigos me voy a volver loco... banana:


Re:Esto también es otro arte...el ARTE de programar - Margaruga - 12-11-2012

(12-11-2012 00:19)IkeIV link "Rehaciendo" en Allegro/DEV-C++ los tres primeros niveles de Lode Runner como proyecto final de la clase de Algoritmos y Programación, por ahora tengo listos los movimientos de izquierda a derecha (van como la seda) y la animación de muerte cuando el personaje mira a la izquierda (que la tengo asignada a la tecla B), aunque uno de los sprites de la muerte no está bien ubicado y me va a tocar añadirle dos columnas vacias de a pixeles, pero vamos, aún ando en lo fácil, que luego cuando vengan los enemigos me voy a volver loco... banana:

Pues cuando lo termines ven a dejar muestra de tu trabajo Tongue