Você está na página 1de 25

Cours ALGORITHMIQUE Elies JEBRI

1
Chapitre I. INTRODUCTION .................................................................................................... 1
I.1. Intrt de lalgorithmique ................................................................................................ 2
I.2. Dfinitions ........................................................................................................................ 2
Quest ce que lAlgorithmique ? ........................................................................................ 2
I.3. Les tapes de rsolution dun problme ........................................................................... 2
I.4. Structure dun algorithme ................................................................................................ 3
Rappel des notions de : ....................................................................................................... 3
Exemple 1 ........................................................................................................................... 3
Chapitre II. LES ACTIONS ALGORITHMIQUES SIMPLES ................................................. 5
II.1. 0. Concepts de base ........................................................................................................ 5
II.2. 1. Laffichage : ECRIRE ................................................................................................ 5
Exemples ............................................................................................................................ 5
II.3. 2. La saisie des donnes : LIRE ...................................................................................... 5
II.4. 3. Les expressions arithmtiques .................................................................................... 6
II.5. 4. Laffectation ............................................................................................................... 6
Chapitre III. Les structures Conditionnelles ............................................................................ 11
III.1. Introduction ................................................................................................................. 11
III.2. Notion de PREDICAT ................................................................................................ 11
III.3. Evaluation d'une expression logique ........................................................................... 11
Notons que ........................................................................................................................ 11
Notation et Ordre de priorit des oprateurs logiques ...................................................... 11
Tableaux d'valuations ..................................................................................................... 11
III.4. La structure conditionnelle SI ..................................................................................... 12
Exemple 1 ......................................................................................................................... 13
Exemples .......................................................................................................................... 14
III.5. La structure conditionnelle SELON ............................................................................ 14
Exemple ............................................................................................................................ 14
Chapitre IV. LES STRUCTURES REPETITIVES ................................................................. 17
IV.1. Introduction ................................................................................................................. 17
IV.2. La boucle POUR ......................................................................................................... 17
Syntaxe ............................................................................................................................. 17
IV.3. La boucle Rpter Jusqu' ...................................................................................... 19
IV.4. La boucle TANT QUE ........................................................................................... 20
Chapitre V. Traitement des Tableaux .................................................................................... 24
V.2. 1. Les vecteurs .............................................................................................................. 24
V.3. Rappel de Dclaration dun vecteur ............................................................................. 25
V.4. Chargement dun Vecteur ............................................................................................ 25
V.5. Solution de lexemple avec la notion de tableau ................. Erreur ! Signet non dfini.
V.6. 2. Les matrices .............................................................................................................. 27
Chapitre VI. TD ALGORITHMIQUE 1 .................................................................................. 28
Exercice 12 ....................................................................................................................... 28
Chapitre VII. LES ALGORITHMES DE TRI ......................................................................... 29
1. Tri par slection ............................................................................................................ 29
Principe ............................................................................................................................. 29
Exemple ............................................................................................................................ 29
2. Algorithme de tri par slection et permutation ............................................................. 30
VII.2. 3. Tri par la mthode des bulles ................................................................................. 31
Cours ALGORITHMIQUE Elies JEBRI
2
C CH HA AP PI IT TR RE E I I. . I IN NT TR RO OD DU UC CT TI IO ON N
Objectif : Connatre le but du cours dalgorithmique
lments de contenu :
Quest ce quune application informatique ?
Comment arriver dun problme rel un programme pouvant tre excut par ordinateur
Liens entre ALGORITHMIQUE et STRUCTURES DE DONNEES
I.1.Intrt de lalgorithmique
Informatiser une application, facturation de la consommation deau, par exemple, cest faire
raliser par ordinateur, une tche qui tait ralise par lHomme.
Pour faire excuter une tche par ordinateur, il faut tout dabord, dtailler suffisamment les
tapes de rsolution du problme, pour quelle soit excutable par lhomme. Ensuite,
transfrer la rsolution en une suite dtapes si lmentaire et simple excuter, pouvant tre
code en un programme dans un langage comprhensible par ordinateur.
Toute suite dtapes si lmentaire et simple excuter sappelle un ALGORITHME.
Un programme cest un algorithme cod dans un langage comprhensible par ordinateur
laide dun compilateur (traducteur).
I.2.Dfinitions
Lalgorithme est le rsultat dune dmarche logique de rsolution dun problme pour la
mise en uvre pratique sur ordinateur et afin dobtenir des rsultats concrets il faut passer
par lintermdiaire dun langage de propagation.
Un algorithme dcrit une succession doprations qui, si elles sont fidlement excutes,
produiront le rsultat dsir.
Un algorithme est une suite dactions que devra effectuer un automate pour arriver en un
temps fini, un rsultat dtermin partir dune situation donne. La suite doprations sera
compose dactions lmentaires appeles instructions.
1-a) Quest ce que lAlgorithmique ?
Cest la logique dcrire des algorithmes. Pour pouvoir crire des algorithmes, il faut
connatre la rsolution manuelle du problme, connatre les capacits de lordinateur en terme
dactions lmentaires quil peut assurer et la logique dexcution des instructions.
I.3.Les tapes de rsolution dun problme
1. Comprendre lnonc du problme
2. Dcomposer le problme en sous-problmes plus simple rsoudre
3. Associer chaque sous problme, une spcification :
Les donnes ncessaires
Les donnes rsultantes
La dmarche suivre pour arriver au rsultat en partant dun ensemble de donnes.
4. Elaboration d'un algorithme.
Cours ALGORITHMIQUE Elies JEBRI
3
Illustration du fonctionnement d'un ordinateur
On peut dire que la partie EXECUTANT est le problme de lalgorithmique, et la partie
MEMOIRE (stockage de donne) concerne la matire " Structures de donnes ".
I.4.Structure dun algorithme
ALGORITHME nom_de_lalgorithme
CONST Dfinition des constantes
TYPE Dfinition de types
VAR Dclaration de variables
DEBUT
Suite dinstructions
FIN
1-b) Rappel des notions de :
Constante,
Type,
Variable.
1-c)
1-d) Exemple 1
ALGORITHME afficher
DEBUT
Ecrire("La valeur de 3*5 est ", 3*5)
FIN
Cet algorithme permet d'afficher sur l'cran la phrase suivante :
La valeur de 3*5 est 15
Exemple 2
On veut crire lalgorithme qui permet de saisir 3 notes dun tudiant dans trois matires,
tant donns les coefficients respectifs 2, 3 et 1.
Rsolution
A partir de lnonc du problme, nous recherchons la solution par une dmarche en 2 phases.
Dispositifs dentre :
- clavier
- souris,
-
MEMOIRE EXECUTANT
.....
Excution
Rsultat
Suite de cases
mmoire
Donnes
en entre
Donnes
en sortie
Ecran
ou
Imprimante
Cours ALGORITHMIQUE Elies JEBRI
4
On doit comprendre comment le rsoudre manuellement,
Dfinir ce quon a besoin comme donnes, quelles est la dmarche suivre (formules de
calcul) pour arriver aux rsultats.
Pour notre problme, nous connaissons les coefficients et la formule de calcul ( N
i
*C
i
/ C
i
),
nous avons besoins des notes de chaque matire dans lordre, et enfin nous pouvons
communiquer le rsultat lutilisateur.
ALGORITHME MOYENNE
CONST CI?
C?
CI
VAR
N1, N2, N3 : REEL
MOY : REEL
DEBUT
{Affichage message : Invitation de l'utilisateur introduire des donnes}
ECRIRE(" Donner trois valeurs relles ")
{Saisie des notes}
LIRE(N1, N2, N3)
{Calcul de la moyenne}
MOY (N1*C1+N2*C2+N3*C3) / (C1+C2+C3)
{Affichage du rsultat sur lcran}
ECRIRE(" La moyenne est = ", MOY)
FIN
Remarque : Le texte entre les accolades est purement explicatif, il sert rendre lalgorithme
plus lisible.
Cours ALGORITHMIQUE Elies JEBRI
5
C CH HA AP PI IT TR RE E I II I. . L LE ES S A AC CT TI IO ON NS S A AL LG GO OR RI IT TH HM MI IQ QU UE ES S S SI IM MP PL LE ES S
Objectif : Comprendre les actions algorithmiques simples et connatre leurs syntaxes
lments de contenu :
Concepts de base
La saisie de donnes
L'affichage
L'affectation
L'valuation d'une expression arithmtique
II.1.0. Concepts de base
Dans tout ce qui suit, pour prsenter les syntaxes, on suit les rgles suivantes :
Ce qui est entre les crochets est optionnel.
La suite des points de suspensions "" veut dire que ce qui prcde peut se rpter
plusieurs fois.
Le symbole " | " veut dire : " ou bien ".
Les mots en majuscule sont des mots rservs.
Ce qui est entre accolades est un commentaire, pour la lisibilit des algorithmes.
II.2.1. Laffichage : ECRIRE
Cette action permet de communiquer un rsultat ou un message sur cran ou sur imprimante
pour l'utilisateur.
Syntaxe
ECRIRE(paramtre1 [[,paramtre2]])
Paramtre = variable | expression | constante
Constante = nombre | message
1-e) Exemples
ECRIRE(" La valeur de 3*2 est gale ", 3*2)

message expression
ECRIRE(" La moyenne est = ", MOY)

Variable
II.3.2. La saisie des donnes : LIRE
L'ordre LIRE permet l'ordinateur dacqurir des donnes partir de lutilisateur, dans des
cases mmoire bien dfinies (qui sont les variables dclares).
Rappel
Les variables sont des cases mmoire, supposes contenir un type de donnes, nommes par
le nom de variable.
Cours ALGORITHMIQUE Elies JEBRI
6
Syntaxe
LIRE(variable1 [[, variable2] ])
Remarques :
1. La saisie se fait uniquement dans des variables. Ce sont les cases (cellules) qui
pourront accueillir les donnes correspondantes.
2. La donne introduire doit tre de mme type que la variable rceptrice.
II.4.3. Les expressions arithmtiques
Parmi les oprateurs, on distingue les fonctions et les oprateurs.
Les fonctions
La fonction DIV permet de donner le rsultat de la division entire dun nombre par un
autre. 7 DIV 2 3
La fonction MOD (se lit Modulo), permet de donner le reste de la division entire dun
entier par un autre. 7 MOD 2 1
La fonction ** ou ^ permet dlever un nombre la puissance dun autre. 2**3 8
Les oprateurs
Sont le "+", "-", "/", "*" et le "-" un aire.
Ordre de priorit
Les oprateurs suivants sont ordonns du plus prioritaire au moins prioritaire dans l'valuation
d'une expression arithmtique.
1- Les parenthses
2- "- " un aire
3- Les fonctions
4- Les oprateurs de multiplication " * " et de division " / "
5- Les oprateurs daddition " + " et de soustraction " - "
Remarque
Si lordre entre les oprateurs dans une expression est le mme, on value lexpression de
gauche droite.
Exemples
3**2+4 = 9+4=13
3**(2+4)=3**6 car les parenthses sont plus prioritaires
17 MOD 10 DIV 3=(17MOD10)DIV3=7DIV3=2
II.5.4. Laffectation
Cest laction de charger une valeur dans une variable. Cette valeur peut elle-mme tre une
variable, le rsultat dune expression arithmtique ou logique ou une constante.
Syntaxe
Variable1 variable2 | expression | constante
A B se lit " A reoit B "
Cours ALGORITHMIQUE Elies JEBRI
7
Le rsultat de cette action est de mettre le contenu de la variable B dans la variable A. Si B
tait une expression, elle aurait t value, ensuite sa valeur est transfre dans la variable
rceptrice ( notre gauche).
Remarque
Laffectation ne vide pas la variable mettrice ( notre droite) de sa valeur. Par contre, le
contenu de la variable rceptrice est cras et remplac par la nouvelle valeur.
Illustration de laffectation
Supposons quon ait deux rcipients A et B o A contient un liquide color en jaune et B
contient un liquide rouge.
Peut-on changer les contenus de A et de B (c.--d. mettre le liquide rouge dans A et le
liquide jaune dans B).
Rsultat
Cette opration nest possible que si on utilise un troisime rcipient quon appelle rcipient
auxiliaire.
Etat 0 Aux A = Jaune
B = Rouge
Aux = Vide
Aux B
A = Jaune
Etat 1 B = vide
Aux = Rouge
B A
A = Vide
Etat 2 B = Jaune
Aux = Rouge
A Aux
A = Rouge
Etat Final B = Jaune
Aux = Vide
Avec des variables relles, cette opration dchange de contenu se fait entre cases mmoires
qui reprsentent les conteneurs (rcipients).
Problme : Echanger les valeurs de 2 variables numriques.
Principe : pour viter de perdre lune des 2 valeurs initiales (A et B), on utilise une 3
ime
variable pour prserver la valeur initiale de la premire variable modifie.
A
B
Aux
Aux
Cours ALGORITHMIQUE Elies JEBRI
8
Remarques Importantes
Toute variable utilise dans un algorithme doit tre dclare au dbut de
lalgorithme, une fois et une seule.
Laffectation de valeur une variable peut tre effectue autant de fois que lon
veut au cours dun algorithme. La valeur de la variable sera alors modifie
chaque affectation.
Lorsquune variable apparat en partie droite dune action daffectation, cest que
lon suppose quelle contient obligatoirement une valeur. Cette valeur devra lui
avoir t affecte auparavant (par initialisation ou saisie), sinon lon dira que la
valeur est indfinie, et le rsultat de laffectation ne sera pas dfini.
La variable rceptrice dune affectation doit tre de mme type que de la valeur
affecter ou de type compatible. Le type est dit compatible sil est inclus dans le
type de la variable rceptrice. Exemple : REEL ENTIER est possible mais pas
linverse.
Exemple
Ecrire lalgorithme qui permet de calculer le discriminant (delta) dune quation du second
degr.
Cours ALGORITHMIQUE Elies JEBRI
9
TD ALGoRITHMIQUF I
Les actions simples
Exercice 1
Soit lalgorithme suivant :
ALGORITHME EQUATION2D
VAR a,b,c : REEL
delta : REEL
DEBUT
Ecrire("Donnez la valeur du premier paramtre")
Lire(a)
Ecrire("Donnez la valeur du second paramtre")
Lire(b)
Ecrire("Donnez la valeur du troisime paramtre")
Lire(c)
delta b
2
b * b - 4a * c
Ecrire(" le discriminant est = ")
Fin
1 - Dcrire cet algorithme en dtail (ligne par ligne), en donnant les ventuelles erreurs.
2 - Quelles sont les valeurs de delta dans les cas suivants :
a=2 b=-3 c=1
a=1 b=2 c=2
Exercice 2
Ecrire l'algorithme permettant de saisir l'abscisse d'un point A et de calculer son ordonn
f(x)= 2 x
3
- 3x
2
+ 4
Evaluer le rsultat en expliquant les ordres de priorit pour x=-2.
Exercice 3
Ecrire l'algorithme qui permet de permuter les valeurs de A et B sans utiliser de variable
auxiliaire.
Exercice 4
Faire l'algorithme qui lit les coordonnes de deux vecteurs u et v, et de calculer leur norme et
leur produit scalaire.
Exercice 5
Ecrire lalgorithme qui permet de saisir les paramtres dune quation du second degr et de
calculer son discriminant .
Exercice 6
Ecrire lalgorithme permettant de calculer et dafficher le salaire net dun employ. Sachant
que :
Le salaire net = Salaire brut Valeur de limpt Valeur de CNSS
Salaire brut = (Salaire de base + Prime de technicit + Prime de transport + Prime des
enfants) * Taux de travail
Taux de travail = Nombre de jours travaills / 26
Cours ALGORITHMIQUE Elies JEBRI
10
Prime des enfants = Prime dun enfant * Nombre denfants
Valeur de lImpt = Taux de lImpt * Salaire Brut
Valeur de CNSS = Taux de CNSS * Salaire Brut
Taux CNSS = 26,5%
Taux Impt = 2%
Indication :
Dcrire lenvironnement de travail : toutes les variables en entre, en sortie et de calcul.
Cours ALGORITHMIQUE Elies JEBRI
11
C CH HA AP PI IT TR RE E I II II I. . L LE ES S S ST TR RU UC CT TU UR RE ES S C CO ON ND DI IT TI IO ON NN NE EL LL LE ES S
III.1. Introduction
Souvent les problmes ncessitent l'tude de plusieurs situations qui ne peuvent pas tre
traites par les squences d'actions simples. Puisqu'on a plusieurs situations, et qu'avant
l'excution, on ne sait pas quel cas de figure on aura excuter, dans lalgorithme on doit
prvoir tous les cas possibles.
Ce sont les structures conditionnelles qui le permettent, en se basant sur ce quon appelle
prdicat ou condition.
III.2. Notion de PREDICAT
Un prdicat est un nonc ou proposition qui peut tre vrai ou faux selon ce quon est entrain
de parler.
En mathmatiques, cest une expression contenant une ou plusieurs variables et qui est
susceptible de devenir une proposition vraie ou fausse selon les valeurs attribues ces
variables.
Exemple :
(10 < 15) est un prdicat vrai
(10 < 3) est un prdicat faux
III.3. Evaluation d'une expression logique
Une condition est une expression de type logique. Ils lui correspondent deux valeurs possibles
VRAI et FAUX qu'on note par V ou F.
Considrons deux variables logiques A et B. Voyons quels sont les oprateurs logiques et
leurs ordres de priorits.
1-f) Notons que
(A = faux) non A
(A = vrai) A
Les oprateurs logiques sont :
La ngation : "non"
L'intersection : "et"
L'union : "ou"
1-g) Notation et Ordre de priorit des oprateurs logiques
1. non :
2. et :
3. ou :
1-h)
1-i) Tableaux d'valuations
La ngation d'une condition
A Non A
Vrai Faux
Faux Vrai
Cours ALGORITHMIQUE Elies JEBRI
12
L'intersection de deux conditions
A et
B
Vrai Faux
Vrai Vrai Faux
Faux Faux Faux
L'union de deux conditions
A ou
B
Vrai Faux
Vrai Vrai Vrai
Faux Vrai Faux
Thorme de DE MORGAN
(A B) A B
(A B) A B
III.4. La structure conditionnelle SI
Syntaxe
SI <Condition> ALORS
<suite daction(s)-1>
[SINON
<suite dactions(s)-2>]
FINSI
Format Organigramme
La <condition> est un prdicat, qui peut tre vrai ou faux, selon les valeurs des paramtres
la constituant.
Si la condition est vrifie (sa valeur est vrai), cest la <suite dactions-1> qui sera
excute. Ensuite, le systme passe lexcution juste aprs le FINSI.
Dans le cas contraire, lorsque la condition nest pas vrifie (valeur de la condition est
faux), cest la <suite dactions-2> qui sexcute, en cas o celle ci existe (facultative). Si
elle nexiste pas, le systme passe directement linstruction qui suit le FINSI.
Les suites d'actions 1 et 2, peuvent tre des actions simples ou mme des structures
conditionnelles.
condition
TRAITEMENT-2
vrai faux
TRAITEMENT-1
FINSI
Cours ALGORITHMIQUE Elies JEBRI
13
1-j) Exemple 1
Lire un nombre rel, et dire sil est positif ou strictement ngatif.
ALGORITHME POS-NEG
VAR A : rel
DEBUT
ECRIRE("Donner un nombre ")
LIRE(A)
SI (A < 0) ALORS
ECRIRE(A, " est ngatif ")
SINON
ECRIRE(A, " est positif ")
FINSI
FIN
Autrement :
ALGORITHME POS-NEG-1
VAR A : rel
B : logique
DEBUT
ECRIRE("Donner un nombre ")
LIRE(A)
B (A < 0)
SI (B) ALORS
ECRIRE(A, " est ngatif ")
SINON
ECRIRE(A, " est positif ")
FINSI
FIN
Dans cet exemple, on a dtermin uniquement les cas de positivit ou de ngativit, et on n'a
pas dtermin le cas o A est nulle.
ALGORITHME POS-NEG-NUL
VAR A : rel
DEBUT
ECRIRE("Donner un nombre ")
LIRE(A)
SI (A < 0) ALORS
ECRIRE(A, " est ngatif ")
SINON {A >= 0}
SI (A > 0)ALORS
ECRIRE(A, " est positif ")
SINON {A = 0}
ECRIRE (A, "est nulle")
FINSI
FINSI
FIN
Cours ALGORITHMIQUE Elies JEBRI
14
1-k) Exemples
1) Ecrire l'algorithme qui permet de dterminer si un entier lu est pair ou impair.
2) Ecrire l'algorithme qui permet de saisir deux nombres A et B et de dterminer si la valeur
de A est suprieure, infrieure ou gale B.
III.5. La structure conditionnelle SELON
Cette structure conditionnelle est appele aussi choix multiple ou slective car elle
slectionne entre plusieurs choix la fois, et non entre deux choix alternatifs (le cas de la
structure SI).
Syntaxe
SELON (slecteur) FAIRE
Cas <liste de valeurs-1> : <suite d'action (s)-1>
[Cas <liste de valeur-2> : <suite d'action (s)-2>
. ]
[SINON : <suite d'action (s)-n> ]
FINSELON
Le slecteur peut tre une variable de type scalaire ou une expression arithmtique ou
logique.
La structure SELON value le "slecteur", passe comparer celui ci respectivement avec les
valeurs dans les listes. En cas d'galit avec une valeur, les actions correspondantes, qui sont
devant cette valeur seront excutes.
Devant "Cas", il peut y avoir une seule valeur, une suite de valeurs spares par des virgules
et/ou un intervalle de valeurs.
Aprs avoir traiter la suite d'actions correspondante, l'excution se poursuit aprs le
FINSELON.
Remarque
1. Le slecteur doit avoir le mme type que les valeurs devant les cas.
2. Le type de ces valeurs ne doit tre, ni rel ni chane de caractres.
1-l) Exemple
Ecrire l'algorithme qui permet de saisir un numro de couleur de l'arc-en-ciel et d'afficher la
couleur correspondante : 1: rouge, 2 : orang, 3 : jaune, 4 : vert, 5 : bleu, 6 : indigo et 7 :
violet.
Cours ALGORITHMIQUE Elies JEBRI
15
TD ALGoRITHMIQUF I
Les Structures Conditionnelles
Exercice 1
Evaluer les expressions logiques suivantes, avec (a, b, c, d) = (2, 3,5, 10) et (X, Y) = (V, F).
1) (a < b) (a < c) 2) ((a < b) (a < c)) 3) (a < b) (a < c)
4) (a < c) (c = d/2) 5) (d / a = c) = Y 6) (d / c = b) = Y
7) (d / c = b) = X 8) (a < b) (d < c) 9) (a < b) (d < c) = X
Exercice 2
Rcrire l'exercice 6 de la srie N1 en supposant que le taux de l'impt n'est pas fixe mais il
varie selon la valeur du salaire de base. En effet :
Taux de l'impt = 0 si le salaire de base < 150
Taux de l'impt = 2% si le salaire de base [150,250[
Taux de l'impt = 5% si le salaire de base [250,500[
Taux de l'impt = 12% si le salaire de base >= 500.
En plus, la prime des enfants est dfinit comme suit :
7DT pour le premier enfant,
5DT pour le deuxime enfant,
4DT pour le troisime enfant.
Pas de prime pour le reste.
Exercice 3
Ecrire l'algorithme qui permet de saisir un nombre puis dterminer sil appartient un
intervalle donn, sachant que les extrmits de lintervalle sont fixes par lutilisateur.
Exercice 4
Ecrire l'algorithme qui permet de calculer le montant des heures supplmentaires dun
employ, sachant le prix unitaire dune heure selon le barme suivant :
Les 39 premires heures sans supplment,
De la 40
ime
la 44
ime
heure sont majores de 50%,
De la 45
ime
la 49
ime
heure sont majores de 75%,
De la 50
ime
heure ou plus, sont majores de 100%.
Exercice 5
Ecrire l'algorithme qui permet de saisir la moyenne gnrale dun tudiant et de dterminer
son rsultat et sa mention. (les conditions de rachat sont appliques partir de 9,75.
Exercice 6
Ecrire l'algorithme qui permet de saisir les trois paramtres d'une quation du second degr, et
de discuter les solutions selon les valeurs de a, b et c, lorsqu'elles sont nulles ou pas.
Exercice 7
Ecrire l'algorithme qui permet de saisir le jour, le mois et l'anne d'une date (Mois : numro
du mois), et de dterminer si elle est correcte ou non, et o est l'erreur.
Exercice 8
Cours ALGORITHMIQUE Elies JEBRI
16
Ecrire l'algorithme qui permet de saisir deux nombres, et un oprateur et d'valuer
l'expression arithmtique correspondante.
Exercice 9
Ecrire l'algorithme CONTRAT qui permet d'aider une compagnie d'assurance prendre une
dcision concernant les demandes d'affiliation en se basant sur les critres suivants :
CRITERE
DECISION
AGE Bonne sant Accident
Contrat A <=30 OUI NON
Contrat B >30 OUI OUI
Contrat refus - NON OUI
Expertise demande - OUI OUI
Exercice 10
Ecrire un algorithme qui permet de saisir un numro de mois et un jour (le contrle n'est pas
demand) et d'afficher la priode correspondante selon le tableau suivant :
Priode DU AU
Vacances d't 1/7 15/9
Premier trimestre 16/9 19/12
Vacances d'hiver 20/12 3/1
Deuxime trimestre 4/1 19/3
Vacances de printemps 20/3 3 / 4
Troisime trimestre 4/4 30/6
Exercice 11
Ecrire l'algorithme permettant de lire la valeur de la variable DEVINETTE et dafficher parmi
les messages suivants celui qui correspond la valeur trouve :
ROUGE si la couleur vaut R ou r
VERT si la couleur vaut V ou v
BLEU si la couleur vaut B ou b
NOIR pour tout autre caractre.
Exercice 12
Ecrire l'algorithme permettant de lire la valeur de la temprature de leau et dafficher son
tat :
GLACE Si la temprature infrieure 0,
EAU Si la temprature est strictement suprieure 0 et infrieure 100,
VAPEUR Si la temprature suprieure 100.
Exercice 13
Ecrire l'algorithme qui lit un entier positif infrieur 999 (compos de trois chiffres au
maximum) et d'afficher le nombre de centaines, de dizaines et d'units.
Cours ALGORITHMIQUE Elies JEBRI
17
C CH HA AP PI IT TR RE E I IV V. . L LE ES S S ST TR RU UC CT TU UR RE ES S R RE EP PE ET TI IT TI IV VE ES S
IV.1. Introduction
Dans les problmes quotidiens, on ne traite pas uniquement des squences d'actions, sous ou
sans conditions, mais il peut tre frquent d'tre oblig d'excuter un traitement (squence
d'actions), plusieurs fois. En effet, pour saisir les N notes d'un tudiant et calculer sa
moyenne, on est amen saisir N variables, puis faire la somme et ensuite diviser la somme
par N. Cette solution ncessite la rservation de l'espace par la dclaration des variables, et
une srie de squences d'criture/lecture. Ce problme est rsolu l'aide des structures
rptitives. Celles ci permettent de donner un ordre de rptition d'une action ou d'une
squence d'actions une ou plusieurs fois.
IV.2. La boucle POUR
Cette structure exprime la rptition d'un traitement un nombre de fois.
1-m)
1-n) Syntaxe
POUR Vc DE Vi A Vf [PAS Vp] FAIRE
<Traitement>
FINFAIRE
O Vc est une variable entire, qui compte le nombre de rptition du <Traitement>,
Vi la valeur initiale laquelle Vc est initialis,
Vf la valeur finale laquelle se termine Vc,
Vp la valeur du pas, c'est la valeur qu'on rajoute Vc chaque fin de traitement.
Remarque
1. La boucle POUR est utilise lorsqu'on connat le nombre de rptition du <Traitement>
d'avance.
2. La valeur du pas peut tre positive ou ngative et par consquent, il faut; au dpart de la
boucle; que Vi <= Vf ou Vi >= Vf selon la positivit ou la ngativit de cette valeur.
3. La valeur du pas est gale 1 par dfaut.
Les tapes d'excution de la boucle POUR
1) Initialisation de Vc par la valeur de Vi (comme si on avait Vc Vi)
2) Test si Vi dpasse ( ) Vf (du ct suprieur ou infrieur, selon la positivit ou la
ngativit du pas).
Si oui, alors la boucle s'arrte et l'excution se poursuit aprs le FINFAIRE
Sinon,
Excution du <Traitement>,
Incrmentation ou dcrmentation de Vc par la valeur du pas,
Retour l'tape 2.
Application
Ecrire l'algorithme qui permet de saisir les moyennes des N tudiants de la classe
Informatique et de calculer la moyenne gnrale de la classe.
Cours ALGORITHMIQUE Elies JEBRI
18
Rsolution
Sans les boucles, on est oblig de dclarer N variables, et d'crire N actions LIRE.
LIRE(note)
S S + MOY
LIRE(MOY)
S S + MOY
..
LIRE(MOY)
S S + MOY
La boucle POUR donne l'ordre la machine d'itrer les deux actions N fois.
Donc le compteur varie de 1 jusqu' N avec un pas de 1.
ALGORITHME MOYENNE
VAR i, N : entier
MOY, MC : rel
DEBUT
ECRIRE("Donner le nombre d'tudiants")
LIRE(N)
SI (N > 0) ALORS
S 0 {Initialisation de S}
POUR i DE 1 A N FAIRE {Le pas gale 1 par dfaut}
ECRIRE("Donner la moyenne de l'tudiant n", i)
LIRE(MOY)
S S + MOY {on rajoute la moyenne du i
ime
tudiant la somme}
FIN FAIRE
MC S / N
ECRIRE("La moyenne de la classe est : ", MC)
SINON
ECRIRE("Erreur dans le nombre d'tudiants")
FINSI
FIN
Remarque Juste Avant le FIN FAIRE, le changement de la valeur de i se fait
automatiquement.
Application 1
Ecrire l'algorithme qui permet d'afficher tous les nombres pairs qui existent entre 1 et 10.
1
ire
solution
POUR i de 2 10 pas 2
Faire
ECRIRE(i)
FINFAIRE
2
ime
solution
POUR i de 2 10 Faire
SI (i mod 2 = 0) ALORS
ECRIRE(i)
FINSI
FINFAIRE
3
ime
solution
POUR i de 1 5 Faire
ECRIRE(2*i)
FINFAIRE
Application 2
Ecrire l'algorithme qui permet d'afficher tous les nombres impairs entre 50 et 100 dans l'ordre
dcroissant.
N
fois
LIRE(MOY)
S S+ MOY
Cours ALGORITHMIQUE Elies JEBRI
19
POUR i de 99 50 PAS (-2) FAIRE
ECRIRE(i)
FIN FAIRE
La valeur finale peut tre 50 ou 51 car le test de sortie est i < Vf (49 < 50 ou 51)
IV.3. La boucle Rpter Jusqu'
Syntaxe
Rpter
<Traitement>
Jusqu' (condition d'arrt)
Cet ordre d'itration permet de rpter le <Traitement> une ou plusieurs fois et de s'arrter sur
une condition. En effet, lorsque la condition est vrifie, la boucle s'arrte, si non elle r-
excute le <Traitement>.
Remarques
1. Dans cette boucle, le traitement est excut au moins une fois avant l'valuation de la
condition d'arrt.
2. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition.
Les tapes d'excution de la boucle Rpter
1) Excution du <Traitement>
2) Test de la valeur de la <condition d'arrt>
Si elle est vrifie Alors la boucle s'arrte
Sinon Retour l'tape 1.
Application
Ecrire un algorithme qui saisit un nombre pair et qui dtermine combien de fois il est divisible
par 2. Exemple 8 est divisible 3 fois par 2 (2*2*2).
ALGORITHME PAIR-NBDIV2
VAR N, N2 : entier
DEBUT
{Saisie d'un entier qui doit tre pair}
Rpter
ECRIRE("Donner un entier pair")
LIRE(N)
Jusqu' (N MOD 2 = 0) {condition pour que N soit pair}
{Dtermination du nombre de division par 2}
N2 0
NB N
Rpter
NB NB div 2
N2 N2 +1
Jusqu' (NB MOD 2 <> 0) {On s'arrte lorsque NB n'est plus divisible par 2}
ECRIRE(N, "est divisible par 2", N2,"fois")
FIN
Cours ALGORITHMIQUE Elies JEBRI
20
IV.4. La boucle TANT QUE
Syntaxe
TANT QUE (condition d'excution)
FAIRE
<Traitement>
FIN FAIRE
Cet ordre d'itration permet de rpter le <Traitement> zro ou plusieurs fois et de s'arrter
lorsque la condition d'excution n'est plus vrifie. En effet, lorsque la condition d'excution
est vrifie, le <Traitement> est excut, si non elle s'arrte.
Les tapes d'excution de la boucle Rpter
1) Test de la valeur de la <condition d'excution>
2) Si elle est vrifie Alors
Excution du <Traitement>
Retour l'tape 1.
Sinon Arrt de la boucle.
Remarques
1. Dans cette boucle, le traitement peut ne pas tre excut aucune fois, c'est lorsque la
condition d'excution est faux ds le dpart.
2. Les paramtres de la condition doivent tre initialiss par lecture ou par affectation avant
la boucle.
3. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition.
Application
Ecrire un algorithme qui saisit un nombre pair et qui dtermine combien de fois il est divisible
par 2. Exemple 8 est divisible 3 fois par 2 (2*2*2).
ALGORITHME PAIR-NBDIV2
VAR N, N2 : entier
DEBUT
{Saisie d'un entier qui doit tre pair}
Rpter
ECRIRE("Donner un entier pair")
LIRE(N)
Jusqu' (N MOD 2 = 0) {condition pour que N soit pair}
{Dtermination du nombre de division par 2}
N2 0
NB N
TANT QUE (NB MOD 2 = 0)
FAIRE
NB NB div 2
N2 N2 +1
FIN FAIRE {On s'arrte lorsque NB n'est plus divisible par 2}
ECRIRE(N, "est divisible par 2", N2,"fois")
FIN
Cours ALGORITHMIQUE Elies JEBRI
21
La condition d'arrt avec la boucle Rpter est l'inverse de la condition d'excution de la
boucle TANTQUE.
Remarque
Le Traitement d'une boucle peut contenir lui aussi une autre boucle. On l'appelle dans ce cas
des boucles imbriques.
Cours ALGORITHMIQUE Elies JEBRI
24
C CH HA AP PI IT TR RE E V V. . T TR RA AI IT TE EM ME EN NT T D DE ES S T TA AB BL LE EA AU UX X
Rappel
Pourquoi les tableaux ?
1) Calculer la moyenne de 30 lves
2) Effectuer leur classement
Rponse
pour i de 1 30
faire
Ecrire (" Donner la moyenne de l'tudiant N",i)
Lire (moyenne)
Fin faire
Conclusion : On ne peut pas effectuer le classement
Pourquoi ? Parce qu'on ne garde pas les moyennes prcdentes et la variable moyenne
contient uniquement la dernire valeur.
Utilisation des tableaux
Intrt Gain de temps, rtrcissement du volume de l'algorithme et possibilit de rutilisation
de toutes les valeurs ultrieurement dans l'algorithme.
Il est plus convenable, alors, de dfinir un espace mmoire quon appelle MOY qui sera
divis en 30 parties quitables, indices de 1 30.
MOY
Contenu 15 12 5 10 4 50 .
Indice 1 2 3 4 5 6 7 8 9 10 11 12 13
On dfinit un tableau de 30 cases une seule dimension quon appelle VECTEUR.
ALGORITHME MOYENNE
CONST Bi=1
Bs=30
VAR T : Tableau [bi..bs] de rel
i : entier
V.1.1. Les vecteurs
Un vecteur est une partie de mmoire contenant n zones variables rfrences par le mme
nom de variable pour accder un lment particulier de ce vecteur.
On indice le nom de variable. Lindice peut tre une constante, une variable ou une expression
arithmtique.
MOY[i]
indice dun lment du vecteur
variable qui indique le nom du vecteur
MOY[i] : reprsente llment du vecteur MOY occupant le rang " i ".
Cours ALGORITHMIQUE Elies JEBRI
25
Lindice peut tre :
Une constante MOY[5]
Une variable MOY[i]
Une expression MOY[i*2]
ATTENTION
Avant dutiliser un tableau, il faut dclarer sa taille pour que le systme rserve la place en
mmoire, ncessaire pour stocker tous les lments de ce tableau.
Les lments dun mme tableau doivent tre de mme type.
V.2.Rappel de Dclaration dun vecteur
Dans la partie CONST, on peut dfinir la taille du tableau. Ensuite, on peut dclarer le nombre
dlments saisir dans le tableau.
Remarque : Le nombre dlments saisir ne doit pas dpasser la taille du tableau pour ne
pas dborder sa capacit.
On appelle dimension dun vecteur le nombre dlments qui constituent ce vecteur.
V.3.Chargement dun Vecteur
Le chargement dun vecteur consiste saisir les donnes des lments du vecteur. (remplir
des cases successives du tableau). On doit utiliser une boucle qui permet de saisir chaque
entre dans la boucle la i
ime
case.
ALGORITHME Vecteur
CONST N = 30
VAR
MOY : Tableau[1..N] de rels
Dbut
{ chargement du tableau }
Pour i de 1 N
Faire
Ecrire (" donner la moyenne de ltudiant N " , i )
Lire ( MOY [i])
Fin Faire
{ fin chargement }
{Calcul de la somme des moyennes}
SMOY 0
Pour i de 1 N
Faire
SMOY SMOY+MOY[i]
Fin Faire
SMOY SMOY / 30
Ecrire (" la moyenne du groupe est ", SMOY )
{ calcul de la diffrence entre la moyenne de groupe et celle de ltudiant }
Pour i de 1 N
Faire
Cours ALGORITHMIQUE Elies JEBRI
26
Ecrire (" la diffrence de la moyenne du groupe et celle de ltudiant ",i , " est= ",
SMOY-MOY[i])
Fin Faire
Fin
On peut crire les deux premires boucle en une seule. Simplifier alors cet algorithme.
Remarque
La taille dun tableau est fixe et ne peut tre donc change dans un programme : il en rsulte
deux dfauts :
Si on limite trop la taille dun tableau on risque le dpassement de capacit.
La place mmoire rserve est insuffisante pour recevoir toutes les donnes.
Application
1) Charger un vecteur de 10 lments par les 10 premiers entiers naturels positifs.
2) Charger un vecteur de 10 lments par les 10 premiers multiples de 7.
1-o) Recherche dans un vecteur
Recherche squentielle
On peut chercher le nombre d'apparition d'un lment dans un vecteur, sa ou bien ses
positions. Pour cela, on doit parcourir tout le vecteur lment par lment et le comparer avec
la valeur de l'lment chercher.
Applications
1. Chercher la position de la premire occurrence d'un lment e dans un vecteur V
contenant N lments. (On suppose que le vecteur est dfinit)
2. Chercher le nombre d'apparition d'un lment e dans un vecteur V contenant N lments,
ainsi que les positions des occurrences de cet lment.
Rponse 1
i I
Trouv vrai
Tant que ((i < N) et (Trouv vrai))
Faire
Si V]i e Alors
Trouv Faux
Sinon
i i +I
Fin Si
Fin Faire
Si (Trouv vrai) Alors
Ecrire(e, "se trouve la position" , i)
Sinon
Ecrire(e, "ne se trouve pas dans V")
Fin Si
Recherche dichotomique
Ce type de recherche s'effectue dans un tableau ordonn.
Principe
1. On divise le tableau en deux parties sensiblement gales,
2. On compare la valeur chercher avec l'lment du milieu,
Cours ALGORITHMIQUE Elies JEBRI
27
3. Si elles ne sont pas gales, on s'intresse uniquement la partie contenant les lments
voulus et on dlaisse l'autre partie.
4. On recommence ces 3 tapes jusqu' avoir un seul lment comparer.
Application
On suppose qu'on dispose d'un vecteur V de N lments. On veut chercher la valeur Val.
ALGORITHME DICHOTHOMIE
...
Inf I
Sup N
Trouv vrai
Tant que ((Inf < Sup) et (Trouv vrai))
Faire
Mil (Inf+Sup)DIV ?
Si (V]Mil Val) Alors
Trouv faux
Sinon
Si (V]Mil < Val) Alors
Inf Mil + I
Sinon
Sup Mil -I
Fin Si
Fin Si
Fin Faire

Si (Trouv faux) Alors
Ecrire(Val, "existe la position" , Mil)
Sinon
Ecrire(Val, "n'existe pas dans V)
Fin Si
V.4.2. Les matrices
Les matrices sont les tableaux deux dimensions.
4 COLONNES
1 2 3 4
1
2 5 3 6
2
4 -5 -1 3
3
7 -6 -3 0
4
5 -2 2 2
5
8 4 10 -9
L'lment d'indice [i,j] est
celui du croisement de la
ligne i avec la colonne j
M[3,2] est -6

Você também pode gostar