Vous êtes sur la page 1sur 2

Niveau : AP1 MP, PC, T

Institut Préparatoire aux Etudes


d’Ingénieurs de Monastir Devoir Surveillé N°1 Durée : 1 heure
IPEIM
Année universitaire : 2017 – 2018

Exercice 1: (6 points)
On se propose d’écrire l’algorithme du « jeu des allumettes » qui se joue par un utilisateur contre
l’ordinateur. Le principe du jeu est le suivant :
- L’utilisateur saisi le nombre initial d’allumettes (entre 10 et 100).
- L’utilisateur et l’ordinateur joue à tour de rôle en choisissant le nombre d’allumettes à retirer : 1, 2
ou 3.
- L’utilisateur commence à jouer en premier, il saisit le nombre d’allumettes qu’il désire retirer.
- L’ordinateur tire au sort le nombre d’allumettes à retirer grâce à la fonction prédéfinie
Random(min,max) qui retourne un nombre au hasard compris entre min et max.
- Le jeu se termine lorsque le nombre d’allumettes restant est égal à zéro. Celui qui retire la dernière
allumette est le perdant.

Exemple d’exécution :
Donner le nombre initial d'allumettes (entre 10 et 100) : 12
| | | | | | | | | | | |
L'utilisateur joue : Combien d'allumettes : 1, 2 ou 3 ? 3
Il reste 9 allumette(s) :
| | | | | | | | |
L'ordinateur joue : nombre choisi = 2 allumette(s).
Il reste 7 allumette(s) :
| | | | | | |
L'utilisateur joue : Combien d'allumettes : 1, 2 ou 3 ? 2
Il reste 5 allumette(s) :
| | | | |
L'ordinateur joue : nombre choisi = 2 allumette(s).
Il reste 3 allumette(s) :
| | |
L'utilisateur joue : Combien d'allumettes : 1, 2 ou 3 ? 2
Il reste 1 allumette(s) :
|
L'ordinateur joue : nombre choisi = 1 allumette(s).
Il reste 0 allumette(s) :
La partie est terminée ! Bravo ! Vous avez gagné !!
Exercice 2: (3 points)
Soit le script suivant :

liste = [[1]]
i=0
while i < 5:
x = liste[i]
y = [1]
j=1
while j < len(x):
y.append(x[j - 1] + x[j])
j=j+1
y.append(1)
liste.append(y)
i=i+1
for x in liste :
print(x)

1. Donner le résultat d’exécution du script suivant :


2. Que fait ce script ?
Exercice 3 : (5 points)
Soit une liste L de N entiers distincts, on dit que L[i] est un maximum local s'il est plus grand que tous
ceux qui le précèdent (dans une lecture de gauche vers la droite).
De manière générale L[i] est un maximum local gauche-droite   j < i  L[i] > L[j]
Exemple : Pour N = 8 et L = [3,4,2,7,5,8,l,6], les maximums locaux de la liste L sont 3, 4,7,8.
Ecrire un script Python permettant de :
1. Saisir un entier N compris entre 5 et 100.
2. Remplir une liste L par N entiers distincts.
3. Afficher tous les maximums locaux de L
Exercice 4 : (6 points)
Soit N un entier naturel formé par deux chiffres différents. Le principe de génération de la liste vers 9 de N
est le suivant :
On calcule la valeur absolue de la soustraction de N et de son équivalent à l’envers(en inversant les deux
chiffres de N) pour obtenir la nouvelle valeur de N que l’on ajoute à la liste L. Ce traitement se répète
jusqu’à ce que N soit égal à 9.
Exemple : Pour N = 63
 Prenons la valeur absolue de la soustraction de ce nombre et de son équivalent à l’envers (36) :
|63 - 36| =27
 Le résultat obtenu 27 subira le même traitement : |27 - 72|=45
 Le résultat obtenu 45 subira le même traitement : |45 - 54|=9
 Le résultat obtenu est 9 donc on arrête le traitement
Donc le nombre 63 admet une liste vers 9 qui est la suivante : [63 27 45 9]
Ecrire un script python qui permet de :
1. saisir un entier naturel N formé de deux chiffres distincts
2. créer la liste L.
3. afficher L

Vous aimerez peut-être aussi