Suite de Fibonacci
GW-Basic, utilisé par PC-Basic
Programme avec Texte Seulement
PC-BASIC
La célèbre suite de Fibonacci n'a pas commencé avec Fibonacci mais, comme de nombreuses idées occidentales, est née en Orient.
Néanmoins, dans le livre Liber Abaci (1202), Fibonacci (également connu sous le nom de Léonard de Pise) établit la suite, comme modèle de la croissance d'une population simplifiée de lapins. Supposons que la période de gestation des lapins soit d'un mois.
Au début, il y a une paire ; au bout d'un mois, il y a encore un couple, mais ils se sont accouplés. La progéniture naît à la fin du deuxième mois, formant deux paires : l'ensemble d'origine et un nouvel ensemble de lapins. Un autre mois, une autre paire, pour un total de trois paires. Cela continue, à l'infini.
Aussi, assez célèbre, le rapport des termes successifs de la suite de Fibonacci converge vers le nombre d'or (bien que ce ne soit pas la seule séquence récursive à le faire):
Le nombre d'or apparaît dans la nature et l'architecture et dans le design anciens (et modernes), entre autres.
Lors de l'exécution du programme FIBO.BAS, vous êtes invité à appuyer sur la touche ÉCHAP pour commencer la séquence (et vous pouvez la terminer, une fois qu'elle a commencé, en appuyant sur ÉCHAP).
La ligne 20 fixe les valeurs initiales pour la première génération de lapins, tandis que la ligne 50 commence le calcul à partir de là. Après deux uns, le terme suivant est simplement la somme des deux termes précédents : dans ce cas, deux. Et ainsi de suite.
10 KEY OFF:SCREEN 9:COLOR
15,0:CLS
15 PRINT:PRINT TAB(16);"Suite Fibonacci:"
16 PRINT "Appuyez <ESC>
Pour commencer"
17 IF INKEY$<>CHR$(27) THEN 17
20 TEMP2=1:TEMP=1:P=1
30 PRINT TEMP,P,
40 FOR T= 1 TO 33
50 TEMP=P:P=TEMP+TEMP2:TEMP2=TEMP
60
PRINT P,
65 IF INKEY$=CHR$(27) THEN END
70 NEXT T:PRINT:PRINT
Le plus gros problème avec le programme réside dans une limitation clé de GW-BASIC. Après trente-trois itérations, les sommes deviennent trop importantes pour que l'interpréteur puisse les gérer. Une solution de codage à ce dilemme peut (au moins partiellement) être trouvée dans le programme ADD.BAS, présenté plus loin.