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 :
- demande à l'utilisateur un entier naturel n,
- 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) :
Vous devez maintenant modifier ce script pour obtenir une "grille" de tortues telle que la suivante :
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) :
Vous devez maintenant modifier ce script pour obtenir une "grille" de tortues telle que la suivante :
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