Info-PCSI2
N.Véron-LMB-2014
Exercice 1 : Voici un programme Python
N = int(input(‘entrer un entier naturel : ‘))
for i in range(N) :
if i%2 = 0:
carre = i**2
else :
carre = 0
somme = somme + carre
print(somme)
a. A quelle question répond-t-il ?
b. Il comporte deux erreurs, lesquelles ?
c. Modifier ce programme pour qu’il détermine le nombre d’itérations nécessaires pour que somme > A, A entier
donné par l’utilisateur.
Exercice 2 : Que fait l’algorithme suivant ?
Données : a,b,c entiers relatifs
Si a > b alors
Si a>c alors
m
a
Sinon
m
c
FindeSi
Sinon
Si b>c alors
m
b
Sinon
m
c
FindeSi
FindeSi
Afficher m
a. Le traduire en Python, de sorte que a,b et c soient
entrés par l’utilisateur.
b. Le tester avec différentes valeurs de a,b et c.
c. Trouver un moyen de faire la même chose avec une
commande Python.
Exercice n°3 :
sinus et cosinus
a. Ecrire un programme qui affiche la valeur de la somme : sin(1) + sin(2) + ...+ sin(100).
b. Le modifier pour qu’il affiche la valeur du produit : sin(1)*sin(2)*...*sin(100)..
c. Ecrire un programme qui affiche les entiers k de [-20,20] tels que sin(k) < cos(k)
d. Ecrire un programme qui affiche la valeur u100, lorsque u0 = 1 et k, uk+1 = sin(uk)
e. Ecrire un programme qui affiche le plus petit entier k>0 tel que sin(k) > 0,99.
Exercice n°4 : Un jeu
a. Ecrire un programme qui choisit un entier N au hasard entre 1 et 200, puis qui demande à l’utilisateur de rentrer
des entiers jusqu’à ce qu’il trouve N, en lui répondant « plus » ou « moins » pour chaque réponse erronée et en lui
donnant son « score » une fois N trouvé.
b. Quelle est la bonne stratégie pour gagner à ce jeu ? Essayer
c. Ecrire un programme qui inverse les rôles c’est à dire que c’est l’utilisateur qui choisit un nombre et c’est
l’ordinateur qui essaye de le trouver (la personne qui code le programme a su répondre à la question b.)
Aide : On pourra utiliser la fonction randint(a,b) du module random qui renvoie un entier au hasard entre a et b.
Correction de l’exercice 4