in Ciencia

Serie de Fibonacci en QBasic

Serie de Fibonacci
Este post está un poco (siendo generoso) descolgado de los demás, pero un puñadito de gente llegó al blog (anterior) buscando cómo hacer la serie de Fibonacci en QBasic. Se deben haber ido tan rápido cómo los trajo hasta acá el propio Google, al no haber encontrado lo que buscaban. Por eso, para que no se vayan con las manos vacías…

[adsense]Claro que un puñado de personas no son muchas, ni siquiera para este humilde blog, pero me tocaron un punto débil y es justo el QBasic. Lenguaje prácticamente en desuso salvo para algunos nostálgicos cómo yo y en honor a todos esos que lo siguen exprimiendo y por la simpleza del pedido, me tomé la molestia (o mejor dicho el gusto) de hacer caso a su pedido, así que vamos a calcular la serie de Fibonacci.

Primero que nada, veamos cómo se forma la serie:
se comienza con un número a y un número b, se los suma y obtengo otro llamado c.

Ejemplo: a = 0, b = 1, c = a+b entonces c = 1

Luego, a toma el valor que tenía b y b toma el valor que tenía c

a = 1 y b = 1

Calculo nuevamente c:

c = a+b entonces c = 2

y esto se repite las veces que quiera. El número c, es el número que forma la serie de Fibonacci.


Ahora, para hacer esto en QBasic, hacemos el siguiente programa:

CLS
a = 0
b = 1
FOR x = 1 TO 21
PRINT “n1:”; a, : PRINT “n2”; b,
c = a + b
PRINT “Fibonacci:”; c,
PRINT
a = b
b = c
SLEEP
NEXT

En el programa anterior calcula sólo los primeros 21 números de la serie.
Si desean calcular más, sólo tienen que cambiar el valor 21 del FOR por la cantidad deseada. 😉

Muy simple, no es cierto? Ok, pero vamos a hacer la cosa un poco más atractiva, vamos a hacer una representación gráfica de los valores. Acá el programa se complica muchísimo y no voy a comentarlo paso a paso. Para obtener un programa que grafique la serie cómo muestra esta captura,

click en la imágen para ampliar…


copie el siguiente código:

‘——–Serie de Fibonacci———–
‘——— by DrGEN ———-
‘—- http://www.DrGEN.com.ar —

SCREEN 12
CLS
COLOR 15
LOCATE 1, 1: PRINT “18.000”
LOCATE 13, 2: PRINT “9.000”
LOCATE 19, 2: PRINT “4.500”
LOCATE 25, 6: PRINT “1”
LINE (50, 1)-(50, 400), 14
LINE (50, 400)-(400, 400), 14
COLOR 15
LINE (410, 1)-(600, 400), 14, B

LOCATE 2, 54: PRINT “N1 N2 Fibo”
LINE (470, 1)-(530, 400), 14, B

LOCATE 27, 1: PRINT ” – Serie de Fibonacci – By DrGEN – http://www.DrGEN.com.ar -”
COLOR 12
LOCATE 27, 35: PRINT “GEN”
COLOR 2
LOCATE 27, 33: PRINT “Dr”
COLOR 7

A = 0
b = 1

FOR x = 1 TO 21
COLOR 9
LOCATE x + 2, 54: PRINT A
LOCATE x + 2, 61: PRINT b
c = A + b
LINE (x * 10 + 50, 390 – (c / 50))-((x – 1) * 10 + 50, 390 – (b / 50)), 1

COLOR 12
LOCATE x + 2, 69: PRINT c
PRINT
A = b
b = c
CIRCLE (x * 10 + 50, 390 – (c / 50)), 2, 12
LINE (470, 1)-(530, 400), 14, B
SLEEP
NEXT

Les dije que era más complicado… pero el resultado vale la pena, y ni siquiera tienen que tipearlo. El Ctrl-C y Ctrl-V agiliza la vida de los programadores 😉

Ya había terminado el programa y pensé: pero tal vez quieran calcular también el númerp phi o número aureo!
Entonces abrí nuevamente el QBasic, y me puse manos a la obra…

El número Phi, número aureo, razón aurea, número dorado, y muchos otros nombres, es simplemente un número que resulta de la razón entre dos números de la serie de Fibonacci consecutivos. Ejemplo:

1/1=1
2/1=2
3/2=1.5
5/3=1.666
8/5=1.6


El número Phi es un número irracional cómo el número Pi, es decir tiene infinitos decimales y si lo vamos calculando, vemos que su valor oscila permanentemente en torno a 1.618 que es lo que se toma como valor aproximado.

Ok, el programa siguiente, modificación del anterior, lo calcula y lo imprime gráficamente logrando este resultado:

fibonacci en qbasicclick en la imágen para ampliarla…


La línea blanca representa a Phi, y no tiene nada que ver con el valor del eje vertical del gráfico de la serie.

Programa Final:

‘——–Serie de Fibonacci———–
‘——— by DrGEN ———-
‘—-http://www.drgen.com.ar—-

SCREEN 12
CLS
COLOR 12
LOCATE 1, 1: PRINT ” 18000″
LOCATE 13, 2: PRINT ” 9000″
LOCATE 19, 2: PRINT ” 4500″
LOCATE 25, 6: PRINT “1”

COLOR 14
LOCATE 10, 2: PRINT “1.618”

LINE (50, 1)-(50, 400), 14
LINE (50, 400)-(400, 400), 14
COLOR 15
LINE (410, 1)-(600, 400), 14, B

LOCATE 2, 54: PRINT “N1 N2 Fibo”
COLOR 14
LOCATE 2, 41: PRINT “Phi”
LINE (470, 1)-(530, 400), 14, B
COLOR 15
LOCATE 27, 1: PRINT ” – Serie de Fibonacci – By DrGEN – http://www.drgen.com.ar -”
COLOR 12
LOCATE 27, 35: PRINT “GEN”
COLOR 2
LOCATE 27, 33: PRINT “Dr”
COLOR 7

A = 0
B = 1
D = 0

FOR x = 1 TO 21
COLOR 9
LOCATE x + 2, 54: PRINT A
LOCATE x + 2, 61: PRINT B
C = A + B

D = C / B

LINE (x * 10 + 50, 390 – (C / 50))-((x – 1) * 10 + 50, 390 – (B / 50)), 1
LINE (x * 10 + 50, 390 – (D * 150))-((x – 1) * 10 + 50, 390 – (D2 * 150)), 7
D2 = D
COLOR 12
LOCATE x + 2, 69: PRINT C
COLOR 14
LOCATE x + 2, 41: PRINT D
PRINT
A = B
B = C
CIRCLE (x * 10 + 50, 390 – (C / 50)), 2, 12
CIRCLE (x * 10 + 50, 390 – (D * 150)), 1, 14
LINE (470, 1)-(530, 400), 14, B
SLEEP
NEXT

Para cerrar este aburrido post (para la gran mayoría), les dejo algún dato interesante sobre la serie: En un libro llamado “Libro de los ábacos” escrito por el mismo Fibonacci (significa filio Bonacci o hijo de Bonacci), en realidad llamado Leonardo de Pisa Fibonacci, cuenta que con su serie se puede calcular casi perfecatamente el número de pares de conejos n meses después después de que una primera pareja comienza a reproducirse (suponiendo que los conejos se empiezan a reproducir cuando tienen dos meses de edad).

Si les gustó este post, acá estan los mejorcitos =) (acá otros tutoriales)

O pueden seguir con estos:

Generador aleatorio de Código Genético

Cómo hacer fotografías de alta velocidad

Cómo hacer un termómetro con un grillo

5 Razones para subscribirte al blog


Ah! me olvidaba… si les gustó este post, subscríbanse al RSS o por Mail para poder disfrutar los posts que están por venir! Gracias!



Me siento afortunado...

  1. Ahh las maravillas de las matemáticas (?)
    Y las maravillas del ctrl+c y ctrl+v (creo que esto último es lo más maravilloso en la historia de la creación!)
    Un beso Doc, creo que es la primera vez que firmo desde que se mudó el blog. Exitos!
    Sofi.

  2. esta bueno como uno puede contactar con unos de ustedes para que nos ayudaran a poder realizar un programa para nuestro examen de programacion

  3. Me di cuenta de un pequeño error: lo correcto es llamarla “Sucesión de Fibonacci”.

    En matemática, una sucesión es un conjunto infinito de números, para el cual uno tiene la receta para construirlo (como en este caso la suma de los dos números anteriores). Una serie, por el otro lado, se trata de la suma de todos los elementos de una sucesión (por lo tanto, una suma infinita).

    Si habláramos, entonces, de la “Serie de Fibonacci”, significaría pensar en el numero que resulta de la suma de la sucesión -es decir 1+1+2+3+5+8+13+21+…-

    Ya sé que sucesión y serie pueden ser sinónimos en español, pero en el lenguaje de las matemáticas no.

Comments are closed.