Boucle

ksanflo -  
dsy73 Messages postés 9252 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je voudrai poser une question concernant les interfaces graphiques et boucles.

je dois construire une interface graphique permettant d'afficher l'évolution de la population en fonction du temps tout en sauvegardant les couples ( temps, population) dans des variables et les afficher dans un fichier. Pour cela, l'utilisateur doit renseigner à travers des cases crées dans l'interface graphique les différentes valeurs permettant le calcul de cette formule:

p= po+((k-po)/k)*r*po

où pt est la population initiale
k la capacité maximale de reproduction
r le taux de reproduction

dans le cas précis il m'a été demandé de tester mon programme avec les valeurs ci-dessous avec t allant jusqu'à 500
po=100
k=500
r=1

Votre aide me sera d'une grande utilité. En vous remerciant d'avance

1 réponse

dsy73 Messages postés 9252 Date d'inscription   Statut Contributeur Dernière intervention   2 485
 
Salut

je n'ai pas compris quelle était la question.

Tu devrais aussi nous montrer ce que tu as fait : https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
0
ksanflo
 
voici mon programme que j'ai pu faire. Vu mon niveau de débutant, il doit être colmaté parfois.


from tkinter import *


mafen1=Tk()
mafen1.title("capacité de reprodcution")


saisie_ut=StringVar()
resultat1=StringVar()

def lire1():
saisie=case_entree.get()
global k
try:
nombre=float(saisie)
k=nombre*1
resultat1.set(str(k))
mafen1.destroy()



except:
if("," in saisie):
resultat1.set(". comme sépar.decimal")
else:
resultat1.set("Entrez un nombre")

return


def clavier1(touche):

lire1()
return


case_entree=Entry(mafen1,textvariable=saisie_ut)
case_entree.bind
case_entree.pack()

case_sortie=Label(mafen1,textvariable=resultat1)
case_sortie.pack()



# on crée un bouton pour activer la lecture, le calcul et la

valider=Button(mafen1,text="sauvegarder",command=lire1)
valider.pack()


mafen1.mainloop()

# deuxième variable population intiale

mafen2=Tk()
mafen2.title("population initiale")


population_ut=StringVar()
resultat2=StringVar()

def lire2():
population=case_entree.get()
global p
try:
nombre=float(population)
p=nombre
resultat2.set(str(p))
resultat2.set(str(p))
mafen2.destroy()


except:
if("," in population):
resultat2.set(". comme sépar.decimal")
else:
resultat2.set("Entrez un nombre")


return



def clavier2(touche):
lire2()
return


case_entree=Entry(mafen2,textvariable=population_ut)
case_entree.bind

case_entree.pack()


case_sortie=Label(mafen2,textvariable=resultat2)
case_sortie.pack()


valider=Button(mafen2,text="sauvegarder",command=lire2)
valider.pack()

mafen2.mainloop()


# troisième variable taux de reproduction

mafen3=Tk()
mafen3.title("taux de reproduction")


reproduction_ut=StringVar()
resultat3=StringVar()

def lire3():
reproduction=case_entree.get()
global r
try:
nombre=float(reproduction)
r=nombre
resultat3.set(str(r))
mafen3.destroy()

except:
if("," in reproduction):
resultat3.set(". comme sépar.decimal")
else:
resultat3.set("Entrez un nombre")

return


def clavier3(touche):
lire3()
return



# pour introduire du texte dans le programme

# on crée un objet de classe Entry qui sera recupéré par l'utilisateur

case_entree=Entry(mafen3,textvariable=reproduction_ut)
case_entree.bind
case_entree.pack()


# pour afficher les resultats on crée un objet de classe Label
# ou on recupera le resultat

case_sortie=Label(mafen3,textvariable=resultat3)
case_sortie.pack()



# on crée un bouton pour activer la lecture, le calcul et la

valider=Button(mafen3,text="sauvegarder",command=lire3)
valider.pack()


mafen3.mainloop()



# quatrième variable caractérisant le pas

mafen4=Tk()
mafen4.title("le pas")

lepas_ut=StringVar()
resultat4=StringVar()

def lire4():

lepas=case_entree.get()
global lp
try:
nombre=int(lepas)
lp=nombre+1
resultat4.set(str(lp))
resultat4.set(str(lp))
mafen4.destroy()

except:
if("," in lepas):
resultat4.set(". comme sépar.decimal")
else:
resultat4.set("Entrez un nombre")

return


def clavier4(touche):
lire4()
return


case_entree=Entry(mafen4,textvariable=lepas_ut)
case_entree.bind

case_entree.pack()


case_sortie=Label(mafen4,textvariable=resultat4)
case_sortie.pack()


valider=Button(mafen4,text="sauvegarder",command=lire4)
valider.pack()


mafen4.mainloop()

# quatrième variable permettant de calculer

mafen5=Tk()
mafen5.title("operation")

operation_ut=StringVar()
resultat5=StringVar()

def calcul():
operation=case_entree.get()
try:

v=p+((k-p)/k)*r*p
resultat5.set(str(v))

except:
if("," in operation):
resultat5.set(". comme sépar.decimal")
else:
resultat5.set("Entrez un nombre")

return


def clavier5(touche):
lire5()
return

case_entree=Entry(mafen5,textvariable=operation_ut)
case_entree.bind

case_entree.pack()

# pour afficher les resultats on crée un objet de classe Label
# ou on recupera le resultat

case_sortie=Label(mafen5,textvariable=resultat5)
case_sortie.pack()

valider=Button(mafen5,text="Envoyer",command=calcul)
valider.pack()

mafen5.mainloop()


Pour mieux expliquer ce je fais, j'ai crée des fenêtres afin de pouvoir entrer les valeurs permettant de calculer mon modèle. Cependant, j'aurai souhaité plutôt mettre en place des cases en lieu et place des fenêtres pour n'avoir qu'une fenêtre en fin de compte.

1) Donc ma première question c'est comment regrouper dans une seule fenêtre les cases me permettant de calculer mon modèle?

2) ensuite pour tester mon programme, il m'a été demandé de tester les valeurs suivantes:

po=100
k=500
r=1
avec t allant jusqu'à 500

==> pour cette question, il me semble qu'il me faudra mettre en place une boucle, ce que je ne parviens pas à faire afin d'avoir les valeurs de population de 1 à 500 en vue d'obtenir la coube.

En espérant avoir été plus précis, je vous remercie d'avoir pris le temps de vous intéresser à mon problème.
0
ksanflo
 
J'ai mis l'exercice en détail sur le lien que vous m'aviez précisé ainsi que mon script à ce stade.

En vous remerciant d'avance!
0
dsy73 Messages postés 9252 Date d'inscription   Statut Contributeur Dernière intervention   2 485 > ksanflo
 
Comme tu as pu t'en rendre compte, ton code est incompréhensible car mal formaté.
0