Vous êtes sur la page 1sur 27

Algorithmique

Cours

CHAPITRE 1 : Introduction
1) La dmarche algorithmique
2) Les comptences attendues
3) Les logiciels
4) Bref historique
CHAPITRE 2 : Quest-ce quun algorithme ?
1) Dfinition
2) Squelette dun algorithme
3) Langage et rgles dcriture
4) Algorigramme
CHAPITRE 3 : Phases dun algorithme
1) Prparation du traitement
2) Traitement de donne(s)
3) Sortie de rsultat(s)
CHAPITRE 4 : Constantes et variables
1) Dfinitions
2) Conventions de nommage
CHAPITRE 5 : Oprateurs et oprandes
1) Dfinitions
2) Types doprateurs
3) Priorits des oprateurs
CHAPITRE 6 : Instructions de base
1) Affectation
2) Entre / Lecture
3) Sortie / Ecriture
CHAPITRE 7 : Structures de contrle
CHAPITRE 8 : Structures linaires
CHAPITRE 9 : Structures alternatives
1) Structure alternative complte
2) Structure alternative rduite
3) Structures alternatives imbriques
CHAPITRE 10 : Structures rptitives
1) Boucle itrative POUR DE A , FAIRE
2) Boucles conditionnelles
TANT QUE , FAIRE
REPETER JUSQU'A
CHAPITRE 11 : Structures de choix

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

CHAPITRE 1 : Introduction

La DEMARCHE ALGORITHMIQUE est une composante essentielle de lactivit mathmatique.

Lusage et le dveloppement des algorithmes font partie de notre quotidien ; ils sont notamment la
base du fonctionnement des automates, des calculatrices et des ordinateurs.
De nombreux algorithmes sont connus depuis lAntiquit, dont lalgorithme dEuclide, qui permet de
calculer le PGCD de deux nombres entiers non nuls.

Ce cours se donne pour objectif la matrise des COMPTENCES suivantes :

comprendre et examiner un algorithme prexistant, son fonctionnement ou son but ;


modifier un algorithme pour obtenir un rsultat prcis ;
analyser une situation : identifier les donnes dentre et de sortie, le traitement, les instructions... ;
crer une solution algorithmique un problme donn : comment crire un algorithme en langage
courant en respectant un code, identifier les boucles, les tests, les oprations dcriture, daffichage... ;
valider la solution algorithmique par des traces dexcution et des jeux dessais simples ;
adapter lalgorithme aux contraintes du langage de programmation : identifier si ncessaire la nature
des variables... ;
valider un programme simple.

Sont prsents dans ces pages quelques EXEMPLES DALGORITHMES dont lcriture touche tous les
domaines du programme :

fonctions : tude numrique, tude asymptotique


gomtrie : affichage, positionnement et dplacement dobjets gomtriques simples (points, segments,
cercles), colinarit, orthogonalit
statistique : tris, dtermination de certains indicateurs (moyenne, mdiane, quartiles)
probabilits : modlisation de certains phnomnes partir de frquences observes
numrique : traitement de nombres, comparaisons, exactitude dans les calculs

La mise en uvre dalgorithmes peut se faire laide de nombreux LOGICIELS :

des logiciels ddis : ALGOBOX, SCRATCH, EXECALGO, LINOTTE...


des logiciels de programmation : PYTHON...
des logiciels lis au calcul scientifique : SCILAB...
des logiciels de calcul formel : XCAS, MAXIMA, WIRIS...

Le choix du logiciel (et plus gnralement de loutil informatique) dpend souvent de la complexit de
lalgorithme et notamment du temps de calcul, de la nature, de la taille ou de la prcision des nombres utiliss,
de la lisibilit de lalgorithme ou de la nature de la sortie

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

En rsum, on peut considrer dans une PREMIERE APPROCHE quun algorithme dcrit un processus de
rsolution dun problme dfini, rdig dans un langage formalis et produisant un rsultat en un temps fini.

Le mot ALGORITHME tire son nom du mathmaticien persan Al-Khuwarizmi (n vers 780 - mort vers 850)
qui a crit en langue arabe le plus ancien trait dalgbre baptis Abrg de calcul par la compltion et la
simplification dans lequel il dcrivait des procds de calcul suivre tape par tape pour rsoudre des
problmes ramens des quations. Toutefois, les algorithmes existent depuis plus longtemps : les
Msopotamiens calculaient dj en 1 800 avant J.-C. des valeurs approches des racines carres laide
dalgorithmes.

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

CHAPITRE 2 : Quest-ce quun algorithme ?

1) DEFINITION
Un ALGORITHME est une suite finie dinstructions lmentaires (rgles), qui sappliquent dans un ordre
dtermin un nombre fini de donnes pour fournir un rsultat.

Exemple : Suivre une recette de cuisine, calculer une somme, tracer une figure dans le plan sont autant
dactivits pour lesquelles une srie dactions sont effectuer une ou plusieurs fois afin dobtenir un rsultat.
Tout algorithme est donc caractris par :
un ensemble dinstructions excuter
un ordre dexcution de ces diffrentes actions, dtermin par la logique denchanement et
conditionn par les structures mises en uvre
un dbut et une fin

Remarque : Dans la suite du cours, on entend par TRAITEMENT soit une instruction isole, soit une
succession dinstructions.

2) SQUELETTE DUN ALGORITHME


Trois phases indissociables structurent un algorithme :
1- La prparation du traitement
2- Le traitement de donne(s)
3- La sortie de rsultat(s)

Exemple 1 : Lors de la conception dun gteau, il faut envisager plusieurs phases, rigoureusement ordonnes.
Tout dabord, il convient dacheter les ingrdients (1re phase) qui entrent dans la composition de la recette.
Attention ! Un seul oubli pourrait en compromettre la russite ! Ensuite, il faut suivre tape par tape les actions
mener comme peser les ingrdients, battre les ufs en neige, faire fondre le beurre (2me phase). Attention !
Il suffit dinverser des tapes, de ne pas respecter les proportions et le gteau risquerait fort dtre rat !
Enfin, quoiquil advienne lors du suivi de la recette, on obtient un rsultat (3me phase). En principe, ce rsultat
doit ressembler au gteau attendu, tant visuellement que sur les plans gustatif, olfactif et pourquoi pas tactile !

Exemple 2 : De nos jours, il nest pas rare dutiliser un navigateur GPS pour obtenir un itinraire (but de
lalgorithme). On entre alors le point de dpart et le point darrive (donnes dentre 1re phase). Une srie
dinstructions (traitement des donnes 2me phase) fournit en sortie une ligne brise (rsultat 3me phase) qui
symbolise le chemin parcourir pour joindre ces deux points.

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

Mais comment crire un algorithme pour quil soit universellement comprhensible ? Un algorithme peut tre
soit crit sous forme littrale (langage algorithmique), soit reprsent graphiquement (algorigramme).

3) LANGAGE ET REGLES DECRITURE DUN ALGORITHME


Un algorithme peut tre crit en utilisant un langage de description dalgorithme (LDA). Ce langage utilise
un ensemble de mots cls et de structures permettant de dcrire de manire complte et claire lensemble des
oprations excuter sur des donnes pour obtenir des rsultats. Un tel langage prsente un rel avantage, celui
de pouvoir tre transcrit dans un langage de programmation structur et lisible. Il ne faut donc pas confondre
algorithme et programme.

4) ALGORIGRAMME
En algorithmique, on peut aussi utiliser un algorigramme, cest--dire reprsenter graphiquement lalgorithme
laide de symboles normaliss.
Exemples :

Symbole de traitement
(symbole gnral)

Symbole de test
(symbole de branchement)

Symbole auxiliaire
(symbole de dbut, fin ou interruption
dalgorithme)

Remarque : On parle souvent indiffremment dalgorigramme ou dorganigramme.

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

CHAPITRE 3 : Phases dun algorithme

1) LA PREPARATION DU TRAITEMENT
Cette phase consiste reprer les donnes, cest--dire les lments ncessaires, voire indispensables, la
rsolution. Elles peuvent tre de nature :

numrique (des nombres entiers ou rels)


textuelle (des caractres, cest--dire une lettre, un chiffre ou un symbole, ou des chanes de caractres,
cest--dire une suite de caractres forms de lettre(s), de chiffre(s) et/ou de symbole(s))
boolenne (de type logique, deux valeurs possibles vrai ou faux )
graphique (des points)

Autrement dit, aprs avoir prcis en en-tte le nom de lalgorithme afin den identifier le but, lalgorithme se
compose des dclarations de constantes, de variables et de structures, qui correspondent une liste exhaustive
des ressources utilises et manipules dans le corps de lalgorithme.

Remarque : Lentre des donnes (saisie de caractres ou de nombres sur le clavier, lecture de la position du
pointeur de la souris, lecture dun fichier contenant ces nombres ou caractres) sintgre dans cette phase de
prparation du traitement.

2) LE TRAITEMENT DE DONNEES
Cette phase, qui correspond au corps de lalgorithme, consiste spcifier toutes les tapes des instructions
donner pour une excution automatique.
Il existe plusieurs types dalgorithmes, dtermins selon le type dexcution des instructions :

si les instructions sexcutent en squence, on parle dalgorithme squentiel ;


si les oprations sexcutent sur plusieurs processeurs en parallle, on parle dalgorithme parallle ;
si les instructions sexcutent sur un rseau de processeurs, on parle dalgorithme rparti ou distribu.

Remarque : Ce cours ne sintresse quaux algorithmes squentiels et il faut par consquent entendre par
traitement une ou plusieurs instructions en squence.

3) LA SORTIE DE RESULTATS
Les rsultats obtenus, graphiques ou sonores, peuvent tre :

affichs sur lcran


imprims sur papier
conservs dans un fichier

conservs en mmoire jusqu la prochaine


excution
perdus

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

CHAPITRE 4 : Constantes et variables

Les constantes et les variables sont des lments fondamentaux, indispensables au bon droulement dun
algorithme, caractriss par un identificateur, une valeur et un type.

1) DEFINITIONS

Une VARIABLE est une donne (emplacement) stocke dans la mmoire de la calculatrice ou de
lordinateur. Elle est repre par un identificateur (nom de la variable constitu de lettres et/ou de
chiffres, sans espace) et contient une valeur dont le type (nature de la variable) peut tre un entier, un
rel, un boolen, un caractre, une chane de caractres Il ne faut pas confondre constante et
variable.

Une CONSTANTE, comme une variable, peut reprsenter un chiffre, un nombre, un caractre, une
chane de caractres, un boolen. Toutefois, contrairement une variable dont la valeur peut tre
modifie au cours de lexcution de lalgorithme, la valeur dune constante ne varie pas.

Remarques :

Ne pas confondre la variable et son identificateur. En effet, la variable possde une valeur (son contenu)
et une adresse (emplacement dans la mmoire o est stocke la valeur). Lidentificateur nest que le
nom de la variable, cest--dire un constituant de cette variable.
Le type dune variable dtermine lensemble des valeurs quelle peut prendre et les oprations
ralisables quelle peut subir.
Lutilisation dune variable doit tre prcde de sa dclaration. La syntaxe pour dclarer une variable
est la suivante :

Variables :
identificateur de la variable_1 : type de la variable_1
identificateur de la variable_2 : type de la variable_2

identificateur de la variable_N : type de la variable_N

Si la valeur de la variable peut changer au cours du droulement de lalgorithme, en revanche son type
est fig lors de dclaration.

2) CONVENTIONS DE NOMMAGE
Le nom dun algorithme, dune variable ou dune constante doit respecter les rgles suivantes :

commencer par une lettre ;


ne comporter ni caractre spcial (comme lespace) ni ponctuation ;
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

ne pas tre un mot du langage algorithmique (comme algorithme , dbut , fin , variable ,
non , ou , et , si , sinon , pour )

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

CHAPITRE 5 : OPERANDES ET OPERATEURS

1) DEFINITIONS

Un OPERATEUR est un outil qui permet dagir sur une variable ou deffectuer des calculs.
Un OPERANDE est une donne utilise par un oprateur.

Exemple : Dans

dsigne loprateur ;

et

sont les oprandes.

2) TYPES DOPERATEURS
Il existe plusieurs types doprateurs :

Les oprateurs arithmtiques qui permettent deffectuer des oprations arithmtiques entre oprandes
numriques :
o Oprateurs lmentaires : , , , , (division entire)
o Changement de signe :
o Elvation la puissance :
o Reste dune division entire :
(ou
)
Les oprateurs de comparaison ( , , , , et ) qui permettent de
comparer deux oprandes et produisent une valeur boolenne, en sappuyant sur des relations dordre :
o Ordre naturel pour les entiers et les rels
o Ordre lexicographique ASCII pour les chanes de caractre
Les oprateurs logiques qui combinent des oprandes boolennes pour former des expressions logiques
plus complexes :
o Oprateur unaire :
(ngation)
o Oprateurs binaires : (conjonction),
(disjonction),

Loprateur de concatnation qui permet de crer une chane de caractres partir de deux chanes de
caractre en les mettant bout bout.
Loprateur daffectation, reprsent par le symbole , qui confre une valeur une variable ou
une constante.
(affectation de la valeur

la variable (ou la constante) )

Remarque : Les oprateurs dpendent du type de la constante ou de la variable :

Oprateurs sur les entiers et les rels : addition, soustraction, multiplication, division, division entire,
puissance, comparaisons, modulo (reste dune division entire)
Oprateurs sur les boolens : comparaisons, ngation, conjonction, disjonction
Oprateurs sur les caractres : comparaisons
Oprateurs sur les chanes de caractres : comparaisons, concatnation

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

3) PRIORITE DES OPERATEURS


A chaque oprateur est associe une priorit. Lors de lvaluation dune expression, la priorit de chaque
oprateur permet de dfinir lordre dexcution des diffrentes oprations. Aussi, pour lever toute ambigut ou
pour modifier lordre dexcution, on peut utiliser des parenthses.

Ordre de priorit dcroissante des oprateurs arithmtiques et de concatnation :


o (lvation la puissance)
o (changement de signe)
o , et
o

o et
o (concatnation)
Ordre de priorit dcroissante des oprateurs logiques :
o

o
o

Remarques :

La question de lordre de priorit des oprateurs de comparaison ne se pose pas.


Les oprations entre parenthses sont prioritaires.

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

10

CHAPITRE 6 : Instructions de base

DEFINTIONS :

Linstruction dAFFECTATION permet dattribuer une valeur une variable. Cette instruction est
note identificateur prend valeur .
Comme il a t vu prcdemment, on peut aussi noter : identificateur valeur .

LENTREE ou la lecture de donnes correspond lopration qui permet de saisir des valeurs pour
quelles soient utilises par le programme. Cette instruction est note saisir identificateur ou lire
identificateur .

La SORTIE ou lcriture des donnes permet laffichage des valeurs des variables aprs traitement.
Cette instruction est note afficher identificateur .

Remarques :

Laffectation dune valeur une variable peut tre assimile au rangement dun objet dans un tiroir, sur
la faade duquel figure lidentificateur, et qui ne peut contenir quun objet la fois.
En sortie, on peut galement afficher un message suivi dune expression ; linstruction est alors note
afficher (message, expression) .

Exemple 1 (numrique) : Proposons un algorithme qui permet de calculer le prix toutes taxes comprises
dun article aprs lapplication dune TVA 19,6 % sur le prix hors taxes.

Algorithme Calcul_Prix_TTC (nom de lalgorithme)


Constantes
: rel (ici, seule la variable
est dclare ; son type est rel car le nombre 19,6 % nest pas
entier ; remarque : cette constante peut aussi tre intgre dans les variables)
Variables
,
: rels (dclaration des variables pour lesquelles il reste prfrable de donner un
identificateur explicite ; ici
dsigne le prix hors taxe et
le prix toutes taxes comprises)
Dbut
prend
cette affectation

; (on affecte la valeur


)

, soit

, la variable

; on peut galement noter

afficher ( Renseigner le prix hors taxes de larticle. ) ; (affichage de la phrase entre guillemets)
saisir (

) ; (lecture de la valeur de la variable


prend

loprateur

; (calcul du prix TTC avec loprateur

prioritaire devant

)
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

11

afficher ( Aprs application de la TVA, le prix de larticle devient ,


, toutes taxes
re
comprises. ) (sortie du rsultat qui proposera laffichage de la 1 locution entre guillemets, puis le prix hors
taxes qui avait t saisi par lutilisateur, puis la 2e locution entre guillemets, et enfin le prix toutes taxes
comprises qui a t calcul dans le corps de lalgorithme)
Fin

Avec le logiciel AlgoBox, on obtient lalgorithme suivant :

Affichages aprs lancement de lalgorithme avec AlgoBox :

Exemple 2 (fonction) : Ecrivons un algorithme


avec AlgoBox puis un programme avec la
calculatrice qui permettent de donner la forme
canonique dune fonction polynme de degr 2,
en considrant que, pour tout rel,
.

Avec le logiciel AlgoBox :

Rappel :
Si

est une fonction polynme de degr 2 dfinie par


, alors sa forme
canonique est :

avec

La commande
pow(x,n)
permet de calculer
xn.
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

12

Affichage aprs lancement de lalgorithme avec AlgoBox :

Avec une calculatrice Casio :

La lecture des variables se fait grce .


Laffectation est donne par la commande

Laffichage est rendu possible par linstruction
.

Avec une calculatrice Texas Instruments :

Linstruction
permet de demander
lutilisateur de saisir une valeur qui sera
affecte la variable.
Linstruction daffectation est donne par

Linstruction
permet laffichage.

Exemple 3 (gomtrie) : Proposons un algorithme qui permet de donner la distance


du plan, les coordonnes des points et tant renseignes par lutilisateur.

En langage algorithmique simple :

dans un repre

Algorithme avec le logiciel AlgoBox :

Algorithme Distance_entre_deux_points
Entre
Saisir les coordonnes
respectives des points et

Traitement
Affecter la variable

la valeur

Sortie
Afficher

Rappel : Si
et
points dun repre du plan, alors :

sont deux
.
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

13

Affichages aprs lancement de lalgorithme avec AlgoBox :

Remarque : La commande sqrt(x) permet de calculer

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

14

CHAPITRE 7 : Structures de contrle

Le traitement de donnes est parfois conditionn et se ralise de manire spcifique. On parle alors de
STRUCTURES DE CONTROLE. Ces structures algorithmiques peuvent tre organises suivant quatre
familles principales :

les structures linaires


les structures alternatives

les structures rptitives


les structures de choix

DEFINITIONS :

Une STRUCTURE LINEAIRE (ou STRUCTURE SEQUENTIELLE) se caractrise par une suite
de traitements excuter successivement, dans lordre nonc.

Une CONDITION est une expression logique boolenne, prenant la valeur vrai ou faux (cest-dire oui ou non ).

Une STRUCTURE ALTERNATIVE (ou STRUCTURE CONDITIONNELLE) noffre que deux


issues possibles la poursuite de lalgorithme, qui sexcluent mutuellement. Selon quune condition est
vraie ou fausse, on effectue un traitement ou un autre. On parle de traitements conditionnels. Une
structure alternative est donc une structure de test.

Une STRUCTURE REPETITIVE (ou STRUCTURE ITERATIVE) rpte lexcution dun


traitement, dans un ordre prcis, un nombre dtermin ou indtermin de fois. Une structure itrative
est aussi appele boucle.

Une STRUCTURE DE CHOIX permet, en fonction de plusieurs conditions de type boolen,


dexcuter des traitements diffrents selon les valeurs que peut prendre une mme variable.

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

15

CHAPITRE 8 : Structures linaires

On note trs simplement les structures linaires, comme une suite de traitements excuter dans lordre o ils
sont noncs :
Faire traitement 1 ;
Faire traitement 2 ;
;
Faire traitement N ;

Exemple (statistique) : Proposons un algorithme qui calcule la


moyenne de 3 notes, toutes au mme coefficient.
traitement 1
Affichage aprs lancement de
lalgorithme avec AlgoBox :

traitement 2

...

traitement N

Algorigramme

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

16

CHAPITRE 9 : Structures alternatives

La rsolution de certains problmes ncessite parfois la mise en place dun test pour effectuer une tche :

si le test est positif, on effectue un certain traitement ;


sinon, cest--dire si le test est ngatif, on effectue un autre traitement.

En algorithmique, on traduit cette structure alternative laide dINSTRUCTIONS CONDITIONNELLES.

1) STRUCTURE ALTERNATIVE COMPLETE

Si condition
Alors traitement 1 ; (instructions effectuer si la condition est vrifie)
Sinon
traitement 2 ; (instructions effectuer si la condition nest pas vrifie)
FinSi

condition

traitement 1

traitement 2

Algorigramme
Exemple 1 (numrique) : Proposons un algorithme qui compare deux nombres.
Dans cet algorithme gnr par AlgoBox, lutilisateur est invit saisir
deux nombres (variables a et b).
Si la valeur de la variable a est plus petite que la valeur de la variable
b, alors la variable m est affecte de la valeur de la variable b.
Sinon, cest--dire si la valeur de la variable a est plus grande que la
valeur de la variable b, alors m prend la valeur de la variable a.
Le rsultat retourn est la valeur de la variable m, qui correspond au
plus grand des deux nombres choisis initialement par lutilisateur.

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

17

Exemple 2 (gomtrie) : Ecrivons un algorithme qui permet de savoir si deux vecteurs sont colinaires ou
non.
Rappel :
Deux vecteurs
et

et

de coordonnes respectives

sont colinaires si et seulement si :

Affichages aprs lancement de lalgorithme avec AlgoBox :

Remarque : Il existe des conditions simples et des conditions complexes :

une condition simple peut correspondre un test dgalit (par exemple :


) ou dingalit (par
exemple :
);
une condition complexe est une combinaison logique de conditions simples (par exemple :
et
).

2) STRUCTURE ALTERNATIVE REDUITE

La structure propose ci-dessus est qualifie de complte mais, selon le cas, il se peut que, si la condition
nest pas vrifie, il ny ait pas effectuer de traitement 2. On crira ainsi la structure alternative rduite .

Si condition
Alors traitement (instructions effectuer si la condition est vrifie)
FinSi (la condition sachve sans quon ait eu effectuer de traitement 2 lorsque la condition na pas t
vrifie ; lalgorithme passe alors linstruction suivante)

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

18

condition

traitement

Algorigramme

Exemple 3 (fonction) : Ecrivons un algorithme qui calcule la racine dun nombre, si elle existe.
Rappel : La fonction racine carre est dfinie sur

.
Affichages aprs lancement de lalgorithme avec AlgoBox :

Lorsque le nombre saisi est suprieur ou gal 0 :

Lorsque le nombre saisi est strictement ngatif :

3) STRUCTURES ALTERNATIVES IMBRIQUEES

Plusieurs structures alternatives peuvent tre imbriques, si bien que dans un traitement peut (peuvent) figurer
une ou plusieurs structure(s) alternative(s).
Pour une meilleure lisibilit de lalgorithme, on utilise lINDENTATION, qui consiste crire les instructions
sur des lignes diffrentes en procdant des dcalages.

Exercice 4 (gomtrie) : Ecrivons un algorithme qui prcise si un triangle ABC est rectangle (et dans ce
cas en quel point) ou sil ne lest pas.
Rappel : Daprs la rciproque du thorme de Pythagore, si
rectangle en C.

, alors le triangle ABC est

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

19

Affichages aprs lancement de lalgorithme avec


AlgoBox :

Remarques :

Dans cet algorithme, on choisit de


dclarer les variables ABcarre, ACcarre
et BCcarre pour rendre plus lisible
lcriture des tests mais elles ne savrent
pas obligatoires.
Les tests sont ici imbriqus : on vrifie
dabord si le triangle ABC est rectangle
en B puis, sil ne lest pas, on vrifie sil
est rectangle en A et enfin, sil nest pas
rectangle en C, on affiche que le triangle
nest pas rectangle. Si le triangle est, un
moment donn, rectangle en un point
(cas du test vrifi), alors on affiche en
quel point ABC est rectangle.
On peut galement tracer le triangle
grce aux instructions :

Remarque : Il savre parfois ncessaire dexcuter plusieurs fois de suite le mme traitement, cest--dire la
mme srie dinstructions. Dans ce cas, il convient de faire appel aux structures rptitives.

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

20

CHAPITRE 10 : Les structures rptitives

Toutes les structures itratives rptent lexcution de traitement(s).


Deux cas sont cependant envisager, selon que :

le nombre de rptitions est connu lavance : cest le cas des boucles itratives
le nombre de rptitions nest pas connu ou est variable : cest le cas des boucles conditionnelles

1) La structure POUR DE A , FAIRE

Cette structure est une BOUCLE ITERATIVE ; elle consiste rpter un certain traitement un nombre de fois
fix lavance.
En algorithmique, on traduit cette structure itrative laide des instructions :
Pour de 1 jusqu

(on rpte un nombre connu de fois le mme traitement ; ici, de 1

, donc

fois)

Faire traitement 1 (instructions effectuer)


FinPour

traitement

Algorigramme
Remarques :

La variable est un compteur, dont la valeur augmente automatiquement de 1 chaque tour. Cette
variable permet en dfinitive de contrler le nombre entier de tours. Cette variable est en dautres termes
un variable de contrle ditration, caractrise par sa valeur initiale, sa valeur finale et son pas de
variation.
La sortie de la boucle seffectue lorsque le nombre souhait ditrations est atteint, cest--dire lorsque
prend la valeur N.
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

21

Exemple 1 (fonction) : Proposons un algorithme qui calcule le carr de tous les entiers compris entre 1 et
50.
Affichage aprs lancement de lalgorithme
avec AlgoBox :

Remarque : A chaque tour de boucle, on affiche la locution Le


nombre suivie de la valeur du nombre nb, suivie de la locution a
pour cube , suivie de la valeur du cube du nombre, savoir la valeur
de la variable cube.

Exemple 2 (numrique) : Ecrivons un algorithme permettant de calculer la somme des entiers de 1 N, le


nombre N tant renseign par lutilisateur.
Affichage aprs lancement de lalgorithme avec AlgoBox avec N=30 :

Remarque : A chaque tour de boucle, la somme est affecte de la


somme et du nombre.

Exemple 3 (probabilits) : Proposons un algorithme qui simule le lancer dun d cubique quilibr un
certain nombre de fois et affiche le nombre dapparitions de chaque face.
Affichage aprs lancement de lalgorithme avec AlgoBox :

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

22

Remarques :
Lutilisateur est invit renseigner le nombre
de fois quil souhaite lancer le d 6 faces.
La valeur de cette variable nb_lancers est
lue.
floor(x) est la commande qui permet de
donner la partie entire de x.
random() est la commande qui permet de
choisir un nombre entre 0 et 1.
Cet algorithme propose un nouveau type de
variable, le type liste.

2) La structure TANT QUE , FAIRE

Parfois, pour raliser une tche, on doit effectuer plusieurs fois les mmes instructions, sans que le nombre de
fois soit dtermin lavance. On utilise alors une BOUCLE CONDITIONNELLE. Dans cette structure, le
mme traitement est effectu tant quune condition reste valide ; la boucle sarrte quand celle-ci nest plus
remplie. Cette structure rptitive est ainsi formule :
Tant que condition (on rpte un nombre inconnu de fois le mme traitement, autant de fois que la condition
est vrifie)
Faire traitement (instructions effectuer)
FinTant

condition
traitement
Algorigramme
Remarques :

Le nombre de rptitions dpendra de la condition.


Si la condition nest pas vrifie au dbut, alors le traitement 1 ne sera pas excut du tout.
Si la condition est vrifie au dbut et si la condition nest pas susceptible dtre modifie lors du
traitement 1, alors le traitement 1 sera indfiniment excut et lutilisateur sera contraint darrter le
programme. Dans ce cas, il sagit dune erreur majeure car un programme ne doit pas boucler
indfiniment mais au contraire sarrter automatiquement une fois que la condition cesse dtre vrifie.
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

23

Exemple 1 (fonction) : Proposons un algorithme avec AlgoBox qui permet dafficher tous les nombres
entiers naturels dont le cube est infrieur 5000.

Remarques :
On commence par initialiser nb.
Au dbut du premier passage dans
la boucle, nb vaut donc 0. A la fin du
premier passage et au dbut du second, nb
vaut nb+1, cest--dire 1. Ds que
nb3>5000, la boucle sarrte. Il ne faut pas
oublier linstruction nb prend la valeur
nb+1 , faute de quoi la boucle est infinie.
Affichage aprs lancement de lalgorithme avec AlgoBox :

Exemple 2 (numrique) : Ecrivons un algorithme avec AlgoBox permettant de calculer le quotient de


deux entiers positifs dans une division euclidienne.

Remarques :

Cet algorithme nexclut pas la saisie de


valeurs ngatives, qui invalideraient le rsultat
final. Un message informant lutilisateur serait
prvoir pour quil ne saisisse que des valeurs
entires positives.

deux

entiers naturels
et
, avec diviseur non nul, la division
euclidienne associe un
et un
,
tous deux entiers naturels vrifiant :

Exemple 3 (numrique) : Ecrivons un algorithme avec AlgoBox permettant de dterminer le PGCD de


deux nombres entiers.

Rappel : En arithmtique, le plus grand commun diviseur (PGCD) de deux nombres entiers naturels est le plus
grand entier naturel qui divise simultanment ces deux entiers.
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

24


correspond la syntaxe
permettant de vrifier que la valeur de
la variable est diffrente de

La commande

renvoie le
reste de la division
de par

3) La structure REPETER JUSQUA

Une variante de structure rptitive avec BOUCLE CONDITIONNELLE consiste rpter un traitement
jusqu ce quune certaine condition soit vrifie. On la traduit par linstruction :
Rpte (on rpte un nombre inconnu de fois le mme traitement, autant de fois que la condition est vrifie)
traitement (instructions effectuer)
Jusqu condition

Remarque : Dans ce type dinstruction, le test est effectu la fin de la boucle, si bien que le traitement est
excut au moins une fois, que la condition soit ou non vrifie au dbut.

traitement

condition

Algorigramme

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

25

CHAPITRE 11 : Les structures de choix

La structure de choix permet, en fonction de plusieurs conditions de type boolen, deffectuer des traitements
spcifiques.

condition 1

traitement 1
condition 2

traitement 2
condition N
traitement N
traitement N+1

Algorigramme
Exemple (numrique) : Proposons un algorithme qui choisit de manire alatoire un nombre entier
compris entre 1 et 6 et prcise si ce nombre est pair ou impair, premier ou pas.
Rappel :
Un nombre entier est premier si, et
seulement si, il a pour uniques diviseurs 1
et lui-mme. Les nombres 2, 3, 5 et 7 sont
les seuls nombres premiers infrieurs
10.
Remarque : 2 est le seul nombre premier
pair.

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

26

Affichage aprs lancement de lalgorithme avec AlgoBox

Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)

27