Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 21
Objectifs :
o Présentation de la structure conditionnelle
o Présentation de la structure alternative (simple et imbriquée)
o Présentation de la structure alternative multiple (cas … Selon cas)
o Alternative et mise en œuvre en VBA (Fiche 6)
Sommaire
I) Présentation ..................................................................................................... 22
II) La structure alternative .................................................................................... 22
III) La structure conditionnelle au sens strict ......................................................... 23
Exercice n° 1........................................................................................... 25
Exercice n° 2........................................................................................... 25
Exercice n° 2bis ...................................................................................... 25
Exercice n° 3 le jeu des erreurs ............................................................ 26
Exercice n° 4........................................................................................... 28
Exercice n° 5........................................................................................... 29
Exercice n° 6........................................................................................... 30
Exercice n° 7 (d’après Bac IG 1999) ....................................................... 31
Exercice n° 8........................................................................................... 33
Exercice n° 9........................................................................................... 34
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 22
I) Présentation
Nous avons vu jusqu’à présent des algorithmes avec des instructions qui s’enchaînent de façon
séquentielles, c'est-à-dire qui vont s’exécuter les unes après les autres.
Toutefois, cela n’est pas toujours satisfaisant.
Supposons que l’on désire écrire un algorithme permettant d’afficher le montant d’une
commande d’imprimantes. Le prix unitaire d’une imprimante est de 255 €. A partir de cinq
imprimantes achetées, le prix est de 215 €.
Que doit faire le traitement ?
Il doit calculer le montant à payer, c'est-à-dire réaliser l’opération « quantité * prix unitaire ».
Or, le prix unitaire est variable et dépend de la quantité commandée.
Le traitement doit donc tester la quantité.
Pour effectuer des tests, nous utilisons les structures conditionnelles.
Les structures conditionnelles permettent d'exécuter des instructions différentes
sous certaines conditions.
II) La structure alternative
Reprenons notre exemple : nous pouvons schématiser le test au travers d’un schéma :
début Le losange indique la condition
c'est-à-dire la question que se
pose le programme : la quantité
est-elle inférieure à 5 ?
VRAI FAUX
Quantité < 5
Prix = quantité * 255 Prix = quantité * 215
fin
Le rectangle indique la ou les instructions à réaliser
Le traitement teste une condition :
- si elle est vraie, il réalise une (ou plusieurs) instruction(s)
- si elle est fausse, il réalise une (ou plusieurs) autre(s) instruction(s)
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 23
Syntaxe
En algorithmique on utilise la structure alternative SI … ALORS … SINON, dont la syntaxe est :
SI condition ALORS
instruction 1
instruction 2 Instructions réalisées si la condition est vraie
SINON
instruction 3
instruction 4
FINSI Instructions réalisées si la condition est fausse
Exemple
Ainsi l’algorithme correspondant à notre exemple est le suivant :
PROGRAMME Commande
VAR
quantite, montant : entier
DEBUT
AFFICHER "Saisir une quantité "
SAISIR quantite
SI quantite < 5 ALORS
montant quantite * 255
SINON
montant quantite * 215
FINSI
AFFICHER " Montant commandé : " , montant , " € "
FIN
A noter ici
L’instruction permettant l’affichage du montant commandé se situe après le FINSI.
Elle sera donc réalisée dans tous les cas (quantité < 5 ou quantité ≥ 5)
III) La structure conditionnelle au sens strict
Parfois, il faut exécuter une instruction uniquement si une condition est vraie et ne rien faire si
la condition est fausse.
Reprenons notre exemple de départ : le programme qui affiche le montant d’une commande
d’imprimante. L’utilisateur saisit la quantité commandée. Le prix d’une imprimante est 255 €.
A partir de cinq imprimantes achetées, le prix est de 215 €.
Supposons maintenant que l’on désire appliquer une remise de 1% si le montant dépasse 2200
€.
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 24
Que doit faire le traitement ?
Il teste la condition : est-ce que le montant est supérieur à 2200 € ?
Si la condition est vraie, il applique une remise de 1%.
Si la condition est fausse, il ne fait rien.
début
VRAI FAUX
montant > 2200
montant = montant * 0.99
fin
Syntaxe
En algorithmique on utilise la structure alternative SI … ALORS …, dont la syntaxe est :
SI condition ALORS
Bloc_instructions Les instructions comprises en SI et FINSI sont réalisées
FINSI uniquement si la condition est vraie
Reprise de l’exemple
Compléter votre algorithme en tenant compte de la nouvelle règle de gestion
PROGRAMME Commande
VAR
quantite : entier
montant : réél
DEBUT
AFFICHER " Saisir une quantité "
SAISIR quantite
SI quantite < 5 ALORS
montant = quantite * 255
SINON
montant = quantite * 215
FINSI
AFFICHER " Montant commandé : ", montant
FIN
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 25
Exercice n° 1
Implanter votre solution précédente en VBA (utiliser la fiche 6 pour vous aider)
Remarque : pour afficher la valeur de la variable montant en €, vous pouvez utiliser la fonction
formatCurrency(variable)
Exercice n° 2
L'entreprise BASTIA accorde une remise de 3 % sur le prix TTC pour tout achat de plus de 10
articles.
Compléter le programme ci-dessous permettant de trouver le prix TTC en fonction de la
quantité, du prix HT et d'un taux de TVA unique (19,6%)
Programme Remise
Var
prixHT, prixTTC : réel
quantite : entier
Const
tauxTVA = 0.196
tauxRemise = 0.03
Début
Afficher "Entrez le prix hors taxes : "
Saisir prixHT
Afficher "Saisir la quantité achetée : "
Saisir quantite
Afficher "Le prix TTC à payer est de ", prixTTC
Fin
Exercice n° 2bis
Depuis EXCEL :
- Créer un nouveau module
- Implanter votre nouvelle procédure et tester
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 26
Exercice n° 3 le jeu des erreurs
Sachant que le type et le nom des variables déclarés sont corrects indiquez les numéros des
lignes erronées, puis les modifications apportées.
Le système de rémunération des représentants de l’entreprise ROSTAND est le suivant :
Fixe mensuel : 1500 €
Prime d’ancienneté : elle est égale à 0 en dessous de 3 ans d’ancienneté ou égale à 5% du
fixe à partir de 3 ans d’ancienneté
Les primes sont intégrées dans le salaire brut
1 Programme Rostand
2 Const
3 fixe = ‘1500’
4 Var
5 ancienneté, tauxAncienneté : entier
6 primeAncienneté, rémunération : réel
7 Début
8 Afficher « Ancienneté en années : »
9 Saisir ancienneté
10 Si ancienneté < « 3 » Alors
11 tauxAncienneté 0
12 Sinon tauxAncienneté 5
13 primeAncienneté fixe * tauxAncienneté
14 rémunération fixe + primeAncienneté
15 Afficher « Prime d’ancienneté : , primeAncienneté
16 Afficher « Salaire brut total »
17 Fin
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 27
IV) Les structures alternatives imbriquées
L’alternative à une condition peut elle-même conduire à choisir de nouveau entre deux actions.
On utilise alors les structures alternatives imbriquées.
Reprenons notre algorithme Commande (page 23). Pour améliorer le traitement, nous voulons
vérifier au préalable que la quantité saisie par l’utilisateur soit positive.
Si la quantité est négative, le programme affiche un message d’erreur.
Si la quantité est positive, le programme calcule puis affiche le montant de la commande
selon la logique définie précédemment : le prix d’une imprimante est 255 €. A partir de
cinq imprimantes achetées, le prix est de 215 € la pièce.
Dans un premier temps, le système teste la valeur saisie par l’utilisateur. Si elle est négative,
un message d’anomalie est affiché.
début
VRAI FAUX
quantite < 0
Afficher "Erreur :
quantité négative"
Si la quantité est positive, le traitement doit alors tester la quantité pour savoir si elle est
inférieure à 5. Le schéma précédent est complété : la branche correspondant à la réponse
FAUX à la condition « la quantité est-t-elle négative » débouche sur une nouvelle condition
début
VRAI FAUX
quantite < 0
Afficher "Erreur :
quantité négative"
Quantite < 5
Prix=quantite * 255 Prix=quantite * 215
fin
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 28
Syntaxe
En algorithmique on utilise la structure alternative SI … ALORS …, dont la syntaxe est :
SI condition1 ALORS Le bloc d'instructions 1 est exécuté lorsque
Bloc_instructions1 - la condition 1 est vraie
SINON - la condition 2 est vraie ou fausse
SI condition2 ALORS
Bloc_instructions2 Le bloc d'instructions 2 est exécuté lorsque
SINON - la condition 1 est vraie
Bloc_instructions3 - la condition 2 est fausse
FINSI
FINSI Le bloc d'instructions 3 est exécuté lorsque
- la condition 1 est fausse
- la condition 2 est fausse
Exemple
On peut donc compléter notre algorithme de la façon suivante :
PROGRAMME Commande
VAR
quantite, montant : entier
DEBUT
AFFICHER " Saisir une quantité "
SAISIR quantite
SI quantite < 0 ALORS
AFFICHER " Erreur : quantité négative "
SINON
SI quantite < 5 ALORS
montant = quantite * 255 Bloc d’instructions
SINON réalisées lorsque la
montant = quantite * 215 condition " quantité
FINSI < 0 " est fausse
AFFICHER " Montant commandé : ", montant, " € "
FINSI
FIN
Exercice n° 4
Créer un nouveau module et implanter ce programme
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 29
Exercice n° 5
Une entreprise de location de voiture loue ses véhicules de tourisme aux conditions suivantes :
- forfait journalier unique : 100 € HT puis :
- les 50 premiers kilomètres sont gratuits
- les 450 suivants sont facturés à 0,25 € du km
- les kilomètres suivants sont facturés à 0,25 € du km majoré de 10 %
- Compléter l’algorithme ci-dessous
- Tester votre travail en réalisant une procédure en VBA
Programme Location
Const
prixJournalier = 100
Var
jours, forfaitJours, km : entier
Début
Afficher " Saisir un nombre de jour : "
Saisir jours
Afficher " Saisir un nombre de kms : "
Saisir km
Si km <= 50 Alors
Fin Si
forfaitJours
Afficher " Vous devez : ", Net , " €"
Fin
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 30
Exercice n° 6
Ecrire l'algorithme permettant d'afficher le montant total TTC d'une facture lors de l'achat
d'une quantité d'article :
si la quantité n'excède pas 5, l'article coûte 10 €
si la quantité est inférieure à 20, l'article coûte 8 €
si la quantité dépasse 20, l'article coûte 7 €
Taux de TVA : 0.196
La seule donnée à saisir devra être la quantité.
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 31
Exercice n° 7 (d’après Bac IG 1999)
Depuis quelques temps, les clients potentiels qui demandent un devis sont très sensibles à la
remise qui est proposée par à société lors l'établissement du devis. Monsieur SCHNEIDER a
décidé d'accorder une remise, portant uniquement sur à vente de matières et matériels, selon
les modalités figurant dans le tableau ci-dessous :
MATIÈRES ET MATÉRIELS TAUX DE REMISE
<= 2 000 € 10%
> 2 000 € et <= 5 000 € 15 %
> 5 000 € 20%
Dans le travail qui va vous être demandé vous utiliserez les variables suivantes :
pBrut (prix total brut avant remise)
tRemise (taux de remise)
pNet (prix total net (après) remise)
TRAVAIL A FAIRE
Ecrire un algorithme permettant de déterminer le prix net après remise (pNet) à partir du
sous-total brut des matières et matériels (pBrut), en appliquant les modalités de calcul des
taux de remise décrites dans le tableau ci-dessus
Algorithme Calcul
VAR
pBrut, pNet:
tRemise :
DÉBUT
FIN
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 32
V) La structure alternative multiple
La structure SELON permet de choisir le traitement à effectuer en fonction de la valeur ou de
l'intervalle de valeurs d'une variable ou d'une expression. Cette structure permet de remplacer
avantageusement une succession de structures SI … ALORS.
Syntaxe
SELON expression
CAS valeur1 : bloc_instructions_1
CAS valeur2 : bloc_instructions_4
CAS valeur3 : bloc_instructions_3
...
SINON : bloc_instructions_par_défaut
FINSELON
La ligne SINON est facultative : elle permet de définir le traitement à réaliser dans
tous les cas non listés précédemment.
Exemples
Cas 1 : Les différents cas sont des valeurs littérales
Voilà l'algorithme qui affiche le mois en toute lettre selon son numéro de mois.
Le numéro du mois est mémorisé dans la variable noMois.
…
SAISIR noMois
SELON noMois
CAS 1 : AFFICHER "Janvier"
CAS 2 : AFFICHER "Février"
CAS 3 : AFFICHER "Mars"
…
CAS 12 : AFFICHER "Décembre"
SINON : AFFICHER "Le n° de mois doit être compris entre 1 et 12"
FINSELON
…
Imaginez la longueur de ce même algorithme écrit avec la structure SI
Cas 2 : Les différents cas possibles sont décrits par des intervalles de valeurs (taux de
remise différent selon le montant d'achat)
…
SAISIR montant
SELON montant
CAS <1000 : taux 1
CAS ≥1000 et < 3000 : taux 2
CAS ≥3000 et < 10000 : taux 3
CAS ≥ 10000 : taux 4
FINSELON
montant montant * ( 1 – taux/100)
…
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 33
Exercice n° 8
Une entreprise de vente par catalogue fait la promotion de cinq produits différents dont les
prix sont :
Produit 1 = 2.98 €
Produit 2 = 4.40 €
Produit 3 = 9.98 €
Produit 4 = 4.49 €
Produit 5 =6.87 €
- Ecrire l'algorithme qui, à partir de la référence d'un produit saisi au clavier (références 1, 2,
3, 4 ou 5) affiche le prix de ce produit.
- Tester en implantant votre code en VBA
PROGRAMME Promotion
VAR
refProduit : entier
Prix : réel
DEBUT
FIN
Formation sur les algorithmes
Thème 4 – Les structures conditionnelles et mise en œuvre en VBA – Page 34
Exercice n° 9
Ecrire un algorithme permettant de saisir de la moyenne générale d'un élève puis qui affichera
la mention correspondante
Si la note est comprise entre 0 inclus et 9.99 non reçu
Si la note est comprise entre 10 et 11.99 inclus mention Passable
Si la note est comprise entre 12 et 13.99 inclus mention Assez Bien
Si la note est comprise entre 14 et 15.99 inclus mention Bien
la note est comprise entre 16 et 20 inclus mention Très Bien
Si la note est négative ou supérieure à 20, un message d'anomalie est affiché
- Réaliser l’algorithme et tester votre solution en VBA