Académique Documents
Professionnel Documents
Culture Documents
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
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.
Sont prsents dans ces pages quelques EXEMPLES DALGORITHMES dont lcriture touche tous les
domaines du programme :
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)
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.
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).
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)
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
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 :
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 :
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 :
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
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
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 :
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)
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
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
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)
o et
o (concatnation)
Ordre de priorit dcroissante des oprateurs logiques :
o
o
o
Remarques :
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
10
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.
, soit
, la variable
afficher ( Renseigner le prix hors taxes de larticle. ) ; (affichage de la phrase entre guillemets)
saisir (
loprateur
prioritaire devant
)
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
11
Rappel :
Si
avec
La commande
pow(x,n)
permet de calculer
xn.
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
12
Linstruction
permet de demander
lutilisateur de saisir une valeur qui sera
affecte la variable.
Linstruction daffectation est donne par
Linstruction
permet laffichage.
dans un repre
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
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
14
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 :
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 ).
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
15
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 ;
traitement 2
...
traitement N
Algorigramme
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
16
La rsolution de certains problmes ncessite parfois la mise en place dun test pour effectuer une tche :
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
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 :
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.
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
19
Remarques :
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
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
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
, donc
fois)
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 :
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.
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 :
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 :
Remarques :
deux
entiers naturels
et
, avec diviseur non nul, la division
euclidienne associe un
et un
,
tous deux entiers naturels vrifiant :
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
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
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
Algorithmique Cours
SOS DEVOIRS CORRIGES (marque dpose)
27