Suite de fibonacci [interface graphique]

Description

Je commence depuis peu le Python, mais j'ai eu quelques expériences en Fortran 77 précédemment. Donc je vous présente ici, un petit script comportant une interface graphique qui permet de calculer un nombre de termes choisis par l'utilisateur de la suite de Fibonacci. L'utilisateur à également la possibilité d'enregistrer ses résultats.

Source / Exemple :


#!/home/cyril/Bureau/Programmation/Projets_Finis/Fibonacci
# -*- coding:Utf-8 -*-

###############################################################################################
# Nom du Programme : Fibonacci                                                                #
# Descriptif : Calcul un nombre choisis par l'utilisateur de termes de la suite de Fibonacci. #
# Auteur : FALCON Cyril.                                                                      #
# Version du 22/04/2011                                                         Licence : GPL #
###############################################################################################

#Compatibilité : 
import os 

#Interface Graphique :
from Tkinter import *

# --------------------------------- Définition des Fonctions --------------------------------- #

#Fonction de calcul des termes de la suite :
def calcul() :
	global a, b, i, nbreTermes
	a = b = 1  #Initialisation.
	i = 0  #Compteur. 
	liste = []  #Liste de stockage pour affichage.

	fenetre3 = Tk()  #Fenêtre d'affichage des résultats.
	fenetre3.title("Résultats")
		
	while i<int(nbreTermes.get()) :  #Boucle de calcul.
		liste.append(b)
		a, b, i = b, a+b, i+1

	resultat = Label(fenetre3, text=liste)  #Affichage des résultats.
	resultat.pack()

		
#Fonction d'enregistrement des résultas :
def save() :
	global a, b, i, nbreTermes, k, j 
	logfile = open('resultat.log', 'w')  #On créer un fichier pour enregistrer.
	
	#Initialisation de l'enregistrement :
	k = 1
	logfile.write("1°) ")
	
	#Réinitialisation du processus de calcul :
	a = b = 1
	i = 0
	
	#On refait les calculs :
	while i<int(nbreTermes.get()) :
		
		if i==k*10 :  #Tous les dix termes calculés...
			logfile.write("\n\n")
			j = k+1  #Correspond au numéros de la ligne.
			logfile.write(str(j))  #On affiche le numéro...
			logfile.write("°) ")  #...de la ligne.
			k = k+1
		logfile.write(str(b))  #Ecriture des termes dans le fichier créé.
		logfile.write(" ")
		
		a, b, i = b, a+b, i+1	

	logfile.close()  #On n'oublie pas de fermer le fichier ouvert. 	

# ------------------------------------ Corps du Programme ------------------------------------ #

fenetre = Tk()  #Fenêtre d'interaction avec l'utilisateur.
fenetre.title("Fibonacci")

vide1 = Label(fenetre)
vide1.pack()

label1 = Label(fenetre, text="Nombre de termes à calculer : ")
label1.pack()

nbreTermes = Entry(fenetre)  #Nombre de termes à calculer.
nbreTermes.pack()

vide2 = Label(fenetre)
vide2.pack()

bouton1 = Button(fenetre, text="Calculer", command=calcul)  #On calcule.
bouton1.pack()

vide3 = Label(fenetre)
vide3.pack()

bouton2 = Button(fenetre, text="Enregistrer les Résultats", command=save)  #On enregistre.
bouton2.pack()

vide4 = Label(fenetre)
vide4.pack()

fenetre.mainloop()

Conclusion :


Attention, l'affichage des résultats avec le bouton "Calculer" devient illisible à partir de 35 termes.
Merci de commenter, afin que je suis puisse progresser. :)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.