FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 11
En fonction d’une condition on agit En fonction d’une condition on agit
différemment … différemment …
Il y a 2 formes possibles pour un test Il y a 2 formes possibles pour un test::
Tests / branchements conditionnels Tests / branchements conditionnels
Si
Si booléen booléen Alors Alors
Instructions Instructions Finsi
Finsi
Si
Si booléen booléen AlorsAlors Instructions 1 Instructions 1 Sinon
Sinon
Instructions 2 Instructions 2 Finsi
Finsi
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 22
Booléen est une
Booléen est une expressionexpression dont la valeur dont la valeur est:
est:
VRAI ou FAUX.
VRAI ou FAUX.
Cela peut être:
Cela peut être:
une variable de type booléen une variable de type booléen une condition
une condition
Tests / branchements conditionnels Tests / branchements conditionnels
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 33
Une condition est une expression Une condition est une expression composée de trois éléments:
composée de trois éléments:
une valeur une valeur
un opérateur de comparaison un opérateur de comparaison une autre valeur
une autre valeur
Tests Tests
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 44
Tests imbriqués Tests imbriqués
Si
Si booléen1 booléen1 AlorsAlors instructions instructions Si
Si booléen2booléen2 Alors
Alors
instructions instructions Sinon
Sinon
instructions instructions Finsi
Finsi Finsi Finsi
Tests Tests
Les tests Les tests imbriqués sont imbriqués sont des outils de des outils de simplification et simplification et d'optimisation d'optimisation des algorithmes des algorithmes
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 55
Tests Tests
Sinon et Si Sinon et Si
peuvent être peuvent être fusionnés en fusionnés en un
un SinonSiSinonSi..
C'est un seul C'est un seul bloc de test, bloc de test, terminé par terminé par un seul FinSi un seul FinSi
SinonSi SinonSi
Si
Si booléen1 booléen1 AlorsAlors instructions instructions SinonSi
SinonSi booléen2 booléen2 alorsalors instructions
instructions sinon
sinon
instructions instructions Finsi
Finsi
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 66
Exercice 15 Exercice 15
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si le produit est négatif, positif ou nul. On ne doit pas calculer le produit !
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 77
Exercice 16 Exercice 16
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur.
Ensuite, il l’informe de sa catégorie:
"Poussin" de 6 à 7 ans
"Pupille" de 8 à 9 ans
"Minime" de 10 à 11 ans
"Cadet" après 12 ans
Peut-on concevoir plusieurs algorithmes équivalents menant à ce résultat ?
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 88
Exercice 17 Exercice 17
Ecrire un algorithme qui lira au clavier l’heure et les minutes, et affichera l’heure qu’il sera une minute plus tard.
Si l'utilisateur tape 21 puis 32, l'algorithme doit répondre :
"Dans une minute, il sera 21 heure(s) 33".
On suppose que l'utilisateur entre une heure valide.
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 99
Exercice 18 Exercice 18
Un magasin de photocopie facture 0,50Dh les dix premières pages, 0,40Dh les vingt suivantes et 0,20Dh au-delà.
Ecrivez un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées et qui affiche le montant à payer.
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1010
Répéter des instructions tant qu’une Répéter des instructions tant qu’une condition est vérifiée
condition est vérifiée
une structure de boucle se présente ainsi:
une structure de boucle se présente ainsi:
TantQue booléen
…
Instructions
…
FinTantQue Etapes:
1.
1. Si Si booléenbooléen est VRAI, on exécute les instructions est VRAI, on exécute les instructions jusqu'à
jusqu'à FinTantQueFinTantQue..
2.
2. On retourne ensuite sur la ligne On retourne ensuite sur la ligne TantQueTantQue, on évalue , on évalue booléen
booléen, et ainsi de suite., et ainsi de suite.
3.
3. Si Si booléenbooléen est est FAUXFAUX on passe directement à la ligne on passe directement à la ligne après
après FinTantQueFinTantQue
Boucles / structures itératives Boucles / structures itératives
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1111
Erreur classique:
Erreur classique:
booléen
booléen n'est jamais n'est jamais VRAIVRAI. Le . Le
programme ne rentre alors jamais dans programme ne rentre alors jamais dans la boucle…
la boucle…
booléen
booléen ne devient jamais ne devient jamais FAUXFAUX. . L'ordinateur tourne alors dans la L'ordinateur tourne alors dans la boucle et n'en sort plus, C'est la boucle et n'en sort plus, C'est la
"boucle infinie"
"boucle infinie"
Boucles / structures itératives Boucles / structures itératives
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1212
Répéter des instructions un nombre de fois…
Répéter des instructions un nombre de fois…
une autre structure de boucle:
une autre structure de boucle:
Pour Compteur Compteur ←← Initial à à FinalFinal Pas Pas ValeurDuPasValeurDuPas
…
…
Instructions Instructions
…
…
Compteur Compteur suivantsuivant
TantQue : on ne connaît pas d'avance le nombre TantQue : on ne connaît pas d'avance le nombre de fois
de fois
Pour : le programmeur connaît d'avance le nombre Pour : le programmeur connaît d'avance le nombre de fois
de fois
Boucles / structures itératives
Boucles / structures itératives
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1313
Boucles imbriquées mais
Boucles imbriquées mais pas croiséespas croisées Variables Truc, Trac en Entier Variables Truc, Trac en Entier Début
Début
Pour Truc ← 1 à 15 Pour Truc ← 1 à 15
Ecrire "Il est passé par ici"
Ecrire "Il est passé par ici"
Pour Trac ← 1 à 6 Pour Trac ← 1 à 6
Ecrire "Il repassera par là"
Ecrire "Il repassera par là"
Trac Suivant Trac Suivant Truc Suivant Truc Suivant Fin
Fin
Boucles / structures itératives Boucles / structures itératives
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1414
à éviter ! à éviter !
Examinons l'algorithme suivant : Examinons l'algorithme suivant :
Variable T en Entier Variable T en Entier Début
Début
Pour T ← 1 à 15 Pour T ← 1 à 15
T ← T * 2 T ← T * 2
Ecrire "Passage numéro : ", T Ecrire "Passage numéro : ", T T Suivant
T Suivant Fin
Fin
Boucles Boucles
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1515
Exercice 19 Exercice 19
Ecrire un algorithme qui demande un nombre compris entre 10 et 20,
jusqu’à ce que la réponse convienne.
En cas de réponse supérieure à 20, on fera apparaître un message :
«Plus petit !», et inversement, «Plus grand !» si le nombre est inférieur à 10.
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1616
Exercice 20 Exercice 20
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants. Par exemple, si l'utilisateur entre le
nombre 17, le programme affichera
les nombres de 18 à 27.
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1717
Exercice 21 Exercice 21
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de ce
nombre, présentée comme suit (l'utilisateur entre le nombre 7):
Table de 7 : 7 x 1 = 7 7 x 2 = 14
…
7 x 10 = 70
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1818
Exercice 22 Exercice 22
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 1919
Exercice 23 Exercice 23
Ecrire un algorithme qui demande successivement 20 nombres à
l’utilisateur, et qui lui dise ensuite quel était le plus grand parmi ces 20
nombres et sa position
FSR
FSR -- M. HIMMI 2012M. HIMMI 2012 2020