LES ETAPES DE LA CONSTRUCTIONS DU PROGRAMME IMAGE PAR UNE FONCTION
Dans tkinter la fenêtre est divisée en lignes (row) et en colonnes (column) qui commencent à 0.
Voici la maquette de notre programme.
Etape 1 : Création de la fenêtre.
#L'utilisateur peut utiliser des fonctions ou des variables du module math frommath import*
fromtkinter import*
# f est une chaîne de caractères qui sera évaluée en fonction de la valeur de x fenimagefonction=Tk()#fenetre principale
fenimagefonction.title('Image par une fonction') column
0 1 2 3 4 5 6
row 0
1 f(x)= zone dema
Zone reponse
2 x= zone dema
3 bouton exe
4 bouton eff
5 6 7 8
Etape 2 : création des zones de demande.
#L'utilisateur peut utiliser des fonctions ou des variables du module math
frommath import* fromtkinter import*
# f est une chaîne de caractères qui sera évaluée en fonction de la valeur de x fenimagefonction=Tk()#fenetre principale
fenimagefonction.title('Image par une fonction')
Label(fenimagefonction,text=' f(x) =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=1,column=0)# demande fonction f1=StringVar()
ent1 =Entry(fenimagefonction,textvariable=f1).grid(row =1,column =1)
Label(fenimagefonction,text='x =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=2,column=0)# demande x x1=StringVar()
ent2 =Entry(fenimagefonction,textvariable=x1).grid(row =2,column =1) fenimagefonction.mainloop()
Etape 3 : Création de la zone réponse
#L'utilisateur peut utiliser des fonctions ou des variables du module math frommath import*
fromtkinter import*
# f est une chaîne de caractères qui sera évaluée en fonction de la valeur de x fenimagefonction=Tk()#fenetre principale
fenimagefonction.title('Image par une fonction') Label(fenimagefonction,text=' f(x) =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=1,column=0)# demande fonction f1=StringVar()
ent1 =Entry(fenimagefonction,textvariable=f1).grid(row =1,column =1) Label(fenimagefonction,text='x =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=2,column=0)# demande x x1=StringVar()
ent2 =Entry(fenimagefonction,textvariable=x1).grid(row =2,column =1) zonereponse=Text(fenimagefonction)#zone réponse
zonereponse.grid(row=0,column=3,rowspan=6) zonereponse.config(height=10,width=30,font=15)
Etape 4 : Création des boutons
#L'utilisateur peut utiliser des fonctions ou des variables du module math
frommath import* fromtkinter import*
# f est une chaîne de caractères qui sera évaluée en fonction de la valeur de x defreponse():
5
defeffacer():
# pour effacer la zone reponse
zonereponse.delete(0.0,END)
fenimagefonction=Tk()#fenetre principale
fenimagefonction.title('Image par une fonction') Label(fenimagefonction,text=' f(x) =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=1,column=0)# demande fonction f1=StringVar()
ent1 =Entry(fenimagefonction,textvariable=f1).grid(row =1,column =1) Label(fenimagefonction,text='x =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=2,column=0)# demande x x1=StringVar()
ent2 =Entry(fenimagefonction,textvariable=x1).grid(row =2,column =1) zonereponse=Text(fenimagefonction)#zone réponse
zonereponse.grid(row=0,column=3,rowspan=6) zonereponse.config(height=10,width=30,font=15)
buttonvalider=Button(fenimagefonction,text="Executer",command=reponse).grid(row=3,column=0)
# bouton execution
boutoneffa=Button(fenimagefonction,text="Effacer",command=effacer).grid(row=4,column=0)
# bouton effacer
Etape 5 : Création du calcul.
#L'utilisateur peut utiliser des fonctions ou des variables du module math
frommath import* fromtkinter import*
# f est une chaîne de caractères qui sera évaluée en fonction de la valeur de x defreponse():
x=eval(x1.get())
# get pour recuperer le contenu de x1
f=f1.get()
y=eval(f)
# eval pour transformer chaine de caractere en nombre
zonereponse.insert(END,"f( "+str(x)+" ) = "+str(y)+'\n')
defeffacer():
# pour effacer la zone reponse
zonereponse.delete(0.0,END)
fenimagefonction=Tk()#fenetre principale
fenimagefonction.title('Image par une fonction') Label(fenimagefonction,text=' f(x) =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=1,column=0)# demande fonction f1=StringVar()
ent1 =Entry(fenimagefonction,textvariable=f1).grid(row =1,column =1)
Label(fenimagefonction,text='x =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=2,column=0)# demande x x1=StringVar()
ent2 =Entry(fenimagefonction,textvariable=x1).grid(row =2,column =1) zonereponse=Text(fenimagefonction)#zone réponse
zonereponse.grid(row=0,column=3,rowspan=6) zonereponse.config(height=10,width=30,font=15)
buttonvalider=Button(fenimagefonction,text="Executer",command=reponse).grid(row=3,column=0)
# bouton execution
boutoneffa=Button(fenimagefonction,text="Effacer",command=effacer).grid(row=4,column=0)
# bouton effacer
Etape 6 : la présentation.
#L'utilisateur peut utiliser des fonctions ou des variables du module math
frommath import* fromtkinter import*
# f est une chaîne de caractères qui sera évaluée en fonction de la valeur de x defreponse():
x=eval(x1.get())
# get pour recuperer le contenu de x1
f=f1.get()
y=round(eval(f),8)
# eval pour transformer chaine de caractere en nombre zonereponse.insert(END,"pour f(x) ="+f+'\n')
zonereponse.insert(END,"f( "+str(x)+" ) = ")
zonereponse.insert(END,str(y)+'\n','couleur')
defeffacer():
# pour effacer la zone reponse
zonereponse.delete(0.0,END)
fenimagefonction=Tk()#fenetre principale
fenimagefonction.title('Image par une fonction') Label(fenimagefonction,text=' f(x) =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=1,column=0)# demande fonction f1=StringVar()
ent1 =Entry(fenimagefonction,textvariable=f1).grid(row =1,column =1)
Label(fenimagefonction,text='x =
',fg='red',font=(30),width=15,justify=RIGHT).grid(row=2,column=0)# demande x x1=StringVar()
ent2 =Entry(fenimagefonction,textvariable=x1).grid(row =2,column =1) zonereponse=Text(fenimagefonction)#zone réponse
zonereponse.grid(row=1,column=4,rowspan=6) zonereponse.config(height=10,width=30,font=15)
zonereponse.tag_config('couleur',foreground="red",font='bold')
buttonvalider=Button(fenimagefonction,text="Executer",command=reponse).grid(row=3,column=1)
# bouton execution
boutoneffa=Button(fenimagefonction,text="Effacer",command=effacer).grid(row=4,column=1)
# bouton effacer
barredef=Scrollbar(fenimagefonction,orient=VERTICAL,command=zonereponse.yview)# barre de défilement
zonereponse['yscrollcommand']=barredef.set
barredef.grid(row=1,column=7,rowspan=6,sticky=('N','S')) Label(fenimagefonction,text="").grid(row=0)
Label(fenimagefonction,text="").grid(row=5)
Label(fenimagefonction,text=" ").grid(column=3)