0% ont trouvé ce document utile (0 vote)
7 vues9 pages

A03 Tests Cours

Le document présente les structures conditionnelles en algorithmique, incluant les instructions conditionnelles simples et alternatives, ainsi que des exemples en pseudo-code et en Python. Il aborde également les structures imbriquées et les cas multiples, fournissant des algorithmes pour des situations comme la vérification de la divisibilité par 7 et la détermination de l'âge pour voter ou conduire. Les concepts sont illustrés par des exemples pratiques pour faciliter la compréhension des structures de contrôle.

Transféré par

Le Soldat Ryan
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues9 pages

A03 Tests Cours

Le document présente les structures conditionnelles en algorithmique, incluant les instructions conditionnelles simples et alternatives, ainsi que des exemples en pseudo-code et en Python. Il aborde également les structures imbriquées et les cas multiples, fournissant des algorithmes pour des situations comme la vérification de la divisibilité par 7 et la détermination de l'âge pour voter ou conduire. Les concepts sont illustrés par des exemples pratiques pour faciliter la compréhension des structures de contrôle.

Transféré par

Le Soldat Ryan
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Lycée Gaston Berger, Lille Classe de BTS SIO

A3 Les structures conditionnelles


Contenus Capacités attendues Commentaires
Structures de contrôle et d’exécu-
tion.
Exécution séquentielle. Mettre en œuvre ces struc- Afin d’en maîtriser le fonc-
Exécution à structure conditionnelle tures. tionnement, les structures
(si-alors-sinon). d’exécution sont elles-
Exécution à structure itérative (pour) mêmes présentées sous
et (tant que / répéter jusqu’à ce que). forme d’algorithmes.
Construction des structures itéra- Gérer une itération en dis- Le raisonnement par récur-
tives : raisonnement par récurrence, tinguant la préparation, rence n’a pas à être évalué
initialisation, mise à jour itérative, l’itération elle-même et la pour des démonstrations. Il
calcul itératif, mise en forme finale. mise en forme finale. est introduit pour servir de
base à une construction des
itérations.
Le calcul itératif est souvent
récursif
Structures imbriquées Gérer des structures imbri- On traite également des
quées. exemples où les éléments
de contrôle des structures
internes dépendent de ceux
des structures externes. Le
nombre d’imbrications n’est
pas limité, sauf pour les
itérations en dépendance,
où on se limite à deux.
On évite les excès de
complexité, ainsi que les
constructions ne corres-
pondant pas à un besoin
concret.
Lycée Gaston Berger, Lille Classe de BTS SIO

A3 Les structures conditionnelles


I Structure conditionnelle simple : « Si . . . Alors »
En algorithmique, on peut vouloir effectuer ou non une instruction selon qu’une condition est vraie ou
fausse. C’est le rôle d’une instruction conditionnelle.
En pseudo-code, on écrit :
D Pseudo-Code

Ð
1 Si <condition> Alors
2 <instruction> # Exécuté si <condition> est vrai
3 FinSi

La <condition> est une proposition logique ou une variable booléenne. Elle doit être formulée préci-
sément pour être sans ambiguïté soit vraie, soit Fausse.
Si la <condition> est vraie, on exécute <instruction> (ou toutes les instructions entre le Alors et
le FinSi s’il y en a plusieurs). Dans le cas contraire, elles sont ignorées et on passe directement à
l’instruction suivant le FinSi.
Pour implémenter une instruction conditionnelle en python, on utilise le mot clé « if » pour le « Si »
et le caractère « : » pour le « Alors ».
Ð Code Python
1 if condition:
2 instruction
3 #endif
3
Remarque
Il n’y a pas de mot clé pour le « FinSi » du pseudo-code. Le « #endif » est un simple commentaire
ignoré par python. Il peut cependant améliorer la lisibilité du code.
Les instructions à exécuter pour une condition vraie sont indentées par rapport à l’instruction « if ».
La fin de l’instruction conditionnelle est matérialisée par la suppression de l’indentation.
Exemples
1. On souhaite savoir si un nombre est divisible par 7. Un algorithme en pseudo-code possible est :
D Pseudo-Code
1 Algorithme.....: Divisible par 7 ?
2 Rôle...........: Savoir si un entier est divisible par 7

Ð
3 Variables......: nb (entier)
4
5 Début
6 Afficher("Entrer un entier positif : ")
7 Saisir(nb)
8 Si (nb%7)=0 Alors # 'nb%7' donne le reste de la division de nb par 7
9 Afficher(nb," est divisible par 7")
10 FinSi
11 Fin

Une implémentation en python pour cet algorithme :


Ð Code Python
1 nb = int(input("Saisir un entier positif "))
2
3
4
if (nb%7 == 0) :
print(nb,"est divisible par 7")
#endif
3
2. On veut afficher le plus grand de deux nombres réels saisis.
Algorithme en pseudo-code :

1
Lycée Gaston Berger, Lille Classe de BTS SIO
D Pseudo-Code
1 Algorithme.....: Maximum de deux nombres
2 Variables......: A, B, Max (réels)

Ð
3
4 Début
5 Afficher("Entrer deux réels : ")
6 Saisir(A,B)
7 Max ← A # on affecte la valeur de A au Max
8 Si (B>A) Alors
9 Max ← B
10 FinSi
11 Afficher("Le maximum est ",Max)
12 Fin

Implémentation en python :
Ð Code Python
1 A = float(input("Saisir un premier nombre réel : "))
2 B = float(input("Saisir un second nombre réel : "))
3 Max = A
4 if (B > A) :
5 Max = B
6 print("Le maximum est ",Max)
3
II Structure conditionnelle alternative « Si . . . Alors . . . Sinon »
Cette fois, on souhaite effectuer une (ou des) instruction(s) si la <condition> est vraie, et en réaliser
une (ou des) autre(s) si la <condition> est fausse. C’est une alternative car un seul des deux groupes
d’instructions sera exécuté.
En pseudo-code, on écrit :
D Pseudo-Code
Si <condition> Alors

Ð
1
2 <instruction 1>
3 Sinon
4 <instruction 2>
5 FinSi

En python, on utilise le mot clé « else » pour le « Sinon ». Cela donne :


Ð Code Python
1 if <condition> :
2 <instruction 1>
3
4
5
else :
<instruction 2>
#endif
3
On peut remarquer que le mot clé « else » est également suivi du caractère « : » indiquant le début
d’un bloc d’instructions.
Exemples
1. Une variante de l’algorithme précédent testant la divisibilité d’un nombre par 7 en pseudo-code
et en python :

2
Lycée Gaston Berger, Lille Classe de BTS SIO
D Pseudo-Code
1 Algorithme.....: Divisible par 7 (v2) ?
2 Rôle...........: Savoir si un entier est divisible par 7
3 Variables......: nb (entier)

Ð
4
5 Début
6 Afficher("Entrer un entier positif : ")
7 Saisir(nb)
8 Si (nb%7) = 0 Alors
9 Afficher(nb," est divisible par 7.")
10 Sinon
11 Afficher(nb," n'est pas divisible par 7.")
12 FinSi
13 Fin

Ð Code Python
1 nb = float(input("Saisir un entier positif : "))
2 if (nb % 7) == 0 :
3
4
5
6
print(nb," est divisible par 7.")
else :
3
print(nb," n'est pas divisible par 7.")
#endif
2. Et une autre version de l’algorithme qui affiche le plus grand de deux réels saisis :
D Pseudo-Code
1 Algorithme.....: Maximum v2
2 Variables......: A,B,Max (réels)
3

Ð
4 Début
5 Afficher("Entrer deux nombres réels")
6 Saisir(A,B)
7 Si (A>B) Alors
8 Max ← A
9 Sinon
10 Max ← B
11 FinSi
12 Afficher("Le plus grand de deux nombres saisis est ",Max)
13 Fin

Ð Code Python
1 A = float(input("Saisir un premier nombre réel : "))
2 B = float(input("Saisir un second nombre réel : "))

3
3 if (A > B) :
4 Max = A
5 else :
6 Max = B
7 print("Le maximum est ",Max)

III Trois cas et plus


Avec la structure conditionnelle simple on exécute des instructions dans le seul cas d’une condition
vraie. Avec la structure alternative on exécute des instructions dans deux cas, celui où la condition
est vraie et celui où la condition est fausse. S’il y a davantage de cas à envisager, on peut procéder de
plusieurs façons.
1. Une succession de structures simples « Si . . . Alors ».

3
Lycée Gaston Berger, Lille Classe de BTS SIO
D Pseudo-Code
1 Si <condition 1> Alors
2 <action 1>

Ð
3 FinSi
4 Si <condition 2> Alors
5 <action 2>
6 FinSi
7 ...
8 Si <condition n> Alors
9 <action n>
10 FinSi

Ð Code Python
1 if <condition 1> :
2 <instruction 1>

3
3 if <condition 2> :
4 <instruction 2>
5 ...
6 if <condition n> :
7 <instruction n>
2. Des structures « Si . . . Alors . . . Sinon » imbriquées.
D Pseudo-Code
1 Si <condition 1> Alors
2 <action 1>
3 Sinon

Ð
4 Si <condition 2> Alors
5 <action 2>
6 Sinon
7 Si <condition 3> Alors
8 <action 3>
9 Sinon
10 ....
11 FinSi
12 FinSi
13 FinSi

Ð Code Python
1 if <condition 1> :
2 <instruction 1>
3 else :

3
4 if <condition 2> :
5 <instruction 2>
6 else :
7 if <condition 3> :
8 <instruction 3>
9 else :
10 ...
Les différentes indentations sont nécessaires pour comprendre et visualiser l’imbrication de ces
structures imbriquées.
3. Une structure « Si . . . Alors . . . SinonSi . . . »
Comme son nom l’indique, le « SinonSi » remplace un « Sinon » suivi d’un « Si ». Il permet une
meilleure lisibilité du code et simplifie la gestion des indentations.

4
Lycée Gaston Berger, Lille Classe de BTS SIO
D Pseudo-Code
1 Si <condition 1> Alors
2 <action 1>

Ð
3 SinonSi <condition 2> Alors
4 <action 2>
5 ...
6 SinonSi <condition n> Alors
7 <action n>
8 Sinon # facultatif (dans tous les autres cas)
9 <action>
10 FinSi

Ð Code Python
1 if <condition 1> :
2 <instruction 1>
3 elif <condition 2> :

3
4 <instruction 2>
5 ...
6 elif <condition n> :
7 <instruction n>
8 else : # facultatif (dans tous les autres cas)
9 <instruction>
Exemple
On veut écrire un algorithme qui, à partir de l’âge de l’utilisateur, affiche s’il est capable de voter ou
(non exclusif) de conduire. On va le décliner en trois versions correspondant aux trois façons présen-
tées.
1. Structures simples « Si . . . Alors »
D Pseudo-Code
1 Algorithme.....: Voter ou conduire (v1)
2 Variables......: Age (entier), Voter (booléen), Conduire (chaîne)
3
4 Début

Ð
5 Afficher("Quel est vôtre âge ?")
6 Saisir(Age)
7 Si (Age >← 18) Alors
8 Voter ← Vrai
9 Conduire ← "Conduire seul"
10 FinSi
11 Si (Age >← 15) et (Age < 18) Alors
12 Voter ← Faux
13 Conduire ← "Possible accompagné"
14 FinSi
15 Si (Age < 15) Alors
16 Voter ← Faux
17 Conduire ← "Impossible"
18 FinSi
19 Afficher("Voter :",Voter,"Conduire :",Conduire)
20 Fin

5
Lycée Gaston Berger, Lille Classe de BTS SIO
Ð Code Python
1 # VoterConduire v1
2 age = int(input("Saisir votre âge : "))
3 if (age >= 18) :
voter = True

3
4
5 conduire = "Conduire seul"
6 if (15 <= age < 18) :
7 voter = False
8 conduire = "Possible accompagné"
9 if (age < 15) :
10 voter = False
11 conduire = "Impossible"
12 print("Voter : ",voter,". Conduire : "conduire")

2. Structures « Si . . . Alors . . . Sinon » imbriquées


D Pseudo-Code
1 Algorithme.....: Voter ou conduire (v2)
2 Variables......: Age (entier), Voter (booléen), Conduire (chaîne)
3
4 Début

Ð
5 Afficher("Quel est vôtre âge ? ")
6 Saisir(Age)
7 Si (Age >← 18) Alors # il est majeur
8 Voter ← Vrai
9 Conduire ← "Conduire seul"
10 Sinon # il est mineur donc ne peut pas voter
11 Voter ← Faux
12 Si (Age >← 15) Alors
13 Conduire ← "Possible accompagné"
14 Sinon
15 Conduire ← "Impossible"
16 FinSi
17 FinSi
18 Afficher("Voter :",Voter,"Conduire :",Conduire)
19 Fin

Ð Code Python
1 # VoterConduire v2
2 age = int(input("Saisir votre age : "))
3 if (age >= 18) :
voter = True

3
4
5 conduire = "Conduire seul"
6 else :
7 voter = False
8 if (age >= 15) :
9 conduire = "Possible accompagné"
10 else :
11 conduire = "Impossible"
12 print("Voter : ",voter,". Conduire : ",conduire)

3. Structure « Si . . . Alors . . . SinonSi . . . »

6
Lycée Gaston Berger, Lille Classe de BTS SIO
D Pseudo-Code
1 Algorithme.....: Voter ou conduire (v3)
2 Variables......: Age (entier), Voter (booléen), Conduire (chaîne)
3
4 Début

Ð
5 Afficher("Quel est vôtre âge ?")
6 Saisir(Age)
7 Si (Age >← 18) Alors
8 Voter ← Vrai
9 Conduire ← "Conduire seul"
10 SinonSi (Age >← 15) Alors
11 Voter ← Faux
12 Conduire ← "Possible accompagné"
13 Sinon
14 Voter ← Faux
15 Conduire ← "Impossible"
16 FinSi
17 Afficher("Voter : ",Voter," Conduire : ",Conduire)
18 Fin

Ð Code Python
1 #VoterConduire v3
2 age = int(input("Saisissez votre age : "))
3 if (age >= 18) :
voter = True

3
4
5 conduite = "Conduire seul"
6 elif (age >= 15) :
7 voter = False
8 conduire = "Possible accompagné"
9 else :
10 voter = False
11 conduire = "Impossible"
12 print("Voter : ",voter". Conduire : ",conduire)

Exercice no 1

D Pseudo-Code Compléter le tableau ci-dessous à l’aide de l’algorithme en


1 Saisir a pseudo-code ci-contre.

Ð
2 Si a > 0 Alors Nombre saisi Nombre affiché
3 a←1 5
4 Sinon
−2
5 a←-1
6 FinSi −100
7 Afficher a 0,01
0
Exercice no 2
Écrire un algorithme qui demande une température en degrés Celsius et qui affiche l’état de l’eau à
cette température :
— glace pour une température inférieure ou égale à 0 °C ;
— liquide pour une température comprise strictement entre 0 °C et 100 °C ;
— vapeur pour une température supérieure ou égale à 100 °C,
Exercice no 3
Écrire un algorithme qui demande au joueur l’année de naissance de Guido Van Rossum et affiche Vrai
si l’année est correcte à 2 ans près (en plus ou en moins).

7
Lycée Gaston Berger, Lille Classe de BTS SIO
Exercice no 4
Un magasin de reprographie facture 0,20 e les dix premières photocopies puis 0,15 e les vingt sui-
vantes puis 0,10 e au-delà.
1. Combien coutent 8 photocopies ? 26 photocopies ? 50 photocopies ?
2. Écrire un algorithme qui prend en entrée le nombre de photocopies effectuées et qui renvoie le
montant de la facture correspondante.
Exercice no 5
1. Écrire un algorithme qui demande à l’utilisateur un entier n et qui affiche Vrai si n est divisible
par 7 ou par 11, et qui affiche Faux sinon.
2. Écrire un algorithme qui demande à l’utilisateur un entier n et qui affiche Vrai si n est divisible
par 7 et par 11, et qui affiche Faux sinon.
Exercice no 6
Le guichet d’une administration est ouvert tous les jours de 8h à 13h et de 15h à 18h sauf le dimanche
et le samedi après-midi.
Écrire un algorithme qui prend en entrée un jour (chaîne) et une heure (entier de 0 à 23) et qui affiche
un message indiquant si le guichet sera ouvert ou non.
Exercice no 7
Réaliser un programme du jeu « pierre-feuille-ciseaux » : le joueur joue contre l’ordinateur.
Les choix sont : 1 pour pierre, 2 pour feuille, 3 pour ciseaux.
On rappelle que la pierre bat les ciseaux, les ciseaux battent la feuille et la feuille bat la pierre.
Remarque : pour le choix (aléatoire) de l’ordinateur, on utilisera la fonction randint(1,3) qui renvoie
un entier aléatoire entre 1 et 3, bornes comprises.
Exercice no 8
Une piscine municipale propose trois tarifs :
— Tarif 1 : une entrée : 3 euros ;
— Tarif 2 : abonnement annuel 9 euros puis 1 euro l’entrée ;
— Tarif 3 : abonnement annuel 20 euros puis entrées à volonté.
Écrire un programme qui demande à l’utilisateur un nombre d’entrées puis qui calcule les montants à
payer et affiche le tarif le plus intéressant pour l’utilisateur.
Exercice no 9
Les élections législatives, en Algoland Septentrional, obéissent à la règle suivante :
— lorsque l’un des candidats obtient plus de 50% des suffrages, il est élu dès le premier tour ;
— en cas de deuxième tour, peuvent participer uniquement les candidats ayant obtenu au moins
12,5% des voix au premier tour.
Écrire un algorithme qui prend en entrée quatre réels (les scores de quatre candidats au premier tour)
et qui traitera ensuite le candidat numéro 1 (et uniquement lui) : il dira s’il est élu, battu, s’il se trouve
en ballottage favorable (il participe au second tour en étant arrivé en tête à l’issue du premier tour) ou
défavorable (il participe au second tour sans avoir été en tête au premier tour).

Vous aimerez peut-être aussi