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 affichage dune variable . . . . . . . . . . . . . . . . . . . 4
2.3 Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Affectation dune variable . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Les tests 6

4 Les boucles 7
4.1 Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 La boucle simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.4 Boucler en comptant . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.5 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

PAUL M ILAN 1 S ECONDE 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 :
Nom : E1
Voici, ci-contre, un exemple dalgorithme rdig en
Choisir un nombre.
langage courant.
Lui ajouter 1.
Si on applique cet algorithme au nombre 3, on a : Multiplier le rsultat par
+1 2 3 2.
3 4 8 5 Soustraire 3 au rsultat.
On peut identifier cet algorithme une fonction affine : Afficher le rsultat.

f ( x ) = 2( x + 1) 3 = 2x + 2 3 = 2x 1

On peut chercher savoir quel nombre a donn 0 par


exemple. Il faut alors remonter lalgorithme, on a alors :
Nom : E1
+3 2 3 1 1
0 3 Choisir un nombre.
2 2
On peut crire alors le nouvel algorithme ci-contre Lui ajouter 3.
Diviser le rsultat par 2.
La nouvelle fonction affine dfinie est alors :
Soustraire 1 au rsultat.
x+3 1 1 Afficher le rsultat.
g( x ) = 1 = +
2 2 2
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 vrifier 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 M ILAN 2 S ECONDE 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 Nom : E1
Variables : X rel Variables : X rel
Entres et initialisation Entres et initialisation
Lire X Lire X
Traitement Traitement
X+1 Y X+3 Y
2Y Y Y/2 Y
Y3 Y Y1 Y
Sorties : Afficher Y Sorties : Afficher Y

1.3 Types dinstructions


Les ordinateurs, ne sont capables de comprendre que quatre catgories dinstruc-
tions. Ces quatre familles dinstructions sont :
la lecture / laffichage
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 spcificits.
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 artificielle intermdiaire
Pascal Enseignement compil
Prolog Intelligence artificielle 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 M ILAN 3 S ECONDE 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 affichage dune variable


a) Dfinition

Dfinition 2 : Lire une variable signifie que lutilisateur doit rentrer une
valeur pour que le programme la lise
Afficher une variable signifie 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)
B Les mots lecture et affichage 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
Afficher N Disp N E/S 3 : Disp - puis taper N

2.3 Variable
a) Dfinition

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
suffit de la dsigner par son tiquette.

PAUL M ILAN 4 S ECONDE S


2. LES INSTRUCTIONS

b) Dclaration des variables


B 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 nom choisi, 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 flche daffectation se trouve pour la Ti sur la touche :
24 A Attribue la valeur 24 la variable a.
AB 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 Attribue le texte "PaulMilan" la variable C .
A&B C

PAUL M ILAN 5 S ECONDE 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 simplifie :

Forme complte Forme simplifie

si condition alors si condition alors


instructions 1 instructions
sinon fin
instructions 2 Si la condition nest pas vrifie le
fin 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 vrifies en mme
temps.
condition 1 OU condition 2 : lune au moins des deux conditions doivent tre
vrifies.

On peut aussi imbriquer un ou plu- si condition 1 alors


sieurs autres tests lintrieur dun test.
On a alors le schma suivant : instructions 1
sinon
si condition 2 alors
instructions 2
sinon
instructions 3
fin
fin

On pourrait schmatiser cette situation par :

PAUL M ILAN 6 S ECONDE S


4. LES BOUCLES

instructions 1

alors
si fin
instructions 2
alors
sinon si fin

sinon instructions 3

Exemple : On donne ci-dessous lalgorithme associe la valeur absolue, "abs()"


de votre calculatrice ainsi que sa programmation avec la Ti.

Nom : VA : Prompt X
: If X > 0
Variables : X, Y rels : Then
Entres et initialisation :XY
Lire X : Else
Traitement : X Y
si X > 0 alors : End
XY : Disp Y
sinon
X Y
Pour trouver les instructions "If", "Then", "Else",
fin
"End" faire dans 1 :, 2 :, 3 : ou : 7
Sorties : Afficher Y Pour trouver le symbole > faire y : 4 :
B 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 Dfinition

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- tant que condition faire


vant :
instructions
Linstruction Tant que avec la Ti est :
fin
While
On la trouve en faisant : : 5

B Dans le cas o la condition est toujours vrifie, lordinateur tourne alors


dans la boucle et nen sort plus. La boucle infinie est une des hantises les plus
redoutes des programmeurs.
Cette faute de programmation est courante chez tout apprenti programmeur.

PAUL M ILAN 7 S ECONDE S


4. LES BOUCLES

4.3 Exemple

Soit un algorithme permettant de trou- Nom : PE


ver la partie entire E( x ) dun nombre Variables : N entier, X rel
positif x. Entres et initialisation
On rappelle que la partie entire E( x ) Lire X
dun nombre x est dfinie comme suit : 0N
Traitement
n 6 x < n + 1 on a : E( x ) = n tant que
X > N + 1 faire
N+1 N
fin
Sorties : Afficher 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


1er test 4, 3 > 1 donc 1 N
2e test 4, 3 > 2 donc 2 N
3e test 4, 3 > 3 donc 3N
4e test 4, 3 > 4 donc 4 N
5e test 4, 3 6 5 donc on affiche 4

2) La dfinition 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 Nom : PE


lancien, on distingue deux cas : Variables : N entier, X rels
soit X est positif ou nul, X > N + 1 Entres et initialisation
Lire X
on incrmente alors N de +1 0N
soit X est ngatif, X < N on incr- Traitement
mente N de 1 si X > 0 alors
tant que X > N + 1 faire
On obtient alors lalgorithme suivant : N+1 N
fin
sinon
tant que X < N faire
N1 N
fin
fin
Sorties : Afficher N

PAUL M ILAN 8 S ECONDE 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 final (pas = valeur) faire


instructions
fin

B La valeur du pas est facultative et vaut par dfaut 1.


Linstruction Pour avec la Ti est : For(compteur, initial, final (,pas)).
On la trouve en faisant : : 4

4.5 Exemple
On considre lalgorithme suivant :

1) Tester, la main, cet algorithme pour Nom : FACT


N = 5 en donnant les rsultats Variables : N,I, S entiers
chaque itration. Entres et initialisation
Lire N
2) Pourquoi linitialisation 1 S est- 1S *
Traitement
elle importante. pour I de 1 N faire
SI S
3) crire cet algorithme avec une calcu- fin
latrice Ti. Sorties : Afficher S

I 1 2 3 4 5
1) On trouve comme rsutat :
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
:1S
: For( I, 1, N )
:SI S
: End
: Disp S

PAUL M ILAN 9 S ECONDE S