Título: ¿Cómo los números se producirían más rápido en M.Flash 5? Publicado por: Tachikomaia en 16 Enero 2024, 17:41 pm Si un while dura demasiado, aparece un mensaje diciendo eso, así que no quiero usar whiles largos como:
Código: N = -1 Con los for supongo que ocurre lo mismo, igual no me gustan los for. Cuando una repetición es larga, se puede hacer: Código: Frame 1: Para mejorar eso se puede hacer: Código: Frame 1: Para evitar repetición de código, se puede hacer algo así: Código
Pero mi código quiero que guarde los Ns que cumplan ciertas condiciones y que se detenga sólo cuando cada una haya sido cumplida por algún N, hago esto: Código
Por otro lado, tengo otro programa que intento que haga lo mismo pero en vez de probar los números 0, 1, 2, 3... quiero que sean 0, 1, 10, 2, 11, 100... y quiero que funcione más rápido si es posible, es decir, ya tengo un código que hace eso pero tiene el defecto de tener frames "al ped*" como mostré en el código 2, quiero aplicarle la "técnica" que mostré en el 4, o acelerarlo así de algún modo ¿cómo? Este es el código: Código
Título: Re: ¿Cómo los números se producirían más rápido en M.Flash 5? Publicado por: Serapis en 17 Enero 2024, 17:20 pm Si un while dura demasiado, aparece un mensaje diciendo eso, así que no quiero usar whiles largos como: Al decir 'duran demasiado', no tengo claro si tratas de decir que la ejecución del interior 'hace demasiadas cosas' o que la condición (en el ejemplo un contador), es elevado....Código: N = -1 Con los for supongo que ocurre lo mismo, igual no me gustan los for. Verás, si estás operando con cada día del año, que son 365, pués es correcto que el bucle deba tener 365 iteraciones... que te guste o no, no tiene sentido. El cóoooodigo que debe hacerse es justo el preciso que resuelva el problema que se trata de solucionar, no otro distinto que te resulte 'más bonito'... para cosas bonitas, está el arte (pintura, escultura, etc...). La programación es funcional, es lo que se le exige. Cuando una repetición es larga, se puede hacer: pero ahí, simplemente estás haciendo 2 incrementos seguidos, para eso proporcionas al contador que sume de dos en dos y ya. Código: Frame 1: Claro que quizás sea solo a modo d eejemplo del cuerpo de un bucle, en ese caso, repetir 2 veces el cuerpo completo de un bucle uno tras otro, es hacer redundancia del código para nada. Los bucles son hoy día muy efectivos, pués el procesador cuenta con registros de índice y comprobaciones que lo hacen muy eficiente. Desde luego un salto incondicional tras una comparación más o menos compleja (que hacen las veces de condiciones), puede ser ligeramente más rápido, pero oscurece el código, especialmente cuando el código ha de tener muchas líneas de código... y con muchas no me refiero a unas cientas o pocos miles (que también notarán esa afección). Los bucles forman la primera salida hacia la programación estrucutrada... quien a día de hoy no los use (porque prefiera usar 'goto's), como programador no puede tener mucho futuro, porque allí donde vaya, nadie va a entender su código sin dedicarle unos meses y ninguna empresa estará dispuesto a que sus trabajadores pierdan tiempo tan estúpidamente solo por ahorrar 2 instrucciones con cada iteración de un bucle. A menudo optimizando el código superas en mucho la eficiencia como para preocuparte de una cosa tan insignificante. ...nota que a día de hoy, los procesadores operan en el rango de 1-5 mil millones de instrucciones por segundo, y entiende por tanto lo estupido de tratar de ahorrar 2 instrucciones en un bucle de 100, 1000 o 1.000.000 de iteraciones, cuando revisando el código seguramente se pueda mejorar en muchas partes quizás hasta un 10% más eficiente, a menudo incluso no es extraño un 1000%, especialmente en casos de usar lenguajes inadecuados. Por otro lado, tu gran problema (creo que ya te lo he dicho más de una vez, aunque quizás con otras palabras), es que estás muy limitado porque usas un lenguaje muy limitado. Nada peor para un programador que ajustarse a la medida de un lenguaje, porque implica que sus luces y sus sombras no vendrán marcadas por su intelecto, sino directamente limitadas por el lenguaje en el que 'se autoajusta'. Un lenguaje de programación, debe servir para ampliarte horizontes, no para limitártelos. Cuando un lenguaje te limita, es el momento adecuado para abandonarlo y saltar a otro más 'evolucionado', menos limitado, salvo que al momento presente no exista ninguno mejor al caso... Título: Re: ¿Cómo los números se producirían más rápido en M.Flash 5? Publicado por: Tachikomaia en 17 Enero 2024, 18:45 pm Al decir 'duran demasiado', no tengo claro si tratas de decir que la ejecución del interior 'hace demasiadas cosas' o que la condición (en el ejemplo un contador), es elevado.... Me refiero a que toma mucho tiempo ejecutar el código. Si el código de cada frame debe ejecutarse en 0.2 segundos o lo que sea y le pones un código larguísimo, no se podrá ejecutar tan rápido y dará un mensaje de error, al menos así me ha pasado algo así e interpreto que es por eso. Además la pantalla se actualiza sólo cuando hay un cambio de frame.Citar Verás, si estás operando con cada día del año, que son 365, pués es correcto que el bucle deba tener 365 iteraciones... Aquí debe hacerse en distintos frames.Citar El cóoooodigo que debe hacerse es justo el preciso que resuelva el problema que se trata de solucionar, no otro distinto que te resulte 'más bonito'... No es una cuestión de belleza sino de que funcione lo más rápido posible con las herramientas que me gusta usar y puede ser con otras que desconozca.Citar pero ahí, simplemente estás haciendo 2 incrementos seguidos No, es como un while:Código: Frame 1: Primero N es -1. Pasa al frame 2, ahí aumenta el número y lo muestra: 0 Pasa al frame 3, vuelve al 2. En el frame 2, aumenta el número y lo muestra: 1 En el frame 3 vuelve al 2. Y así. No es eficiente porque en el frame 3 hay una pequeña pausa. ...Bueno, a mí me gusta programar eficientemente, pero con goto. Puede que sea un tanto contradictorio, pero no tanto. Es como que tú vas en helicóptero y yo... intento hacer una bicicleta lo mejor posible, aunque no vuele. Es que a pesar de todo no he visto un lenguaje que me parezca mejor, simplemente debo aprender a usar mejor este. Título: Re: ¿Cómo los números se producirían más rápido en M.Flash 5? Publicado por: Tachikomaia en 19 Enero 2024, 10:33 am Hice esto:
Código Funciona mucho más rápido pero no lo puedo parar (no sé por qué) y en cierto punto me aparece el mensaje: (https://i.ibb.co/KbxFGHX/too-fast.png) Intentaré entender por qué no lo puedo parar y mejorarlo pero si sigo así para cuestiones como esta puede que pida que me recomienden un programa/lenguaje. Por ahora no. |