for

Factorielle d'un entier.

Soit n un entier positif.
On appelle factorielle n (et on note n!) l'entier égal au produit des entiers de 1 à n.
Exemple : 5! = 1 × 2 × 3 × 4 × 5.
En remarquant que n! = n × (n-1)!, écrire un programme qui calcule n! , n étant un entier donné dans le texte du programme.


n = 15 # entier dont on veut la factorielle
p = 1 # initialisation de la variable qui contiendra le produit
for k in range(2,n+1) :
	p = p*k
	
print("{}! = {}".format(n,p))

On obtient :

15! = 1307674368000

On peut aussi vouloir demander à l'utilisateur une valeur de n :


n = int(input("Entrez un entier positif : "))
p = 1  
for k in range(2,n+1) :
	p = p*k
	
print("{}! = {}".format(n,p))

Rappelons en passant que l'instruction p = p*k peut aussi s'écrire p *= k . Le code précédent s'écrit donc aussi :


n = int(input("Entrez un entier positif : "))
p = 1  
for k in range(2,n+1) :
    p *= k
    
print("{}! = {}".format(n,p))

Une suite arithmético-géométrique.

On considère une suite u définie par u(0)=2 et pour tout entier naturel n par : u(n+1)=2*u(n)+5.

Écrire un programme qui :

  1. demande à l'utilisateur un entier naturel n,
  2. puis affiche la valeur de u(n).


n = int(input("Entrez un entier naturel n : "))
u = 2
for j in range(1,n+1) :
	u = 2*u+5
print(u)

Une grille de tortues.

Dans cet exercice, on utilise le module turtle de python.

L'exemple ci-dessous donne les éléments de syntaxe à connaître pour traiter la question posée ci-après.

Vous pourrez aussi utiliser d'autres instructions du module turtle comme setposition.


# on importe les commandes du module turtle :
from turtle import *
 

# on fixe des dimensions pour la fenêtre graphique :
setworldcoordinates(0,0, 10, 10)

# on lève le crayon pour que la tortue ne laisse pas trace de son déplacement :
penup()
# red couleur du tracé, yellow couleur remplissage :
color('red','yellow') 
# forme de la tortue  :
shape('turtle')
 
# la tortue s'oriente à 45 degrés :
setheading(45) 


for _ in range(6) :
    stamp() # un coup de tampon en forme de tortue
    forward(2) # la tortue avance de 2 unités

 
hideturtle() # cacher la tortue    
exitonclick() # on fermera la fenêtre en cliquant dessus 

Le résultat est le suivant (testez et modifiez des paramètres pour saisir le rôle des commandes utilisées) :
tortues en diagonale

Vous devez maintenant modifier ce script pour obtenir une "grille" de tortues telle que la suivante :
une grille de tortues

Les nombres de lignes et de colonnes devront pouvoir être modifiés facilement. Pour cela, on utilisera deux boucles imbriquées.

Une solution possible :


from turtle import *
 
unite = 1 # unité graphique
ligne = 10 # nombre de lignes
colonne = 5 # nombre de colonnes 


# ouverture de la fenêtre tenant compte du nombre de lignes et colonnes :
setworldcoordinates(-unite,-unite, (colonne+1)*unite, (ligne+1)*unite)

speed(0) # accélération de la tortue
# on lève le crayon pour ne pas laisser trace des déplacements :
penup()
color('red','yellow') # red couleur du tracé, yellow couleur remplissage
shape('turtle') # forme de la tortue 
 

#  boucles imbriquées pour la grille  : 
for i in range(ligne) : 
    # remplissage d'une ligne :
    for j in range(colonne) :
        stamp()
        forward(unite)
    setposition(0, (i+1)*unite ) # retour en début de ligne suivante
    
    
  
hideturtle() # cacher la tortue    
exitonclick() # on fermera la fenêtre en cliquant dessus
 

Une spirale de tortues.

Dans cet exercice, on utilise à nouveau le module turtle.

L'exemple ci-dessous montre l'effet de l'instruction left() qui permet de tourner la tête de la tortue du nombre de degrés indiqué en paramètre de cette fonction.


from turtle import *
 
 

# ouverture de la fenêtre  :
setworldcoordinates(-1,-1, 7, 7)

speed(0) # accélération de la tortue
penup()# on lève le crayon pour ne pas laisser trace des déplacements  
color('green','orange') # red couleur du tracé, yellow couleur remplissage
shape('arrow') # forme de la tortue 
 


for i in range(4) :
    for i in range(1,6) :
        stamp()
        forward(1)
    left(90) # la tortue tourne sur sa gauche de 90 degrés
    
 
    
  
hideturtle() # cacher la tortue    
exitonclick() # on fermera la fenêtre en cliquant dessus

Le résultat est le suivant (testez et modifiez des paramètres pour saisir le rôle des commandes utilisées) :
rectangle de tortue flèche

Vous devez maintenant modifier ce script pour obtenir une "grille" de tortues telle que la suivante :
une spirale de tortues

Le nombre de tortues augmente d'une unité à chaque rangée. Le nombre de rangées doit être facilement modifiable dans votre script.

Une solution possible :


from turtle import *
 
unite = 1 # unité graphique
rangee = 12 # nombre de rangées
 

# ouverture de la fenêtre tenant compte du nombre de rangées :
setworldcoordinates(-(rangee+1)*unite,-(rangee+1)*unite, (rangee+1)*unite, (rangee+1)*unite)

speed(0) # accélération de la tortue
penup() # on lève le crayon pour ne pas laisser trace des déplacements :
color('red','yellow') # red couleur du tracé, yellow couleur remplissage
shape('turtle') # forme de la tortue 
 


# boucles imbriquées pour la spirale :
for i in range(1,rangee+1) :
    for j in range(i) :
        stamp()
        forward(unite)
    left(90)
    
 
    
  
hideturtle() # cacher la tortue    
exitonclick() # on fermera la fenêtre en cliquant dessus