RETROGICIEL
LA SUITE DE FABONACCI
RETROGICIEL
LA SUITE DE FABONACCI
⇩. Présentation
Voici un des grand classique des premiers programmes proposés au débutant.
La suite de Fibonacci est une suite de nombres entiers, dont les deux premiers éléments sont obligatoirement 0 et 1, chaque terme suivant étant la somme des deux termes précédents. Ainsi cette suite commence par : 0, 1, puis ( 0 + 1 = ) 1 ;
0, 1, 1, puis ( 1 + 1 = ) 2 ;
0, 1, 1, 2 puis ( 1 + 2 = ) 3 ;
0, 1, 1, 2, 3 puis ( 2 + 3 = ) 5 ;
0, 1, 1, 2, 3, 5 puis ( 3 + 5 = ) 8 ;
0, 1, 1, 2, 3, 5, 8 puis ( 5 + 8 = ) 13 ;
0, 1, 1, 2, 3, 5, 8, 13 puis ( 8 + 13 = ) 21 ;
0, 1, 1, 2, 3, 5, 8, 13, 21 puis ( 13 + 21 = ) 34 ; ...
La suite de Fabonaccie, très simple à compléter de membre en membre, est considérée comme le tout premier modèle mathématique en dynamique des populations.
⇩. Consignes
Le programme doit :
afficher les deux premiers éléments de la suite (0 et 1) ;
calculer et afficher les 10 éléments suivants ;
demander à l'utilisateurs s'il souhaite continuer ;
si l'utilisateur veut voir les 10 éléments suivants, retourner à 2 ;
sinon sortir du programme.
D'abord, faite-le fonctionner. Ensuite, faite-le beau. Enfin, faite-le performant.
Amusez-vous bien !
Télécharger RETROGICIEL - La suite de Fabonacci.
Cette présentation nécessite que Python 3 soit installé sur votre machine.
Après avoir téléchargé le fichier La suite de Fabonacci.7z, décompressez-le dans le répertoire de votre choix.
Ouvrez le répertoire qui vient d'être créé.
Lancez le fichier Retrogiciel.py.
Cliquez sur l'onglet RUN et testez le programme.
Créez votre propre script dans un des langages proposés ou un autre de votre choix.
Le répertoire contient aussi :
- Python.py, l'exemple en PYTHON sans tkinter ;
- Tkinter.py, l'exemple en PYTHON avec tkinter ;
- Qb84.bas, l'exemple en QBASIC avec qb64 ;
- Bbc.bas, l'exemple en BBC BASIC avec bbc sdl.
# --- Origine Nerd ---
# --- RETROGICIEL - PYTHON ---
# --- La suite de Fabonacci ---
# -*- coding: utf-8 -*-
# --- DÉFINITION DES FONCTIONS PERSONNALISEES ---
LST_Calcul = [ 0 , 1 ]
# --- PRESENTATION ---
print ( "LA SUITE DE FABONACCI." )
print ( )
print ( "0, 1, ..." )
# --- BOUCLE PRINCIPALE ---
while True :
# --- Calcul de 10 élément de la suite ---
print ( )
ksuivants = ""
for ksuite in range ( 10 ) :
ksuivant = sum ( LST_Calcul )
LST_Calcul [ : ] = [ LST_Calcul [ 1 ] , ksuivant ]
print ( str ( ksuivant ) + ", " , end = "" )
# --- Choix du bouclage du programme ---
print ( )
kchoix = input ( "Afficher les 10 valeurs suivantes (O ou N) ? " )
if kchoix.upper ( ) == "N" : break
# --- FIN DU PROGRAMME ---
print ( "Au revoir" )
# --- Programme : JFB ---
# --- Juin 2024 ---
# --- Fin ---
Pour mieux comprendre l'exemple en PYTHON sans tkinter.
# --- Origine Nerd ---
# --- RETROGICIEL - TKINTER ---
# --- La suite de Fabonacci ---
# -*- coding: utf-8 -*-
# --- IMPORTATION DES MODULES ---
# --- Modules de la bibliothèque standard ---
import tkinter
# --- DÉFINITION DES FONCTIONS PERSONNALISEES ---
# --- Calculer et afficher les 10 éléménts suivants ---
def FNC_Suivants ( Q ) :
BUT_Suivants [ "state" ] = "disabled"
BOX_Suite.insert ( "end" , " " )
for ksuite in range ( 10 ) :
BOX_Suite.insert ( "end" , f"{ sum ( Q ) }" )
Q = [ Q [ 1 ] , sum ( Q ) ]
BOX_Suite.see ( "end" )
BOX_Suite.update ( )
TKI_Principal.after ( 50 )
LST_Calcul [ : ] = Q
BUT_Suivants [ "state" ] = "normal"
# --- CREATION DE L'INTERFACE GRAPHIQUE ---
# --- Création de la fenêtre principale ---
TKI_Principal = tkinter.Tk ( )
TKI_Principal.title ( "RETROGICIEL - La suite de Fabonacci" )
# --- Création des controles nommées ---
BUT_Suivants = tkinter.Button ( TKI_Principal , text = "Continuer ..." , command = lambda : FNC_Suivants ( LST_Calcul ) )
BOX_Suite = tkinter.Listbox ( TKI_Principal )
BAR_Vertical = tkinter.Scrollbar ( TKI_Principal )
BOX_Suite [ "yscrollcommand" ] = BAR_Vertical.set
BAR_Vertical [ "command" ] = BOX_Suite.yview
# --- Mise en place des controles (anonymes et nommés) dans la fenêtre principale ---
tkinter.Label ( TKI_Principal , text = "LA SUITE DE FABONACCI." ).grid ( row = 0 , column = 0 , columnspan = 2 , sticky = "nesw" )
BOX_Suite.grid ( row = 1 , column = 0 , sticky = "nesw" )
BAR_Vertical.grid ( row = 1 , column = 1 , sticky = "nesw" )
BUT_Suivants.grid ( row = 2 , column = 0 , columnspan = 2 , sticky = "nesw" )
tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy ).grid ( row = 3 , column = 0 , columnspan = 2 , sticky = "nesw" )
# --- Mise à jour de controle ---
BOX_Suite.insert ( "end" , "0, 1" )
BUT_Suivants.invoke ( )
# --- DEBUT DU PROGRAMME ---
TKI_Principal.mainloop ( )
# --- Programme : JFB ---
# --- Juin 2024 ---
# --- Fin ---
Pour mieux comprendre l'exemple en PYTHON avec tkinter.
' --- Origine Nerd propose pour ---
' --- RETROGICIEL - QB64 ---
' --- La suite de fabonacci ---
' --- INITIALISATION GENERALE ---
DIM TBL_Valeurs(1) AS _UNSIGNED _INTEGER64
TBL_Valeurs(0) = 0
TBL_Valeurs(1) = 1
' --- DEBUT DU PROGRAMME ---
PRINT "LA SUITE DE FABONACCI"
PRINT "0"
PRINT "1"
' --- BOUCLE PRINCIPALE ---
DO
' --- Calcul et affichage des dix éléments suivants ---
FOR kvaleur = 1 TO 10
ksuivant = LST_Valeurs(0) + LST_Valeurs(1)
LST_Valeurs(0) = LST_Valeurs(1)
LST_Valeurs(1) = ksuivant
PRINT ksuivant
NEXT
' --- Bouclage du programme ---
INPUT "S pour les 10 valeurs suivantes ou Q pour Quitter ? ", kchoix$
LOOP UNTIL UCASE$(kchoix$) = "Q"
' --- FIN DU PROGRAMME ---
PRINT "Au revoir."
END
' --- Programme : JFB ---
' --- Juin 2024 ---
' --- Fin ---
Pour mieux comprendre l'exemple en QB64.
REM --- Origine Nerd propose pour ---
REM --- RETROGICIEL - BBC BASIC ---
REM --- La suite de fabonacci ---
REM --- INITIALISATION GENERALE ---
DIM LST_Valeurs(1)
LST_Valeurs(0) = 0
LST_Valeurs(1) = 1
REM --- DEBUT DU PROGRAMME ---
PRINT "LA SUITE DE FABONACCI"
PRINT "0"
PRINT "1"
REM --- BOUCLE PRINCIPALE ---
REPEAT
REM --- Calcul et affichage des valeurs ---
FOR kvaleur = 1 TO 10
ksuivant = LST_Valeurs(0) + LST_Valeurs(1)
LST_Valeurs(0) = LST_Valeurs(1)
LST_Valeurs(1) = ksuivant
PRINT STR$( ksuivant )
NEXT
REM --- Bouclage du programme ---
INPUT "S pour les 10 valeurs suivantes ou Q pour Quitter ", kchoix$
IF kchoix$ = "q" THEN kchoix$ = "Q"
UNTIL kchoix$ = "Q"
REM --- FIN DU PROGRAMME ---
PRINT "Au revoir."
END
REM --- Programme : JFB ---
REM --- Juin 2024 ---
REM --- Fin ---
Pour mieux comprendre l'exemple en BBC BASIC.