Вы находитесь на странице: 1из 5

2 - Conditionnelle if et Boucle while

Exercices et programmes à rendre dans le compte-rendu de TP :


ex 4 ; ex 5 (prog. TP2_1, TP2_2, TP2_3) ; ex 6 (prog. TP2_while) ; ex 7 (prog. TP2_4) ; ex 8 (prog
TP2_5) ; ex 9 (prog TP2_6) ; ex 10 (prog TP2_7) ; ex 11 (prog TP2_bizarre) ; ex 12 ; ex 13 (prog
TP2_8).

2.1 - Algorithmique : à faire sur papier

Exercice 1 : Pair ou impair ? Multiple de 3 ou pas ?


Ecrivez sur papier un algorithme qui :
- demande à l'utilisateur de saisir un nombre ;
- détermine et affiche si ce nombre est pair ou impair.
- détermine et affiche si ce nombre est un multiple de 3, ou pas.
Testez cet algorithme en remplissant des tableaux de suivi de la valeur des variables (remplissez un
tableau différent pour chaque cas de figure possible).
NB : chaque tableau de suivi doit contenir une colonne par variable, une colonne pour les tests, et
il doit indiquer les affichages obtenus, il peut utiliser les n° des lignes pour indiquer à quel moment
a lieu un changement.

Exercice 2 : trouver le maximum de 3 nombres


Ecrivez un algorithme sur papier qui demande à un utilisateur de saisir 3 nombres, puis qui affiche
le plus grand d'entre eux. (Conseil : utilisez une variable nommée maxi pour stocker et afficher le
maximum en fin d'algorithme).
Testez cet algorithme en remplissant des tableaux de suivi de la valeur des variables (un tableau
différent pour chaque cas de figure possible).

Exercice 3 : la boucle while : faire saisir un nombre strictement positif


On donne le programme suivant (les n° de ligne ont été ajoutés pour pouvoir s'y référer, mais ne
font pas partie du programme) :
1 nbre = float(input("Entrez un nombre strictement positif svp : "))
2 while nbre <= 0 :
3 print(nbre, "n'est pas un nombre strictement positif !!")
4 nbre = float(input("Entrez un nombre strictement positif svp : "))
5 print("Vous avez saisi le nombre : ", nbre)
Etablissez un tableau de suivi dans chacun des cas ci-dessous. Vous préciserez pour chaque cas, le
nombre d'itérations, c'est à dire le nombre de fois où la boucle a été répétée.
- 1er cas : l'utilisateur saisit la valeur 5.
- 2e cas : l'utilisateur saisit la valeur -1, puis la valeur 4.
- 3e cas : l'utilisateur saisit -1, puis -3, puis 0, puis 2.

info - TP2 page 21


- 4e cas : l'utilisateur saisit -0.5, puis -9, puis 0, puis -7, puis -1, puis 2.
- 5e cas : l'utilisateur saisit les valeurs -5, puis 0, puis -2, puis zut.

Exercice 4 : affichages avec la boucle while


On donne le programme suivant :
1 i = 7
2 while i > 0 :
3 print(i)
4 i = i - 1
1) Que fait ce programme ?
2) Pour chacun des questions ci-dessous, répondre sur le compte-rendu de TP et faire un tableau de
suivi de la valeur de la variable i, en indiquant les tests dans une autre colonne :
a) On souhaite afficher les chiffres entre 9 et 0 inclus dans l'ordre décroissant : comment faut-il
modifier ce programme ?
b) On souhaite maintenant afficher ces chiffres (entre 0 et 9 inclus) dans l'ordre croissant :
comment faut-il modifier ce programme ?
c) On souhaite maintenant afficher, dans l'ordre croissant, les nombres entre 0 et 20, de 2 en 2 (c'est
à dire qu'on veut afficher 0 ; 2 ; 4 ; 6 ; ... etc) : comment faut-il modifier ce programme ?
c) On souhaite maintenant afficher, dans l'ordre croissant, les nombres entre 1 et 25, de 3 en 3 (c'est
à dire qu'on veut 1 ; 4 ; 7 ; 10 ; 13 ; ....etc) : comment faut-il modifier ce programme ?

2.2 - Programmation (sur ordinateur)


Pour chaque programme, n'oubliez pas de faire figurer vos résultats d'exécution en fin de
programme (entourés par des triple guillemets), et d'ajouter des commentaires explicatifs entre les
lignes du programme.

Exercice 5 : programmes TP2_1, TP2_2 et TP2_3


Ecrivez des programmes pour les exercices 1, 2 et 3 ci-dessus (à nommer TP2_1.py, TP2_2.py
et TP2_3.py). Vous testerez ces programmes sur les mêmes valeurs que celles que vous avez
utilisées dans vos tableaux de suivi.

Exercice 6 : programme TP2_while


Dans le dossier TP2 du bureau, ouvrez le programme TP2_while.py. Il s'agit du programme de
l'exercice 4, dans lequel on affiche aussi les chiffres en ligne (remarquez que l'utilisation de endl
entre les parenthèses du print, permet d'ajouter la chaîne de caractères de notre choix en fin
d'affichage).
Faites chacune des modifications demandées dans les questions 2.a), 2.b), 2.c) et 2.d) de l'exercice
4, et testez. Dans le programme TP2_while.py (à rendre en fin de TP), vous ajouterez les modi­
fications à la suite les unes des autres en séparant les différentes parties du programme par des
commentaires. Comme d'habitude, copiez en fin de programme les résultats de l'exécution.

Exercice 7 : Voyelle ou consonne ?


Ecrivez un programme nommé TP2_4.py qui :

info - TP2 page 22


- demande à l'utilisateur d'entrer une lettre
- affiche un message indiquant s'il s'agit d'une voyelle ou d'une consonne.

Exercice 8 : En quel mois et en quelle saison sommes-nous ?


Ecrivez un programme nommé TP2_5.py qui :
- demande à l'utilisateur de saisir la date du jour, puis le numéro du mois (la date du jour devra être
comprise entre 1 et 31 et le numéro du mois entre 1 et 12 ; si l'utilisateur saisit autre chose, recom ­
mencer la saisie à l'aide d'une boucle while).
- affiche un message contenant la date avec le mois en lettres (exemple : “Nous sommes le 17
septembre”).
- affiche un message indiquant la saison (exemple : “Nous sommes en été.”) - pour simplifier on
pourra considérer trois mois entiers pour chaque saison (été = juin, juillet, août ; automne =
septembre, octobre, novembre ; hiver = décembre, janvier, février ; printemps = mars, avril, mai).
Si vous êtes en avance, vous pouvez utiliser les date 2012 des équinoxes (20 mars, 22 septembre) et
des solstices (20 juin, 21 décembre).
Vous mettrez au point un jeu d'essais en prévoyant d'abord, sur papier, des tableaux de suivi pour
chacun des cas à tester où vous noterez les résultats que vous prévoyez. Ensuite, vous testerez votre
programme sur chacune de ces valeurs et comparerez les résultats obtenus avec les résultats prévus.

Exercice 9 : un compteur
On souhaite écrire un programme TP2_6.py qui demande à l'utilisateur de saisir un caractère
(suivi d'un appui sur la touche entrée), ou de saisir un point pour terminer la saisie.
Tant que l'utilisateur n'aura pas tapé sur le point du clavier, le programme lui redemandera de saisir
un caractère.
On suppose que l'utilisateur saisira bien un seul caractère à chaque fois (il n'est pas nécessaire que
le programme fasse un test pour vérifier qu'il n'y a qu'un seul caractère qui est saisi à chaque fois).
A la fin du programme, on souhaite afficher : “ vous avez saisi ..... caractères ” en indiquant le
nombre de caractères saisis.
Pour cela, vous utiliserez une boucle while, une variable saisie et une variable compteur .
La variable saisie recevra le caractère saisi par l'utilisateur. La variable compteur devra être
mise à jour à chaque passage dans la boucle ; elle permettra de compter le nombre de caractères
saisis et d'afficher ce nombre à la sortie de la boucle.

Exercice 10 : tracer des graphiques avec la turtle (tortue)


Le module turtle permet de réaliser des « graphiques tortue1 », c’est-à-dire des dessins géomé­
triques correspondant à la piste laissée derrière elle par une petite « tortue » virtuelle, dont nous
contrôlons les déplacements relatifs sur l’écran de l’ordinateur à l’aide d’instructions simples :
forward(n) pour avancer de n pixels, left(a) pour tourner à gauche de a degrés, right(a)
pour tourner à droite de a degrés, reset() pour effacer l’écran et remettre la tortue au centre…
a) Dans l'interpréteur, tapez :
>>> import turtle
1 Inspiré des "turtle graphics" du langage LOGO (fin des années 60, très utilisé dans le domaine de
l’éducation).

info - TP2 page 23


>>> help(turtle)
>>> turtle.forward(100)
>>> turtle.left(90)
>>> turtle.forward(50)
>>> turtle.left(60)
>>> turtle.forward(20)
>>> turtle.reset()
Pour voir le graphique se dessiner au fur et à mesure des instructions tapées dans l'interpréteur,
affichez, sur votre écran, la fenêtre graphique à côté de la fenêtre de l'interpréteur.
b) Maintenant, ouvrez le fichier TP2_turtle.py, lisez le attentivement, puis exécutez-le.
De façon similaire, écrivez un programme nommé TP2_7.py, qui tracera, à l’aide d’une boucle
while :
- un triangle équilatéral de 60 pixels de côté.
- puis un octogone de 50 pixels de côté (cf. illustration ci dessous).
Ajouter un titre pour ce graphique (chercher dans l'aide du module turtle).
Comment peut-on dessiner l'octogone à côté du triangle, et non par-dessus ? (chercher la réponse
dans l'aide du module turtle). Modifier le programme pour que les deux figures soient dessinées
l'une à côté l'une de l'autre, avec un espace vide entre les deux.

Exercice 11 : programme TP2_bizarre.py


Ouvrez le programme TP2_bizarre.py. Lisez-le attentivement : quel résultat d'exécution
prévoyez-vous ? Ensuite, exécutez ce programme. Que se passe-t-il ? Pourquoi ? (Répondez sur
votre compte-rendu de TP). Proposez si possible une amélioration de ce programme.

info - TP2 page 24


Exercice 12 : Epsilon machine
Lisez et commentez le programme suivant : quel résultat d'exécution peut-on prévoir à votre avis ?
epsilon = 1.0
while epsilon + 3 > 3 :
epsilon = epsilon/2
print(epsilon)
Ouvrez le fichier TP2_epsilon.py qui contient ce programme et exécutez-le. Le résultat de
l'exécution est-il conforme à ce que vous aviez prévu ? Commentez.

Exercice 13 : Travail personnel : Factorielle de n


Ecrire un programme nommé TP2_8.py, qui :
- demande à l'utilisateur d'entrer un entier positif
- calcule la factorielle de cet entier.

info - TP2 page 25

Вам также может понравиться