La ronde des milieux

Notion de variable

Reprenons la construction des polygones réguliers vue la fois précédente. Au lieu de changer la longueur d'un côté à chaque fois à la main pour avoir des polygones de différentes tailles, au lieu d'envisager séparément la construction des carrés , des pentagones etc..., on peut rendre cette construction "variable" pour tous les polygones de différentes tailles.

On introduit une variable nbCôtés pour le nombre de côtés et une variable longueurCôté pour la longueur d'un côté. En pseudo-code (on dégage les grandes idées du programme, cela permet de ne pas s'attarder sur les détails techniques) cela donne l'algorithme suivant:

 
 nbCôtés <- entrer("Combien de côtés ?")
 longueurCôté <- entrer("Quel est la longueur d'un côté ?")
 répéter nbCôtés fois
 début
     avancer(longueurCôté)
     tournerGauche(360/nbCôtés)
 fin
 
 

Commentaires

  1. Dans la première instruction nbCôtés est une variable. Pour l'instant imaginons nbCôtés comme un nom sur une boîte en mémoire(comme un nom sur une boîte aux lettres) dans laquelle on peut ranger différents nombres.

    La fonction entrer() incite l'utilisateur de l'algorithme à donner un nombre, ensuite ce nombre est mis dans la boîte étiquetée nb_côtés.

    Le symbole <- est le symbole d'affectation, montrant que le nombre donné par l'utilisateur est associé à la variable nb_côtés

  2. En python cela donne (on écrit avec des lettres non accentuées):
     
    from turtle  import *
    hideturtle()
    nb_cotes = int(input("Combien de côtés ?  "))
    longueur_cote = int(input("Quel est la longueur d'un côté ?  "))
    for i in range(nb_cotes):
        forward(longueur_cote)
        left(360/nb_cotes)
      
     

    Commentaires:

    1. En python l'affectation se fait avec le signe = .Attention à ne pas confondre avec le symbole = en mathématiques
    2. Quand vous entrez un nombre entier au clavier par exemple 50, ce n'est pas considéré comme un nombre , ainsi la fonction int() sert à transformer le 50 entré au clavier en 50 le nombre entier (integer signifie entier en anglais)
    3. La fonction input() prend comme argument un texte écrit entre "" ou '' qui sera visible à l'écran
    4. La fonction print() affiche à l'écran le contenu de la variable entre ()

La ronde des milieux

Quatre personnes A,B,C et D sont disposées en carré. Une cinquième personne(vous) se déplace de la manière suivante:

Vous partez de la position $T_0$ en vous dirigeant vers A et vous vous arrêtez à mi-chemin entre votre position de départ et la position de A

Ensuite vous faîtes de même de la position $T_1$, cette fois ci en regardant vers B

Que se passe-t-il si vous continuez ce processus suffisamment "longtemps"

Nous allons utiliser la tortue de Python pour simuler ce processus

Copier le programme suivant et compléter le pour le mettre au point


from turtle import *


LENT   = 1
RAPIDE = 0
speed(LENT)

#coordonnées de A
x_A = -200
y_A = -200

#coordonnées de B
x_B = 200
y_B = -200

#coordonnées de C
x_C = 200
y_C = 200

#coordonnées de D
x_D = -200
y_D = 200

#coordonnées de la tortue au début
x_T = 0
y_T = 0

#On trace en rouge le contour ABCD
penup()
goto(x_A,y_A)
pendown()
color("red")
pensize(3)
goto(x_B,y_B)
goto(x_C,y_C)
goto(x_D,y_D)
goto(x_A,y_A)
penup()
goto(x_T,y_T)
color("black")
pensize(1)
pendown()

#------DEBUT DE LA RONDE DES MILIEUX---------------------
#répéter un "grand" nombre de fois
for i in range(5):
    #la tortue part de sa position (x_T,y_T) et va au milieu de sa position
    #et de celle de A
    x_T = (x_T + x_A)/2
    y_T = (y_T + y_A)/2
    goto(x_T,y_T)
    #la tortue part de sa position (x_T,y_T) et va au milieu de sa position
    #et de celle de B
 


    #la tortue part de sa position (x_T,y_T) et va au milieu de sa position
    #et de celle de C
 


    #la tortue part de sa position (x_T,y_T) et va au milieu de sa position
    #et de celle de D

Que se passe-t-il avec 6 personnes ? 8 personnes ?

Pour la prochaine fois

Que se passe-t-il pour les algorithmes suivants ? Sur feuille
  1. 
    x <- 2
    y <- 2
    x <- y + x
    
    
  2.  
    x <- 2
    x <- x + 1
    
    
  3. 
    y <- 3
    x <- 1
    x <- y
    y <- 2
    
    
  4. 
    x <- 1
    y <- 2
    x <- y
    y <- x
    
    
  5. Analyser les dessins ci-dessous et les reconstruire de la manière la plus simple possible avec la Tortue, en utilisant des variables et des boucles

Que retenir ?

  1. Une variable permet de rendre un programme plus "variable",
  2. Une variable permet de rendre un programme plus lisible, il n'est pas évident de comprendre un programme lorsqu'il comporte des valeurs numériques
  3. Pour résoudre un problème on écrit d'abord un algorithme écrit en pseudo-code, cela nous permet de ne pas se préoccuper des p@@roblèmes techniques, ensuite on traduit l'algorithme dans le langage python