Hola muy buenas a todos!
En esta ocasión postearé una de las formas para conseguir obtener
la Sucesión de Fibonnacci (Wikipedia) en el lenguaje de programación
Visual Basic 6.
Primero comenzaré a explicar como poder obtenerla y más adelante os dejaré el código,
si eres una persona bastante impaciente y solo buscas que te lo den todo hecho puedes ir al final
del post y encontrarás dicho código.
Si por lo contrario, eres una persona que lo que pretende es entender como se hace cada cosa
y prefiere valerse por si mismo dentro de "x" años, te aconsejaría leer el post entero.
Sin más rodeos, comencemos.
Lo primero que debemos pensar y saber es como es la Sucesión de Fibonacci, en que se basa,
tal y como hemos comprobado al leer Wikipedia, espero que le hayáis echado un ojo, dicha
Sucesión se consigue al hacer la suma de los dos números anteriores para conseguir el próximo número.
¿Cómo conseguiríamos esto?
Bueno, si se busca por la red, hay múltiples formas de hacerlo aunque si nos fijamos, la gran mayoría lo realizan usando un bucle "FOR".
Inciso: Yo antes de buscar como obtenerla, pensé en como podría conseguirla por mi mismo por ello no lo realizaré con el bucle "FOR" si no con el bucle "WHILE". Obviamente al ser otro camino, tiene diferentes cosas. Pero vamos a ello! ;)
Primero lo que haremos será crear nuestro formulario:
Quedaría algo como lo de arriba.
Como vemos, tenemos un TextBox que nos indica añadir una secuencia, en este caso vamos a conseguir obtener todos los números de la sucesión que nosotros queramos! Por ejemplo imagina que solo quieres 20 números, pues pones solo 20 y si quieres 10 pues 10..! ;) (De todas formas, en cuanto al número de secuencias hay un error que os explicaré abajo como forma de "reto" para que busquéis la forma de arreglarlo y así os comáis un poco el coco. Será muy fácil! ;))
A los objetos los llamaremos de la siguiente manera:
TexBox grande -------------> Text1
TextBox de la secuencia -------------> Text2
Al boton "Fibonacciar." -------------> Command1
Al Text1 tendremos que añadirle las siguientes propiedades en la zona de "propiedades"
MultiLine -------------> True
ScrollBars -------------> Vertical
Tras realizar la interfaz gráfica, vamos a ponernos vamos a la obra con el código que es lo que nos interesa. Primero debemos crear una matriz, ¿Porqué? Bueno, nosotros lo que queremos hacer es ir cogiendo los dos últimos números que van quedando tras la suma de los dos anteriores, por tanto, la mejor opción, pese a que hay otras, es creando una matriz y comenzar a manejarla (Si no sabes como manejar una matriz, busca en la red y lee sobre Matrices en VB6 dinámicas y estáticas). En este caso utilizaremos una matriz dinámica que le cambiaremos el valor según nos convengan más o menos números.
Pensad en como podría ser un código primitivo que nos de al menos la suma de dos números y lo almacene en una matriz o en un TextBox, en algún sitio, donde sea...
Recordad que para ello usaremos variables. Se nos hará mas cómoda la existencia... ;)
Vale, una vez ahí, pensad que deberíais hacer para conseguir que la matriz o el TextBox donde se almacenó el resultado, se sume con el segundo número utilizado en la suma...
¡Correcto!
Lo que debemos hacer es sumar las variables que contengan al segundo número y al resultado de la suma de los dos primeros números.
Hasta aquí perfecto, pero y una vez que tenemos el trabajo hecho, ¿como podemos obtener todos los resultados de la Sucesión de Fibonacci sin tener que crear, manualmente, una variable para cada resultado?
Si pensamos un poco, las variables son datos almacenados en memoria en tiempo de ejecución, nosotros podemos cambiar el valor de estas. Pues vamos a ello, lo que debemos hacer es que cada vez que se sumen dos números, a la variable del primero se le añada el valor del segundo y a la variable del segundo el valor del resultado de la suma anterior.. Y así sucesivamente!
Yo para hacerlo utilicé el bucle "WHILE" Como podemos ver acontinuación.
Aunque está un poco cambiado con respecto a la explicación pues que en esta, yo me he centrado en explicarlo en el caso de usar cualquier cosa y en la aplicación me centré en hacerlo con matrices.
Al hacerlo con matrices, como se puede comprobar, lo único que hice fue incrementar en 1 el valor de cada "variable" para conseguir que cada vez que pasase por ahí, cogiesen los números correctos. Para incrementarlos, como se puede comprobar, utilicé un bucle "WHILE".
Y por último, solo debemos hacer que cada resultado se muestre uno tras otro en el Text1 y así, conseguir la Sucesión de Fibonacci!
El código tiene algunos comentarios para poder ser mejor entendido.
Código:
El resultado sería algo parecido a esto:
Espero que entendáis la idea principal de la aplicación y podáis modificarlo a vuestro gusto consiguiendo de manera similar otro tipo de retos que tendréis que solucionar por vuestra cuenta! ;)
Por cierto, hablando de retos, como os dije antes, el programa tiene un "Error" que produce un desbordamiento, esto se debe a que si introducimos un número mayor al soportado, la memoria se desborda. Por ejemplo, intentad introducir 47 de secuencia y veréis que todo está correcto, sin embargo, si tratáis de obtener una secuencia de 48, ocurre un desbordamiento. Esto se debe a que algo en las variables está mal. Espero que encontréis el error! Es un reto bastante fácil si tenemos unos conocimientos mínimos sobre Visual Basic 6
Espero vuestras soluciones!! :D
Si tenéis alguna duda no dudéis en comentar!
¡Un saludo a todos!




No hay comentarios:
Publicar un comentario