Title: Section IV Structures conditionnelles
1Section IVStructures conditionnelles
- Algorithmes et résolution de problèmes
- 18279 FGE
2Contenu
- Introduction
- Structure SI-ALORS-SINON-FINSI
- Dans lorganigramme
- Le pseudo-code
- Variante SI-ALORS-FINSI
- Conditions complexes
- Exemples exercice
- Dont un exercice à remettre à lenseignant
- Devoir 2
3Introduction
- Les algorithmes présentés auparavant sont
élémentaires - Séquence simple dopérations
- Souvent, les opérations à accomplir peuvent
varier dans un algorithme - Lalgorithme doit décider des opérations à
accomplir selon les données fournies ou diverses
situations - Lordinateur est apte à appliquer la prise de
décision
4Exemple 1
- Rapport hebdomadaire de ventes (suite)
- Suite de lexemple vu la semaine dernière
(Section III) - Commission de 6 sur les ventes à prix régulier
- Commission de 3 sur les ventes à prix réduit
- Montant de base de 200 garantie
- On ajoute un bonus à la paie du vendeur
- Le vendeur reçoit en plus 1 du total de ses
ventes si les ventes atteignent ou dépassent
5000 - Modifier lalgorithme en conséquence
5Exemple 1 (suite)
- Il faut ajouter à la solution précédente (sans
bonus) - Une séquence dopérations calculant le bonus
- Une opération conditionnelle déterminant quand
ajouter le bonus au total - Il faut donc un symbole pour représenter la
condition dans lorganigramme
6Structure SI-ALORS-SINON-FINSI
- Pour représenter une séquence conditionnelle
dopérations dans lorganigramme - On utilise le losange cest lesymbole
conditionnel - Pour représenter la convergence des flux
dexécution - On utilise le cercle cest le symbole de
convergence
SI
SINON
ALORS
FINSI
7Structure SI-ALORS-SINON-FINSI
- Notes sur la structure conditionnelle
- La condition doit être clairementstipulée dans
le symboleconditionnel - Les flux sortant sontidentifiés selon
lerésultat de la condition - Les deux flux sortantdoivent éventuellementconve
rger
8Exemple 1 (suite)
- Pour ajouter le bonus conditionnel de 1 à
lalgorithme, nous définissons deux nouvelles
variables intermédiaires - TotVentes Total des ventes
- Bonus
- Bonus de 1 si les ventes
- atteignent ou excèdent 5000
9Exemple 1 (suite)
- Algorithme révisé
- Insérer le calcul conditionnel du bonus
- (TotVentes et Bonus)
- Réviser le calcul de la commission totale
- (TotalComm)
10Pseudo-code
- Lorganigramme représente graphiquement
lalgorithme - Cest visuel (un dessin vaut mille mots!), mais
ça exige plus de travail de mise en page et plus
despace sur papier - Le pseudo-code représente textuellement
lalgorithme - Moins visuel, mais plus facile à mettre sur
papier et requiert moins despace
11Pseudo-code (suite)
- Lalgorithme est décrit sous forme de mots et
phrases - Semblable aux langages de programmation (Visual
Basic, Pascal, C, ) - Cependant, on utilise une syntaxe moins rigide
- Le pseudo-code est généralement préféré à
lorganigramme - Plus rapide à écrire et plus facile à traduire en
un langage de programmation
12Exemple 1 (suite)
- Pseudo-code de lalgorithme
- Les mots-clés opérationnels sont écris en
majuscules - LIRE, ÉCRIRE,SI, ALORS, SINON, FINSI
- Lindentation dans la structureSI rehausse la
lisibilité
LIRE VentesReg, VentesSpec RegComm VentesReg
0.06 SpecComm VentesSpec 0.03 TotVentes
VentesReg VentesSpec SI TotVentes ? 5000 ALORS
Bonus TotVentes 0.01 SINON Bonus
0 FINSI TotalComm RegComm SpecComm Bonus
200 ÉCRIRE TotalComm
13Exemple 1 (suite)
- La structure conditionnelle a une forme
standardisée - SI condition ALORS
- séquence dopérations
- SINON
- séquence dopérations
- FINSI
- Par souci de lisibilité,cette forme doit
toujours être respectée
LIRE VentesReg, VentesSpec RegComm VentesReg
0.06 SpecComm VentesSpec 0.03 TotVentes
VentesReg VentesSpec SI TotVentes ? 5000 ALORS
Bonus TotVentes 0.01 SINON Bonus
0 FINSI TotalComm RegComm SpecComm Bonus
200 ÉCRIRE TotalComm
14Structure SI-ALORS-FINSI
- Une variante de la structure conditionnelle est
employée lorsquil ny a aucune séquence
dopérations à exécuter si la condition est
fausse - SI condition ALORS
- séquence dopérations
- FINSI
15Exemple 2
- Rapport de temps supplémentaire
- Le superviseur doit produire un rapport listant
tous les employés ayant travaillé en temps
supplémentaire durant la semaine - Pour chaque employé ayant travaillé plus de 40
heures, le rapport doit afficher son nom, son
numéro demployé et le nombre dheures
excédentaires - Si lemployé na pas excédé 40 heures de travail,
le rapport ne doit pas contenir son nom
16Exemple 2 (suite)
- Nous devons écrire lalgorithme produisant une
ligne du rapport (i.e. pour un employé) - Données à lire
- Nom de lemployé, son numéro et le nombre
dheures travaillées - Résultats à produire
- Si lemployé a travailler plus de 40 heures,
afficher son nom, son numéro demployé et les
heures supplémentaires travaillées
17Exemple 2 (suite)
- Définition des variables
- Nom nom de lemployé
- Numero numéro de lemployé
- TotHeures nombre total dheures
travaillées durant la semaine - Variables intermédiaires
- HeuresSup Nombre dheures supplémentaires
travaillées
18Exemple 2 (suite)
- Pseudo-code et organigramme
LIRE Nom, Numero, TotHeures SI TotHeures gt 40
ALORS HeuresSup TotHeures - 40 ÉCRIRE
Nom, Numero, HeuresSup FINSI
19Avantage du pseudo-code
- Le pseudo-code est facilement traduisible en un
langage de programmation
Pseudo-code
Pascal
LIRE Nom, Numero, TotHeures SI TotHeures gt 40
ALORS HeuresSup TotHeures - 40 ÉCRIRE
Nom, Numero, HeuresSup FINSI
PROGRAM Exemple VAR Nom STRING Numero,
TotHeures INTEGER BEGIN READLN(Nom, Numero,
TotHeures) IF TotHeures gt 40 THEN BEGIN
HeuresSup TotHeures 40
WRITELN(Nom, Numero, HeuresSup) END END.
20Exemple 3
- Rapport de paie demployé
- Données à lire sur lemployé
- Son nom, numéro demployé, nombre dheures
travaillées et son taux horaire - Résultat à afficher
- Le nom de lemployé, son numéro et le total de sa
paie. Cette dernière est calculée en fonction du
taux horaire pour les premières 40 heures
travaillées, et à une fois et demi son taux
horaire pour les heures supplémentaires
21Exemple 3 (suite)
- Étapes de développement de lalgorithme
- Assurez-vous de bien comprendre le problème à
résoudre (posez des questions) - Définissez les variables dentrées et les
variables de sorties - Faites les calculs sur papier pour un exemple de
données vous saisirez mieux le processus de
solution - Commencez à produire le pseudo-code ou
lorganigramme, à partir du début - En cours de développement, définissez les
variables intermédiaires au besoin - Finalement validez lalgorithme, et corrigez-le
au besoin
22Exemple 3 (suite)
- Variables
- Nom nom de lemployé
- Numero numéro demployé
- Heures heures totales travaillées
- Taux taux horaire
- Variables intermédiaires
- PaieReg paie au taux régulier
- PaieSup paie au taux bonifié
- PaieTot paie totale
23Exemple 3 (suite)
LIRE Nom, Numero, Heures, Taux SI Heures gt 40
ALORS PaieReg 40 Taux PaieSup
(Heures 40) (Taux 1.5) PaieTot
PaieReg PaieSup SINON PaieTot Heures
Taux FINSI ÉCRIRE Nom, Numero, PaieTot
24Exemple 3 (suite)
25Validation
- Pour valider un algorithme (à laide des
diagramme de variables), il faut numéroter les
opérations du pseudo-code et/ou de lorganigramme - Pseudo-codenuméroté
1. LIRE Nom, Numero, Heures, Taux 2. SI Heures gt
40 ALORS 3. PaieReg 40 Taux 4.
PaieSup (Heures 40) (Taux 1.5) 5.
PaieTot PaieReg PaieSup 6. SINON 7.
PaieTot Heures Taux 8. FINSI 9. ÉCRIRE Nom,
Numero, PaieTot
26Validation (suite)
- Organigrammenuméroté
- Les numéros sont utilisés pour identifier les
opérations dans les diagrammes de variables
1.
Variable Valeur Variable Valeur
Nom PaieReg
Numero PaieSup
Heures PaieTot
Taux
27Conditions complexes
- Conditions simples
- a lt b, a ? b, a gt b, a ? b, a b, a ? b
- Conditions complexes
- On peut combiner des conditions simples avec et
et ou - (a ? 5) et (a ? 100)
- (a 10) ou (a gt 20)
- La négation (non) peut inverser une condition
- non((a ? 5) et (a ? 100))
28Conditions complexes (suite)
- Exemple afficher le mot ALARME si la
température quitte la zone de confort
LIRE Temperature SI (Temperature lt 18) ou
(Temperature gt 24) ALORS ÉCRIRE "ALARME" FINSI
29Exercice 1
- À remettre à lenseignant avant la fin du cours
- Faire le travail à la main, sur papier
- Trouver le plus petit nombre
- Afficher le plus petit nombre parmi trois nombres
fournis en entrée - Vous devez remettre à lenseignant
- Le pseudo-code ou lorganigramme de votre
algorithme - La description des variables
30Devoir 2
- Énoncé distribué sur le site Web
- Algorithme calculant la note finale dun(e)
étudiant(e) à partir de trois notes dexamen - Vous devez fournir le pseudo-code (fichier Word)
et lorganigramme (fichier Visio) de votre
algorithme