Vous êtes sur la page 1sur 9

DERNIRE IMPRESSION LE 6 septembre 2014 8:53

Notions dalgorithme
Table des matires
1 Introduction 2
1.1 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Conventions pour crire un algorithme . . . . . . . . . . . . . . . . 2
1.3 Types dinstructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Les Instructions 4
2.1 Cration dun programme . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Lecture et afchage dune variable . . . . . . . . . . . . . . . . . . . 4
2.3 Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Affectation dune variable . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Les tests 6
4 Les boucles 7
4.1 Dnition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 La boucle simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.4 Boucler en comptant . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.5 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
PAUL MILAN 1 SECONDE S
1. INTRODUCTION
1 Introduction
1.1 Algorithme
Dfinition 1 : Un algorithme est une suite dinstructions, qui une fois excute
correctement, conduit un rsultat donn.
Pour fonctionner, un algorithme doit donc contenir uniquement des instructions
comprhensibles par celui qui devra lexcuter.
Exemple :
Voici, ci-contre, un exemple dalgorithme rdig en
langage courant.
Si on applique cet algorithme au nombre 3, on a :
3
+1
4
2
8
3
5
On peut identier cet algorithme une fonction afne :
f (x) = 2(x +1) 3 = 2x +2 3 = 2x 1
Nom : E1
Choisir un nombre.
Lui ajouter 1.
Multiplier le rsultat par
2.
Soustraire 3 au rsultat.
Afcher le rsultat.
On peut chercher savoir quel nombre a donn 0 par
exemple. Il faut alors remonter lalgorithme, on a alors :
0
+3
3
2

3
2
1

1
2
On peut crire alors le nouvel algorithme ci-contre
La nouvelle fonction afne dnie est alors :
g(x) =
x +3
2
1 =
1
2
+
1
2
Nom : E1
Choisir un nombre.
Lui ajouter 3.
Diviser le rsultat par 2.
Soustraire 1 au rsultat.
Afcher le rsultat.
Remarque : La matrise de lalgorithmique requiert deux qualits :
il faut avoir une certaine intuition, car aucune recette ne permet de savoir
priori quelles instructions permettront dobtenir le rsultat voulu.
il faut tre mthodique et rigoureux. En effet, chaque fois quon crit une srie
dinstructions quon croit justes, il faut systmatiquement se mettre la place
de la machine qui va les excuter, pour vrier si le rsultat obtenu est bien
celui que lon voulait.
1.2 Conventions pour crire un algorithme
Historiquement, plusieurs types de notations ont reprsent des algorithmes.
Il y a eu notamment une reprsentation graphique, avec des carrs, des lo-
sanges, etc. quon appelait des organigrammes. Cependant ds que lalgorithme
commence grossir un peu, ce nest plus pratique.
On utilise gnralement une srie de conventions appele pseudo-code , qui
ressemble un langage de programmation authentique dont on aurait vacu
la plupart des problmes de syntaxe. Ce pseudo-code est susceptible de varier
lgrement dun livre (ou dun enseignant) un autre.
PAUL MILAN 2 SECONDE S
1. INTRODUCTION
On peut diviser un algorithme en 4 parties : la dclaration des variables, les
entres et linitialisation, le traitement, les sorties.
Exemple : Les deux algorithmes prcdents peuvent scrire en pseudo-code
comme ci-dessous :
Nom : E1
Variables : X rel
Entres et initialisation
Lire X
Traitement
X +1 Y
2Y Y
Y 3 Y
Sorties : Afcher Y
Nom : E1
Variables : X rel
Entres et initialisation
Lire X
Traitement
X +3 Y
Y/2 Y
Y 1 Y
Sorties : Afcher Y
1.3 Types dinstructions
Les ordinateurs, ne sont capables de comprendre que quatre catgories dinstruc-
tions. Ces quatre familles dinstructions sont :
la lecture / lafchage
laffectation de variables
les tests
les boucles
Un algorithmique exprime les instructions rsolvant un problme donn ind-
pendamment des particularits de tel ou tel langage de programmation.
Pour crire un algorithme sur un ordinateur, nous avons besoin dun langage
de programmation. Un langage de programmation est une convention pour
donner des ordres un ordinateur.
Il existe des milliers de langage de programmation, ayant chacun ses spcicits.
On peut citer par exemple :
Langage Applications classiques Compil/interprt
ADA Embarqu compil
BASIC Macro de traitement bureautique interprt
C Programmation systme compil
C++ Programmation systme objet compil
Cobol Gestion compil
Fortran Calcul compil
Java Programmation oriente Internet intermdiaire
LISP Intelligence articielle intermdiaire
Pascal Enseignement compil
Prolog Intelligence articielle interprt
Perl Traitement de chanes de caractres interprt
Un compilateur est un programme informatique qui transforme un code source
crit dans un langage de programmation (le langage source) en langage machine
(le langage cible).
Dans le cas de langage semi-compil (ou intermdiaire), le code source est traduit
en un langage intermdiaire, sous forme binaire, avant dtre lui-mme interprt
ou compil.
PAUL MILAN 3 SECONDE S
2. LES INSTRUCTIONS
Un interprteur se distingue dun compilateur par le fait que, pour excuter un
programme, les oprations danalyse et de traductions sont ralises chaque
excution du programme (par un interprteur) plutt quune fois pour toutes
(par un compilateur).
2 Les Instructions
2.1 Cration dun programme
Pour crer un programme, il faut lui donner un nom. Pour la Ti ce nom doit
commencer par une lettre et doit contenir au maximum 8 caractres.
Avec la Ti, pour crer un programme faire :
, on slectionne "NOUV", on valide avec
la calculette est en mode alphanumrique 7, on crit alors le nom dsir et
on valide avec .
2.2 Lecture et afchage dune variable
a) Dnition
Dfinition 2 : Lire une variable signie que lutilisateur doit rentrer une
valeur pour que le programme la lise
Afcher une variable signie que le programme renvoie la valeur de la variable
que le programme a trouv.
Ces instructions sont ce quon appelle des entres-sorties, (E/S en franais et I/O
en anglais)
Les mots lecture et afchage se situe au niveau du programme
b) Traduction dans le langage de la Ti
Instruction Langage Ti manipulations faire
Lire N Prompt N E/S 2 : Prompt - puis taper N
Afcher N Disp N E/S 3 : Disp - puis taper N
2.3 Variable
a) Dnition
Dfinition 3 : Ds que lon a besoin de stocker une information au cours dun
programme, on utilise une variable.
Pour employer une image, une variable est une bote, que le programme (lordi-
nateur) va reprer par une tiquette. Pour avoir accs au contenu de la bote, il
suft de la dsigner par son tiquette.
PAUL MILAN 4 SECONDE S
2. LES INSTRUCTIONS
b) Dclaration des variables
Avec la calculette Ti, il ny a pas de dclaration de variable.
La premire chose faire avant de pouvoir utiliser une variable est de crer la
bote et de lui coller une tiquette. Cest ce quon appelle la dclaration des va-
riables.
Le nom de la variable (ltiquette de la bote) obit des impratifs changeant
selon les langages. Toutefois, une rgle absolue est quun nom de variable peut
comporter des lettres et des chiffres, mais quil exclut la plupart des signes de
ponctuation, en particulier les espaces. Un nom de variable correct commence
galement imprativement par une lettre. Quant au nombre maximal de signes
pour un nom de variable, il dpend du langage utilis.
Une fois le nomchoisi, il faut dterminer le type de la variable. On peut distinguer
2 types principaux de variable :
Type numrique : un nombre (entier, dcimal, rel).
Type alphanumrique : du texte. Dans ce cas pour rentrer une valeur dans cette
variable, on met le texte entre guillemets "texte "
On peut aussi citer dautres types de variables
Type montaire : un nombre avec deux dcimales.
Type date : jour / mois / anne.
Type boolen : qui ne peut prendre que deux valeurs VRAI ou FAUX.
2.4 Affectation dune variable
La seule chose quon puisse faire avec une variable, cest laffecter, cest--dire lui
attribuer une valeur.
La che daffectation se trouve pour la Ti sur la touche :
24 A Attribue la valeur 24 la variable a.
A B Attribut la valeur de A la variable B.
"Paul" C Attribut le texte "Paul" la variable C
Remarque : On peut trouver dautres notations (plus puristes) pour affecter une
valeur une variable :
A 24 , A := 24 ou A = 24 Attribut la variable A la valeur 24
On peut aussi affecter une variable laide dune opration :
A +4 C Attribut la valeur A +4 la variable C.
On peut changer la valeur dune variable avec elle-mme :
B +1 B Augmente de 1 la variable B.
Oprateur alpha numrique : concaniser &
"Paul" A
"Milan" B
A&B C
Attribue le texte "PaulMilan" la variable C .
PAUL MILAN 5 SECONDE S
3. LES TESTS
Les oprateurs numriques sont : Laddition , la soustraction , la multipli-
cation , la division /, la puissance
Les oprateurs logiques sont :
ET les 2 conditions ralises
OU (non exclusif) lune au moins des conditions est ralise
NON la condition nest pas ralise
3 Les tests
Il y a deux formes pour un test : soit la forme complte, soit la forme simplie :
Forme complte
si condition alors
instructions 1
sinon
instructions 2
n
Forme simplie
si condition alors
instructions
n
Si la condition nest pas vrie le
programme saute ces instructions.
La condition portant sur une variable peut tre :
Une valeur atteindre.
Une comparaison avec une autre variable (galit, ingalit, non galit)
Autre valeur
On peut aussi mettre un test qui se dcompose en plusieurs conditions relies par
un oprateur logique :
condition 1 ET condition 2 : les deux conditions doivent tre vries en mme
temps.
condition 1 OU condition 2 : lune au moins des deux conditions doivent tre
vries.
On peut aussi imbriquer un ou plu-
sieurs autres tests lintrieur dun test.
On a alors le schma suivant :
si condition 1 alors
instructions 1
sinon
si condition 2 alors
instructions 2
sinon
instructions 3
n
n
On pourrait schmatiser cette situation par :
PAUL MILAN 6 SECONDE S
4. LES BOUCLES
si
alors
instructions 1
n
sinon
si
alors
instructions 2
sinon
instructions 3
n
Exemple : On donne ci-dessous lalgorithme associe la valeur absolue, "abs()"
de votre calculatrice ainsi que sa programmation avec la Ti.
Nom : VA
Variables : X, Y rels
Entres et initialisation
Lire X
Traitement
si X 0 alors
X Y
sinon
X Y
n
Sorties : Afcher Y
: Prompt X
: If X 0
: Then
: X Y
: Else
: X Y
: End
: Disp Y
Pour trouver les instructions "If", "Then", "Else",
"End" faire dans 1 :, 2 :, 3 : ou : 7
Pour trouver le symbole faire y:4 :
Les commandes Then et Else sont seuls sur
leur ligne
On teste cet algorithme pour 2, 3 et 0. On trouve : 2,3 et 0.
4 Les boucles
4.1 Dnition
Dfinition 4 : Une boucle est une structure rptitive ou itrative, cest dire
que la boucle effectue n fois un calcul sous le contrle dune condition darrt.
4.2 La boucle simple
La boucle simple obit au schma sui-
vant :
Linstruction Tant que avec la Ti est :
While
On la trouve en faisant : : 5
tant que condition faire
instructions
n
Dans le cas o la condition est toujours vrie, lordinateur tourne alors
dans la boucle et nen sort plus. La boucle innie est une des hantises les plus
redoutes des programmeurs.
Cette faute de programmation est courante chez tout apprenti programmeur.
PAUL MILAN 7 SECONDE S
4. LES BOUCLES
4.3 Exemple
Soit un algorithme permettant de trou-
ver la partie entire E(x) dun nombre
positif x.
On rappelle que la partie entire E(x)
dun nombre x est dnie comme suit :
n x < n +1 on a : E(x) = n
Nom : PE
Variables : N entier, X rel
Entres et initialisation
Lire X
0 N
Traitement
tant que
X N +1 faire
N +1 N
n
Sorties : Afcher N
1) Tester cet algorithme avec le nombre x = 4, 3, en crivant tous les rsultats par
boucle.
2) Trouver un algorithme qui permette de calculer la partie entire dun nombre
quelconque (positif ou ngatif).

1) La valeur de N au dbut vaut 0 donc N +1 = 1


1
er
test 4, 3 1 donc 1 N
2
e
test 4, 3 2 donc 2 N
3
e
test 4, 3 3 donc 3 N
4
e
test 4, 3 4 donc 4 N
5
e
test 4, 3 5 donc on afche 4
2) La dnition de la partie entire est la mme pour un nombre ngatif. Il ne faut
pas confondre partie entire et troncature. En effet, la partie entire de 2, 5
est 3 alors que sa troncature est 2.
Pour crire un algorithme partir de
lancien, on distingue deux cas :
soit X est positif ou nul, X N + 1
on incrmente alors N de +1
soit X est ngatif, X < N on incr-
mente N de 1
On obtient alors lalgorithme suivant :
Nom : PE
Variables : N entier, X rels
Entres et initialisation
Lire X
0 N
Traitement
si X 0 alors
tant que X N +1 faire
N +1 N
n
sinon
tant que X < N faire
N 1 N
n
n
Sorties : Afcher N
PAUL MILAN 8 SECONDE S
4. LES BOUCLES
4.4 Boucler en comptant
Si lon connat lavance le nombre de dincrmentations, on a alors la structure
suivante :
pour compteur = initial nal (pas = valeur) faire
instructions
n
La valeur du pas est facultative et vaut par dfaut 1.
Linstruction Pour avec la Ti est : For(compteur, initial, nal (,pas)).
On la trouve en faisant : : 4
4.5 Exemple
On considre lalgorithme suivant :
1) Tester, la main, cet algorithme pour
N = 5 en donnant les rsultats
chaque itration.
2) Pourquoi linitialisation 1 S est-
elle importante.
3) crire cet algorithme avec une calcu-
latrice Ti.
Nom : FACT
Variables : N,I, S entiers
Entres et initialisation
Lire N
1 S *
Traitement
pour I de 1 N faire
S I S
n
Sorties : Afcher S

1) On trouve comme rsutat :


I 1 2 3 4 5
S 1 2 6 24 120
2) Linitialisation est important (S = 1) car si lon oublie cette ligne la valeur par
dfaut de S est 0, ce qui donnera un rsultat nul chaque itration.
3) Voici le programme Ti :
Programme : FACT
: Prompt N
: 1 S
: For(I, 1, N)
: S I S
: End
: Disp S
PAUL MILAN 9 SECONDE S

Vous aimerez peut-être aussi