IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

tkinter exercice suivant


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 35
    Par défaut tkinter exercice suivant
    Bonjour à tous,

    Je suis débutant en Python et cherche à proposer à mes élèves de 4° un exercice sur le théorème de Pythagore.
    J'arrive à obtenir de nouveaux énoncés dans la même fenêtre mais, les solutions ne correspondent pas aux énoncés.
    Voici le code de l'exercice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    from tkinter import *
    import random
    import math as sqrt
    import time
    from tkinter.messagebox import *
     
     
     
    def pythagore_angle_droit():
        canvas.delete(ALL)       
        a = random.randint(1,20) # modification 2
        c = random.randint(1,20) # modification 2
        if a < c :
            a,c=c,a
        else:
            a,c=a,c
     
        ligne1 = canvas.create_line(25, 200, 25, 50,fill='blue')   
        ligne2 = canvas.create_line(25, 50, 300, 200,fill='red')
        ligne3 = canvas.create_line(25,200,300,200,fill='green')
        ligne4 = canvas.create_line(25, 185, 40, 185)# angle droit
        ligne5 = canvas.create_line(40,200,40,185) # angle droit
     
        txt = canvas.create_text(15, 210, text="A", font="Arial 18 ")
        txt = canvas.create_text(310, 205, text="B", font="Arial 18")
        txt = canvas.create_text(20, 40, text="C", font="Arial 18")
     
        txt= canvas.create_text(500,50,text="ABC est un triangle rectangle en A. Calculer la valeur de la longueur d'un des cotés de l'angle droit",font="Arial 18", fill="black")
     
        canvas.create_text(380,250,text="On donne",font="Arial 18")
        canvas.create_text(450,250,text= "BC =",font="Arial 18 ",fill="red")
        canvas.create_text(490,250,text=a,font="Arial 18", fill="red")
        canvas.create_text(530,250,text=" AB =",font="Arial 18", fill="blue")
        canvas.create_text(570,250,text=c, font="Arial 18", fill="blue")
        canvas.create_text(670,250,text="Calculer la valeur de",font="Arial 18 ")
        canvas.create_text(770,250,text=" AC",font="Arial 18", fill="green")
     
    def pythagore_angle_droit_reponse():
     #   canvas.delete(ALL)
     
        a = random.randint(1,20) # modification 2
        c = random.randint(1,20) # modification 2
        if a < c :
            a,c=c,a
        else:
            a,c=a,c
     
        canvas.create_text(400,300,text="ABC est un triangle rectangle en A, on a donc l'égalité de Pythagore :",font='Arial 20')
        txt = canvas.create_text(170, 350, text="BC**2",fill='red',font="Arial 20")
        txt = canvas.create_text(220, 350, text= "=",font="Arial 20")
        txt = canvas.create_text(260, 350, text="AB**2",fill='green',font="Arial 20")
        txt = canvas.create_text(300, 350, text="+",font="Arial 20")
        txt = canvas.create_text(350, 350, text='AC**2',fill='blue' , font="Arial 20")
        txt = canvas.create_text(420, 350, text="soit,",font="Arial 20")
     
        txt = canvas.create_text(170, 375, text='AC**2',fill = 'blue',font='Arial 20')
        txt = canvas.create_text(220, 375, text= "=",font="Arial 20")
        txt = canvas.create_text(260, 375, text="BC**2",fill='red',font="Arial 20")
        txt = canvas.create_text(300, 375, text= "-",font="Arial 20")
        txt = canvas.create_text(350, 375, text="AB**2",fill='green',font="Arial 20")
     
        txt = canvas.create_text(170, 400, text="AC**2",fill='blue',font="Arial 20")
        txt = canvas.create_text(220, 400, text= "=",font="Arial 20")
        txt = canvas.create_text(240, 400, text=a, fill='red',font="Arial 20")
        txt = canvas.create_text(265, 400, text="**2", fill='red',font="Arial 20")
        txt = canvas.create_text(300, 400, text="-",font="Arial 20")
        txt = canvas.create_text(320, 400, text=c,font="Arial 20",fill='green')
        txt = canvas.create_text(350, 400, text="**2", fill='green',font="Arial 20")
     
        txt = canvas.create_text(170, 425, text="AC**2",fill='blue',font="Arial 20")
        txt = canvas.create_text(220, 425, text= "=",font="Arial 20")  
        txt = canvas.create_text(265, 425, text= a**2,fill='red',font="Arial 20")
        txt = canvas.create_text(300, 425, text="-",font="Arial 20")
        txt = canvas.create_text(340, 425, text= c**2,fill='green',font="Arial 20")  
     
        txt = canvas.create_text(160, 450, text= "AC ",fill='blue',font="Arial 20")
        txt = canvas.create_text(220, 450, text= "= ",font="Arial 20") 
        txt = canvas.create_text(260, 450, text= "sqrt (" ,font="Arial 20")  
        txt = canvas.create_text(310, 450, text= a**2-c**2,font="Arial 20")  
        txt = canvas.create_text(350, 450, text= ")",font="Arial 20") 
     
        txt = canvas.create_text(320, 475, text = "Une valeur approchée au centième est : ",font='Arial 20')
     
    ############################################################################################################################## 
    #################################################    Programme principal : #####################################################
     ##############################################################################################################################   
     
    fenetre = Tk()
    canvas = Canvas(fenetre, width =1000, height =500, bg ='ivory')
    canvas.pack(side =TOP, padx =50, pady =25)
     
    bouton1 = Button(fenetre, text ='Enoncé', font='Arial 20',command =pythagore_angle_droit)
    bouton1.pack(side =LEFT, padx =10, pady =10)
    bouton2 = Button(fenetre, text ='Réponse',font='Arial 20', command = pythagore_angle_droit_reponse)
    bouton2.pack(side =RIGHT, padx =10, pady =10)
     
     
     
     
    fenetre.mainloop()
    Si j'enlève, dans la réponse,
    a = random.randint(1,20)
    c = random.randint(1,20)
    j'obtiens toujours la même solution, quel que soit l'énoncé.

    Je vous remercie pour votre aide, même partielle.
    Pierre
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par pir2Paris Voir le message
    Je suis débutant en Python et cherche à proposer à mes élèves de 4° un exercice sur le théorème de Pythagore.
    J'arrive à obtenir de nouveaux énoncés dans la même fenêtre mais, les solutions ne correspondent pas aux énoncés.
    Si vous voulez que le "a" et le "c" de l'énoncé soient utilisés pour le calcul de la solution, pourquoi les recalculer? Vous pourriez les stocker dans des variables globales...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 35
    Par défaut
    Bonsoir,

    Merci pour votre réponse. Néanmoins, je n'ai jamais utilisé de variables globales.
    En allant sur Internet, j'ai trouvé quelques indications que j'ai essayé d'adapter mais, cela ne marche pas !
    Je vous montre le nouveau code :Théorème de Pythagore (côté angle droit).py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    from tkinter import *
    import random
    import math as sqrt
    import time
    from tkinter.messagebox import *
     
     
    a,c=1,1
    a = random.randint(1,20)
    c = random.randint(1,20)
    def cote_a() :
        global a
        a = random.randint(1,20) 
     
    def cote_c():
        global c
        c = random.randint(1,20)
     
     
     
     
    def Théorème_de_Pythagore_coté_angle_droit():
        canvas.delete(ALL) 
        a= random.randint(1,20)
        c = random.randint(1,20)
        if a < c :
            a,c=c,a
        else:
            a,c=a,c
     
        ligne1 = canvas.create_line(25, 200, 25, 50,fill='blue')   
        ligne2 = canvas.create_line(25, 50, 300, 200,fill='red')
        ligne3 = canvas.create_line(25,200,300,200,fill='green')
        ligne4 = canvas.create_line(25, 185, 40, 185)# angle droit
        ligne5 = canvas.create_line(40,200,40,185) # angle droit
     
        txt = canvas.create_text(15, 210, text="A", font="Arial 18 ")
        txt = canvas.create_text(310, 205, text="B", font="Arial 18")
        txt = canvas.create_text(20, 40, text="C", font="Arial 18")
     
        txt= canvas.create_text(500,50,text="ABC est un triangle rectangle en A. Calculer la valeur de la longueur d'un des cotés de l'angle droit",font="Arial 18", fill="black")
     
        canvas.create_text(380,250,text="On donne",font="Arial 18")
        canvas.create_text(450,250,text= "BC =",font="Arial 18 ",fill="red")
        canvas.create_text(490,250,text=a,font="Arial 18", fill="red")  #
        canvas.create_text(530,250,text=" AB =",font="Arial 18", fill="blue")
        canvas.create_text(570,250,text=c, font="Arial 18", fill="blue")  #
        canvas.create_text(670,250,text="Calculer la valeur de",font="Arial 18 ")
        canvas.create_text(770,250,text=" AC",font="Arial 18", fill="green")
     
    def Théorème_de_Pythagore_coté_angle_droit_réponse():
     #   canvas.delete(ALL)
        a= random.randint(1,20)
        c = random.randint(1,20)
        if a < c :
            a,c=c,a
        else:
            a,c=a,c
     
        canvas.create_text(400,300,text="ABC est un triangle rectangle en A, on a donc l'égalité de Pythagore :",font='Arial 20')
        txt = canvas.create_text(170, 350, text="BC**2",fill='red',font="Arial 20")
        txt = canvas.create_text(220, 350, text= "=",font="Arial 20")
        txt = canvas.create_text(260, 350, text="AB**2",fill='green',font="Arial 20")
        txt = canvas.create_text(300, 350, text="+",font="Arial 20")
        txt = canvas.create_text(350, 350, text='AC**2',fill='blue' , font="Arial 20")
        txt = canvas.create_text(420, 350, text="soit,",font="Arial 20")
     
        txt = canvas.create_text(170, 375, text='AC**2',fill = 'blue',font='Arial 20')
        txt = canvas.create_text(220, 375, text= "=",font="Arial 20")
        txt = canvas.create_text(260, 375, text="BC**2",fill='red',font="Arial 20")
        txt = canvas.create_text(300, 375, text= "-",font="Arial 20")
        txt = canvas.create_text(350, 375, text="AB**2",fill='green',font="Arial 20")
     
        txt = canvas.create_text(170, 400, text="AC**2",fill='blue',font="Arial 20")
        txt = canvas.create_text(220, 400, text= "=",font="Arial 20")
        txt = canvas.create_text(240, 400, text= a, fill='red',font="Arial 20")  #
        txt = canvas.create_text(265, 400, text="**2", fill='red',font="Arial 20")
        txt = canvas.create_text(300, 400, text="-",font="Arial 20")
        txt = canvas.create_text(320, 400, text=c,font="Arial 20",fill='green')  #
        txt = canvas.create_text(350, 400, text="**2", fill='green',font="Arial 20")
     
        txt = canvas.create_text(170, 425, text="AC**2",fill='blue',font="Arial 20")
        txt = canvas.create_text(220, 425, text= "=",font="Arial 20")  
        txt = canvas.create_text(265, 425, text= a**2,fill='red',font="Arial 20") #
        txt = canvas.create_text(300, 425, text="-",font="Arial 20")
        txt = canvas.create_text(340, 425, text= c**2,fill='green',font="Arial 20")   #
     
        txt = canvas.create_text(160, 450, text= "AC ",fill='blue',font="Arial 20")
        txt = canvas.create_text(220, 450, text= "= ",font="Arial 20") 
        txt = canvas.create_text(260, 450, text= "sqrt (" ,font="Arial 20")  
        txt = canvas.create_text(310, 450, text= a**2-c**2,font="Arial 20")   #
        txt = canvas.create_text(350, 450, text= ")",font="Arial 20") 
     
        txt = canvas.create_text(320, 475, text = "Une valeur approchée au centième est : ",font='Arial 20')
     
    ############################################################################################################################## 
    #################################################    Programme principal : #####################################################
     ##############################################################################################################################   
     
    fenetre = Tk()
    canvas = Canvas(fenetre, width =1000, height =500, bg ='ivory')
    canvas.pack(side =TOP, padx =50, pady =25)
     
    bouton1 = Button(fenetre, text ='Enoncé', font='Arial 20',command =Théorème_de_Pythagore_coté_angle_droit)
    bouton1.pack(side =LEFT, padx =10, pady =10)
    bouton2 = Button(fenetre, text ='Réponse',font='Arial 20', command = Théorème_de_Pythagore_coté_angle_droit_réponse)
    bouton2.pack(side =RIGHT, padx =10, pady =10)
     
     
     
     
    fenetre.mainloop()
    Pourriez-vous m'indiquer la bonne syntaxe de cette variable globale ?
    Merci beaucoup pour votre aide.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par pir2Paris Voir le message
    Néanmoins, je n'ai jamais utilisé de variables globales.
    En allant sur Internet, j'ai trouvé quelques indications que j'ai essayé d'adapter mais, cela ne marche pas !
    Si vous n'avez pas joué avec des constructions simples comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def f():
         global v
         v = 123
    def g():
         print(v)
    pour anticiper ce qu'il va se passer lorsqu'on exécute la séquence d'instructions:
    il vous faut prendre le temps d'ouvrir un tuto. et d'apprendre les bases de la programmation.
    Si vous ne les avez pas acquises, vous pourrez toujours chercher sur Internet, vous passerez devant la solution sans la voir.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 35
    Par défaut
    Bonjour,

    A wiztricks : Merci pour votre conseil ...

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/03/2017, 09h46
  2. nouvel exercice personne suivante
    Par flyman29600 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 27/10/2016, 08h49
  3. [Python 3.X] Solution exercice 8.21 Tkinter méthode Swinnen et question
    Par papyfouette dans le forum Général Python
    Réponses: 3
    Dernier message: 15/04/2015, 22h09
  4. [Cours Swinnen][Tkinter] bloqué à un exercice
    Par babar89 dans le forum Tkinter
    Réponses: 4
    Dernier message: 18/10/2005, 16h48
  5. Pouvez vous m'aider a resoudres ces 3 exercices
    Par algorithmique dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 09/08/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo