Académique Documents
Professionnel Documents
Culture Documents
Contenu
93
8 3989 TG PA 01
Partie 1
La structure conditionnelle : Si…Alors…Sinon
1. Présentation de la structure
On peut utiliser cette structure sous 2 formes.
Finsi
94
8 3989 TG PA 01
Exemples de conditions
// liste d'instructions
Finsi
a (entier, calculé) Si a < 4 et trouvé Ici, comme dans l'exemple
trouvé (booléen, calculé) Alors précédent, la liste d'instructions
sera exécutée si les 2 conditions
sont vraies. La 2e condition,
// liste d'instructions trouvé signifie : si trouvé = vrai.
Finsi
a (entier, calculé) Si a < 4 ou leMot <> "Charles" La liste d'instructions sera
leMot (chaîne, saisie) Alors exécutée si une des conditions
est vraie ou si les 2 conditions
sont vraies en même temps.
// liste d'instructions
Finsi
Vous avez remarqué que les instructions dépendant du Alors sont décalées par rapport
aux instructions ne figurant pas dans le Alors ?
Ce procédé de décalage s'appelle l'indentation et permet de faire en sorte que les algos
(et les programmes) soient plus lisibles : on voit mieux un Si…Alors…Finsi (ou d'autres
structures que l'on verra ultérieurement) quand on indente les instructions qu'il con-
tient.
95
8 3989 TG PA 01
Si condition
Alors
Si la condition condition
//Liste d'instructions est vraie, alors ce sont les
instructions de la partie
Alors qui seront exécutées.
Sinon si la condition condition
est fausse, alors, ce sont
les instructions de la partie
//Liste d'instructions Sinon qui seront exécutées.
Finsi
Exemples
Je reprends ci-après les exemples présentés au paragraphe précédent, et je vous propose
de regarder de près quelles sont les valeurs des conditions qui entraînent le fait que ce
soient les instructions contenues dans le sinon qui soient exécutées et non les instruc-
tions contenues dans le alors.
96
8 3989 TG PA 01
// Liste d'instructions
Finsi
Exemple d'algo : On peut, en guise d'exemple, reprendre le même exercice qu'au para-
graphe 1A (test si un nombre est multiple de 3), mais le compléter en faisant en sorte que
si le nombre saisi n'est pas multiple de 3, alors un message l'indique à l'utilisateur.
97
8 3989 TG PA 01
Si condition
Alors
//Liste d'instructions]
Finsi
98
8 3989 TG PA 01
Exercice 21
Écrire l'algorithme d'affichage du plus grand de 2 nombres saisis au clavier et répondez à la
question suivante : que se passe-t-il si les 2 nombres saisis sont identiques ?
Exercice 22
Écrire un algorithme qui simule le jeu de pile ou face.
Déroulement du jeu : l'utilisateur saisit la lettre P pour pile, et F pour face, puis valide sa saisie
(ou bien il clique sur le bouton « Pile » ou le bouton « Face » dans le cas d'une interface gra-
phique et événementielle).
Le programme, lui, choisit aléatoirement un nombre entre 0 et 1.
Si le nombre tiré au sort est 0, alors pile est gagnant, face est perdant.
Si le nombre tiré au sort est 1, alors pile est perdant et face est gagnant.
Le programme affiche un message : gagné ou perdu.
Remarque : pour écrire cet algo, vous avez besoin d'une fonction que vous ne con-
naissez pas encore, appelons cette fonction hasard. La fonction hasard retourne un
nombre, choisi aléatoirement, et compris entre les 2 nombres passés en paramètres.
Exemples :
hasard (2,15), retourne un nombre choisi aléatoirement entre 2 et 15.
L'instruction monChoix ← hasard (2,15) a pour effet de ranger dans la variable mon-
Choix un nombre choisi aléatoirement entre 2 et 15.
Exercice 23
Écrire l'algorithme qui calcule et affiche le maximum de 3 nombres saisis au clavier par l'utili-
sateur.
Attention, il n'est pas question de « sortir l'artillerie lourde » en cherchant quel est le plus
grand nombre, quel est le 2e plus grand et quel est le plus petit.
Tout ce qu'on veut, c'est le plus grand.
Il n'est donc pas nécessaire de comparer ces 3 nombres 2 à 2, ce qui ferait 4 comparaisons.
Deux comparaisons suffisent pour obtenir ce qu'on veut.
Passons maintenant à la seconde partie de cette séquence. Elle traite des conditionnelles
imbriquées les unes dans les autres.
99
8 3989 TG PA 01
Partie 2
Imbrication de Si…Alors…Sinon
Lorsqu'une condition ne suffit pas pour départager tous les cas possibles, on peut
« emboîter » des structures conditionnelles les unes dans les autres.
Forme générale :
Si condition1
Alors
Si condition2
Alors // On arrive ici si condition1 et condition2 sont vraies
// Liste d'instructions
// Liste d'instructions]
FinSi
[Sinon // Si condition1 = faux
// Liste d'instructions]
FinSi
Exemple : On reprend le jeu de pile ou face et on l'écrit avec des si…alors…sinon imbri-
qués.
100
8 3989 TG PA 01
Exercice 24
Même exercice que l'exercice 21, en prévoyant l'affichage d'un message lorsque les nombres
saisis sont égaux.
Exercice 25
Calcul du salaire d'un employé.
L'utilisateur saisit le nombre d'heures travaillées, le salaire horaire et l'ancienneté de l'employé.
Les retenues de sécurité sociale sont calculées à partir du salaire brut multiplié par le taux de
retenue de la sécurité sociale qui est une constante valant 0.19.
L'employé bénéficie d'une prime d'ancienneté qui équivaut à 2% du salaire brut pour + de 10
ans et -20 ans d'ancienneté et 5% du salaire brut pour + 20 ans d'ancienneté.
Exercice 26
Écrire l'algorithme du jeu suivant : ce jeu se joue à 2 joueurs.
Le premier joueur saisit un mot de 4 lettres à l'abri du regard du deuxième joueur.
Puis, le deuxième joueur doit deviner quel est ce mot et le saisir.
Il a droit à 3 essais.
À chaque essai, le programme lui indique s'il a trouvé le mot ou bien, le cas échéant, quelles
sont les bonnes lettres aux bonnes places parmi celles qu'il a saisies.
Exemple : si le mot à trouver est cape et que le joueur a saisi rate, le programme lui affiche :
- a – e.
Si, au bout de 3 essais, le joueur n'a pas trouvé le mot, un message lui indique quel était le mot
à trouver.
Exercice 27
Écrire l'algo qui permet d'afficher dans l'ordre alphabétique 4 mots saisis dans un ordre quel-
conque.
Une réflexion s'impose avant de se jeter tête baissée dans l'écriture de cet algo.
Réfléchissons bien.
Pour 4 mots saisis, il peut y avoir 24 solutions d'ordre différentes. En effet, on peut avoir :
• Mot1, mot2, mot3, mot4,
• Ou bien mot1, mot2, mot4, mot3,
• Ou bien mot1, mot3, mot2, mot4,
• Ou bien mot1, mot3, mot4, mot2,
• Ou bien mot1, mot4, mot2, mot3,
• Ou bien mot1, mot4, mot3, mot2.
Cela fait déjà 6 solutions, rien que dans le cas où mot1 est le premier mot dans l'ordre alpha-
bétique. On a encore 6 solutions si la liste triée commence par mot2, 6 solutions si elle com-
mence par mot3 et 6 solutions si elle commence par mot4, ce qui nous fait bien 24 solutions
possibles.
Donc, il n'est pas très judicieux de vouloir écrire un algo qui teste toutes ces solutions. Pour s'en
persuader, il suffit de lire ci-dessous le début de cet algo.
Le principe de cet algo est simple : On compare les mots saisis entre eux et en fonction du
résultat de la comparaison, on les range dans 4 variables m1, m2, m3 et m4 que l'on affiche
à la fin de l'algo.
101
8 3989 TG PA 01
102
8 3989 TG PA 01
Allez, je vous mets un peu sur la piste… Pour ceux qui en ont besoin bien sûr.
Relativement à vos connaissances actuelles, pour vous en sortir, vous avez au moins les 2 solu-
tions suivantes.
• Commencer par trier les 2 premiers mots saisis, puis insérer le 3e mot saisi au bon endroit
(soit en premier dans la liste, soit en 2e dans la liste, soit en dernier dans la liste), puis cela
une fois fait, insérer le 4e mot saisi au bon endroit (en premier, en deuxième, en 3e ou en
dernier).
Cette méthode de tri s'appelle le tri par insertion et nous la reprendrons plus loin, pour
trier un nombre important d'objets, lorsque nous aurons abordé les traitements répétitifs
(on dit : itératifs).
• Encore plus futé : comparer les mots 2 à 2 et intervertir leurs places si le 2e mot est inférieur
au premier mot. Cette méthode de tri s'appelle le tri à bulle car au fur et à mesure du tri,
les objets les plus petits remontent en haut de la liste comme des bulles d'air qui remon-
tent à la surface de l'eau (oh ! C'est beau hein ce que je dis !)
Bon, eh ben bon courage ! Et ne foncez pas tout de suite sur les solutions du corrigé !
Ci-après, nous abordons une autre structure conditionnelle.
103
8 3989 TG PA 01
Partie 3
Les choix multiples
Cette structure est à utiliser lorsqu'on est en présence de nombreux cas simples.
Cela évite d'avoir recours à de trop nombreux Si…Alors…Sinon…FinSi.
1. Syntaxe
SelonCas expression faire
valeur1 : // Liste d'instructions exécutée si expression =
// valeur1
valeur2 : // Liste d'instructions exécutée si expression =
// valeur2
...
valeurN : // Liste d'instructions exécutée si expression =
// valeurN
[ Sinon : // Liste d'instructions, exécutée si l'expression n'a aucune
// des valeurs allant de valeur1 à valeurN ]
FinSelon
2A. Le Sinon
Si expression n'est égale à aucune des valeurs allant de valeur1 à valeurN, c'est le bloc
Sinon qui est exécuté. Comme vous avez pu le remarquer, ce bloc est optionnel puisque
je l'ai encadré par des crochets.
104
8 3989 TG PA 01
Exemple
La ligne 2..4 : Afficher ("Ce nombre est compris entre 2 et 4") signifie que si la variable
nombre appartient à l'intervalle 2..4 (c'est-à-dire si nombre est compris entre 2 et 4),
alors les traitements de ce bloc seront exécutés.
105
8 3989 TG PA 01
Exemple
Début
//Imaginez qu'ici, on lit dans un fichier de produit les renseignements concernant un
// produit particulier, ces renseignements étant TypeProduit et RefProduit
SelonCas TypeProduit faire
"1" : Afficher ("C'est un produit alimentaire")
"2" : Afficher ("C'est un produit de nettoyage")
Sinon : SelonCas RefProduit faire
"AAA" : Afficher ("Produit AAA")
"BBB" : Afficher ("Produit BBB")
"CCC" : Si Prix < 100
Alors Afficher ("Promotion")
FinSi
FinSelon
FinSelon
Fin
Si expression = valeur1
Alors // Liste d'instructions exécutées si expression = valeur1
Sinon Si expression = valeur2
Alors // Liste d'instructions exécutées si expression = valeur2
Sinon Si ……….
Sinon Si expression = valeurN
Alors // Liste d'instructions exécutées si expression =
// valeurN
Sinon // Liste d'instructions, exécutées si l'expression n'a
// aucune des valeurs allant de valeur1 à valeurN
FinSi
FinSi
FinSi
FinSi
Fin
Cette comparaison a pour but de vous montrer que quand on est entré dans un des cas,
tous les autres cas sont sautés, et l'exécution reprend après le mot clé FinSelon.
Cela signifie que même si la valeur d'une expression correspond à plusieurs cas, le pro-
gramme exécute la première liste d'instructions correspondant au cas de l'expression,
puis sort de la structure FinSelon.
106
8 3989 TG PA 01
Exemple
Dans cet algo, si le nombre saisi vaut 3, alors le message Ce nombre vaut 3 s'affiche,
sinon (c'est-à-dire si nombre <> 3), si le nombre est compris entre 2 et 4, le message Ce
nombre est compris entre 2 et 4 s'affiche, sinon (c'est-à-dire si nombre <> 3 et si nombre
n'est pas compris entre 2 et 4), alors, c'est le message Ce nombre ne vaut pas 3 et n'est
pas compris entre 2 et 4 qui s'affiche.
Si le nombre vaut 3, bien que 3 soit compris entre 2 et 4, le programme quitte la struc-
ture SelonCas après avoir trouvé et exécuté les instructions correspondant à la première
valeur satisfaisante.
Donc, si l'utilisateur saisit 3, le résultat d'exécution de ce programme sera l'affichage du
message : "Ce nombre vaut 3".
Maintenant, je modifie l'algo comme suit :
O IlSelonCas
existe des langages de programmation dans lesquels les cas d'une structure
ne sont pas exclusifs, comme par exemple le langage javascript, auquel je
vous initie dans le support de programmation web. Dans ce support, nous faisons
les tests nécessaires à la compréhension de cette structure SelonCas.
107
8 3989 TG PA 01
108
8 3989 TG PA 01
Exercice 28
Écrire un algorithme qui propose un menu affiché à l'écran, et qui, en fonction du choix fait
par l'utilisateur, effectue soit la somme, soit le produit, soit la moyenne de 2 nombres saisis.
Prévoir le cas où l'utilisateur a fait une erreur de saisie.
Exercice 29
L'utilisateur saisit la date au format jj/mm/aaaa, et le programme affiche la date avec le mois
en lettres.
Exemple : si l'utilisateur saisit 15/10/2007, alors le programme affiche : Aujourd'hui, on est le
15 octobre 2001.
Attention !! Si le mois saisi est erroné, un message s'affiche, indiquant à l'utilisateur qu'il a
fait une erreur de saisie.
Exercice 30
Écrire l'algorithme qui affiche la conjugaison d'un verbe du premier groupe saisi par l'utilisa-
teur à la personne choisie.
Au lancement, un message invite l'utilisateur à saisir le verbe qu'il souhaite conjuguer.
Deux messages s'affichent ensuite, lui permettant de choisir d'une part le pronom de conjugai-
son, d'autre part le nombre (singulier ou pluriel) souhaités.
Si l'utilisateur saisit arriver puis choisit 2e personne et singulier, le message Tu arrives s'affiche.
Remarques :
• Il n'est pas nécessaire, dans cet algo de prévoir d'éventuelles erreurs de saisie pour
la personne et le nombre, car lors de la traduction, nous utiliserons des cases à
options, ce qui empêche l'utilisateur de faire d'autres choix que ceux proposés.
• Pour pouvoir conjuguer un verbe, il faut, à partir de son infinitif, récupérer sa
racine, qui est la partie commune de toutes les formes conjuguées du verbe.
Exemple : pour le verbe danser, la racine est dans. Autrement dit, il faut enlever les deux
derniers caractères du verbe saisi, quelle que soit la longueur de ce verbe.
Pour ce faire, on a besoin d'utiliser la fonction SousChaîne, à laquelle on passe en para-
mètre une expression arithmétique utilisant la fonction longueur. À vos cerveaux ! Je ne
vous en dirai pas plus.
109
8 3989 TG PA 01