Vous êtes sur la page 1sur 21

TDI

CHAPITRE I Introduction

INTRODUCTION
I.Introduction
1.

Dfi nitions

a.

Linformation
Linformation est le support formel dun lment de connaissance
humaine susceptible dtre reprsente laide de conventions (codages)
afin dtre conserve, traite ou communique.
b.
La donne
Une donne est la reprsentation dune information sous une forme
conventionnelle (code) destine faciliter son traitement.
c.
Traitement de linformation
Le traitement de linformation consiste appliquer un ou plusieurs
oprations sur une information en entre pour gnrer des rsultats en
sortie

Schma simplifi du traitement de


Linformation
d.
Lordinateur
Un ordinateur est une machine lectronique programmable destine au
traitement de linformation.
e.
Linformatique
Linformatique est la science du traitement de linformation dans les
domaines scientifiques, techniques, conomiques et sociaux.
Exemples de traitements de linformation par informatique :

-dmontrer un thorme (mathmatique)


-faire jouer aux checs (intelligence artificielle)
-dpouiller un sondage (conomie)
-grer un robot industriel (atelier)
-facturation de produits (entreprise)
-traduire un texte (linguistique)
-imagerie mdicale (mdecine)
-formation distance (ducation)
-Internet (grand public)...etc.
f.

Le systme informatique

1/21

TDI

CHAPITRE I Introduction

Ensemble de matriels (ordinateurs, rseaux) et de logiciels permettant


d'acqurir, de stocker, de traiter, de communiquer des donnes pour
rpondre aux besoins en information de ses utilisateurs.
g.
Le systme dinformation
En tlcommunications et en informatique, le terme systme d'information
(ou SI) possde les significations suivantes :* Un systme, automatis ou
manuel, qui comprend des hommes, des machines et des mthodes
organiss pour assembler, transmettre et rpandre des donnes qui
reprsentent de l'information pour les utilisateurs. ...
h.
Les rseaux informatiques
Un rseau informatique est un ensemble d'quipements interconnects
qui servent acheminer un flux d'informations. Sa naissance est le fruit du
mariage entre Informatique et Tlcommunications.

2/21

TDI

CHAPITRE II Algorithmique (Notions de base)

ALGORITHMIQUE (NOTIONS DE BASE)


I Introduction
1.

Notion de programme informatique

Un programme, informatique, se dfinit comme une srie dinstructions


dans un langage que lordinateur comprend. Un bon programme doit :
- fonctionner
- fonctionner selon les spcifications
- pouvoir tre modifi facilement
- tre prt temps
- tre trs bien document
- utiliser la mmoire efficacement

2.

Notion dalgorithme

- Un algorithme dcrit un traitement sur un certain nombre, fini, de


donnes (ventuellement aucune).
- Un algorithme est la composition d'un ensemble fini d'tapes, chaque
tape tant forme d'un nombre fini d'oprations dont chacune est :
- dfinie de faon rigoureuse et non ambigu ;
- effective, c'est--dire pouvant tre effectivement ralise par une
machine : cela correspond une action qui peut tre ralise avec
un papier et un crayon en un temps fini ; par exemple la division
entire est une opration effective, mais pas la division avec un
nombre infini de dcimales.
- Quelle que soit la donne sur laquelle il travaille, un algorithme doit
toujours se terminer aprs un nombre fini d'oprations, et fournir
un rsultat.
Un algorithme doit rpondre aux 5 caractristiques suivantes :
La finitude
La prcision
Le domaine des entres
Le domaine des sorties
Lexcutabilit

3.

Organigramme et pseudo-code

Historiquement, plusieurs types de notations ont reprsent des


algorithmes.
Il y a eu notamment une reprsentation graphique, avec des carrs, des
losanges, etc. quon appelait des organigrammes. Aujourdhui, cette
reprsentation est quasiment abandonne, pour deux raisons. Dabord,
parce que ds que lalgorithme commence grossir un peu, ce nest plus
pratique du tout. Ensuite parce que cette reprsentation favorise le
glissement vers un certain type de programmation, dite non structure
(voir les chapitres suivants), que lon tente au contraire dviter.
Cest pourquoi 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
3/21

TDI

CHAPITRE II Algorithmique (Notions de base)

enseignant) un autre. Cest bien normal : le pseudo-code, encore une


fois, est purement conventionnel ; aucune machine nest cense le
reconnatre.

4.

Algorithmique et programmation

Les ordinateurs, quels quils soient, ne sont fondamentalement capables


de comprendre que quatre catgories d'ordres (en programmation, on
n'emploiera pas le terme d'ordre, mais plutt celui d'instructions). Ces
quatre familles d'instructions sont :

laffectation de variables

la lecture / criture

les tests

les boucles

Un algorithme informatique se ramne donc toujours au bout du compte


la combinaison de ces quatre petites briques de base. Il peut y en avoir
quelques unes, quelques dizaines, et jusqu plusieurs centaines de
milliers dans certains programmes de gestion (cependant, la taille dun
algorithme ne conditionne pas en soi sa complexit : de longs algorithmes
peuvent tre finalement assez simples, et de petits trs compliqus).
Pourquoi apprendre lalgorithmique pour apprendre programmer ? En
quoi a-t-on besoin dun langage spcial, distinct des langages de
programmation comprhensibles par les ordinateurs ?
Parce que lalgorithmique exprime les instructions rsolvant un problme
donn indpendamment des particularits de tel ou tel langage. Il vaut
mieux faire dabord le plan et rdiger ensuite que linverse
Apprendre lalgorithmique, cest apprendre manier la structure logique
dun programme informatique. Cette dimension est prsente quelle que
soit le langage de programmation ; mais lorsquon programme dans un
langage (en C, en Visual Basic, etc.) on doit en plus se colleter les
problmes de syntaxe, ou de types dinstructions, propres ce langage.
Apprendre lalgorithmique de manire spare, cest donc srier les
difficults pour mieux les vaincre.

II. Elments de base des algorithmes


1.

Notion de variable

a.
Les types de donnes
Dans un programme informatique, on va avoir en permanence besoin de
stocker provisoirement des valeurs. Il peut sagir de donnes issues du
disque dur, fournies par lutilisateur (frappes au clavier), ou autres. Il
peut aussi sagir de rsultats obtenus par le programme, intermdiaires ou
dfinitifs. Ces donnes peuvent tre de plusieurs types : elles peuvent tre
des nombres, du texte, etc. On peut dire quun type de donnes est
lensemble de valeurs de mme nature quune variable peut avoir
4/21

TDI

CHAPITRE II Algorithmique (Notions de base)

b.
Les variables
Pour employer une image, une variable est une bote, que le programme
(lordinateur) va reprer par une tiquette (Nom de variable). Pour avoir
accs au contenu de la bote, il suffit de la dsigner par son tiquette.
Dans lordinateur, physiquement, il y a un emplacement de mmoire,
repr par une adresse binaire. Si on programmait dans un langage
directement comprhensible par la machine, on devrait dsigner nos
donnes par des chiffres binaires (0 et 1).
Les langages informatiques plus volus (ce sont ceux que presque tout le
monde emploie) se chargent prcisment, entre autres rles, dpargner
au programmeur la gestion fastidieuse des emplacements mmoire et de
leurs adresses. Il est beaucoup plus facile demployer des noms de
variables de son choix, que de devoir manier des adresses binaires.
La premire chose faire avant de pouvoir utiliser une variable est de
crer la bote et de lui coller une tiquette. Ceci se fait tout au dbut de
lalgorithme, avant mme les instructions proprement dites. Cest ce quon
appelle la dclaration des variables 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.
En pseudo-code algorithmique, on est bien sr libre du nombre de signes
pour un nom de variable.
Lorsquon dclare une variable, il ne suffit pas de crer une bote (rserver
un emplacement mmoire) ; encore doit-on prciser ce que lon voudra
mettre dedans, car de cela dpendent la taille de la bote (de
lemplacement mmoire) et le type de codage utilis.

2.

Expression et oprateur

Une expression est un ensemble de valeurs, relies par des oprateurs, et


quivalent une seule valeur
Par exemple, voyons quelques expressions de type numrique. Ainsi :
7
5+4
123-45+844
T-12+5-R
Sont toutes des expressions valides, condition que T et R soient bien des
nombres. Car dans le cas contraire, la quatrime expression na pas de
sens. En loccurrence, les oprateurs employs sont laddition (+) et la
soustraction (-).
Un oprateur est un signe qui relie deux valeurs, pour produire un rsultat.
Les oprateurs possibles dpendent du type des valeurs qui sont en jeu.
On peut avoir :
a.
Oprateurs numriques :
Ce sont les quatre oprations arithmtiques :
+ : Addition
- : Soustraction
5/21

TDI

CHAPITRE II Algorithmique (Notions de base)

* : Multiplication
/ : Division
Mentionnons galement le ^ qui signifie puissance . 45 au carr
scrira donc 45 ^ 2.
Enfin, on a le droit dutiliser les parenthses, avec les mmes rgles quen
mathmatiques. La multiplication et la division ont naturellement
priorit sur laddition et la soustraction. Les parenthses ne sont ainsi
utiles que pour modifier cette priorit naturelle.
Cela signifie quen informatique, 12 * 3 + 5 et (12 * 3) + 5 valent
strictement la mme chose, savoir 41. Pourquoi ds lors se fatiguer
mettre des parenthses inutiles ?
En revanche, 12 * (3 + 5) vaut 12 * 8 soit 96. Rien de difficile l-dedans,
que du normal.
b.
Oprateur alphanumrique : & ou +
Cet oprateur permet de concatner, autrement dit dagglomrer, deux chanes
de caractres. Par exemple :
Variables A, B, C en Caractre
Dbut
A "Salut "
B "tout le monde"
CA&B
Fin
La valeur de C la fin de lalgorithme est "Salut tout le monde"
c.
Oprateurs logiques (ou boolens) :
Il sagit du ET, du OU, du NON et du mystrieux (mais rarissime XOR : le ou
exclusif).

3.

Laff ectation

Consiste mettre la valeur dune variable dans une autre variable


Pseudo-code : Variable1 Variable2
Exemple x10 ; yx

4.

Lecture et criture

La lecture permet dattribuer une valeur un objet en allant lire sur un


priphrique dentre (exemple clavier) et elle range cette valeur dans lobjet.
Pseudo-code

Organigramme

lire (Nom de variable)


Exemple : Lire(x)

Lire (Nom de variable)

La lecture permet dcrire sur un priphrique de sortie linformation spcifie


(exemple affichage lcran)

6/21

TDI

CHAPITRE II Algorithmique (Notions de base)

Pseudo-code

Organigramme

crire (Nom de variable)


crire (Nom de variable)
Exemple : crire ( salut )
En organigramme les instructions de lecture criture sont mises dans un losange

5.

Le bloc dbut et fi n

Chaque programme possde un dbut et une fin


Pseudo-code
Organigramme
Dbut
.
.
Fin

6.

Dbut
Fin

Exemples (voir exercices)

III.Structures de base des algorithmes


1.

Structures alternatives

a.
Linstruction SI
Linstruction si permet de faire un traitement si la condition est vrai un autre
traitement sinon
Pseudo-code
Organigramme
Si condition alors
Bloc dinstructions
Sinon
Bloc dinstructions
Fin si
Exemple : si x>=0 alors
Ecrire (x, est positif )
Sinon
Ecrire(x, est ngatif )
Fin si

Fausse

Traitement si
condition
fausse

Condition

Vrai

Traitement si
condition vrai

b.
Linstruction SELON
Linstruction selon permet dvaluer plusieurs cas pour des valeurs dune
variable de type simple tel que caractre ou entier. Cest une structure
que lon trouve dans tous les langages de programmation et qui permet
dviter des si imbriqus

7/21

TDI

2.

CHAPITRE II Algorithmique (Notions de base)

Structures itratives (les boucles)

Les structures itratives permettent de rpter un traitement zro ou


plusieurs fois.
a.
La boucle tant que
La boucle Tant que permet de rpter un traitement Tant que la condition
est vrai

Pseudo-code

Organigramme

Tant que condition faire


Bloc dinstructions
Fin Tq
Exemple :
X10
Tant que x>=0 Faire
Xx-1
Fin Tq

Fausse

Condition

Vrai

Traitement de
la boucle

b.
La boucle rpter. jusqu'
La boucle Rpter jusqu permet de rpter un traitement au moins une fois
jusqu' ce que la condition est vrai la condition est vrifie la fin de la boucle
Pseudo-code
Rpter
Bloc dinstructions
Jusqu' condition
Exemple :
X10
Rpter
Xx-1
Jusqu' x=0

Organigramme

Traitement

Vrai

Condition

Fausse

c.
La boucle pour
La boucle pour est une structure qui existe dans la majorit des langages de
programmation et qui permet de rpter un traitement un certain nombre de
fois, le nombre de rptition est connu lavance. La boucle pour utilise une
variable compteur qui sera incrmente ou dcrmente automatiquement selon
la valeur du pas
Pseudo-code

8/21

TDI

CHAPITRE II Algorithmique (Notions de base)

Pour variable=valeur initiale valeur finale pas valeurs


Traitement de la boucle
Fin pour
Exemple
Dbut
Pour i=5 100 pas 5
Ecrire (i, est un multiple de 5 )
Fin pour
d.
La boucle rpter tant que
La boucle rpter tant quest semblable celle de rpter jusqu' sauf que le
traitement est rpt tant que la condition est vraie

Pseudo-code
Rpter
Bloc dinstructions
Tant que condition
Exemple :
X10
Rpter
Xx-1
Tant que x>0

Organigramme

Traitement

Fausse

9/21

Condition

Vrai

TDI

CHAPITRE III
Algorithmique (Les tableaux)

CHAPITRE II

Algorithmes lis lutilisation de tableaux.


I.Introduction
1. Dfi nition :
Une liste est une suite dlments de mme type. Dans un programme, pour
ranger les lments dune liste on peut utiliser plusieurs variables simples mais
lorsque le nombre dlments Atteint une certaine limite il devient impossible
dadopter cette solution.
La structure de tables ou (tableaux) vient rsoudre le problme : la liste
est dfinie en mmoire sous forme dun tableau ayant un seul nom et un seul
type : type des lments de la liste .
Pour dsigner un lment de liste on utilise le nom du tableau suivi par le
numro dordre de llment du tableau que lon veut utiliser.
Exemple :
Considrons le tableau T suivant :
45

20

13

95

10

T:

T(5) : reprsente le cinquime lment du tableau T c'est--dire 95

2. Algorithme de chargement dun tableau :


Lopration de chargement consiste affecter aux lments du tableau
des valeurs particulires (produites par un traitement) ou des valeurs
introduites par clavier (lecture).
a. Chargement par lecture :
Soit T un tableau de N lments crire lalgorithme qui lit les N lments du tableau
Dbut
I0
Tant que i<N
I I + 1
Lire(T(i))
Fin Tq
Fin

10/21

TDI

CHAPITRE III
Algorithmique (Les tableaux)

b. Chargement par traitement


Soit T un tableau de N lments crire lalgorithme qui rempli le tableau T par les N
multiples de 10
Dbut
I0
Rpter
I I+1
T (I) I*10
Jusqu' I=10
Fin

II. Recherche dans un tableau :


Cest lopration qui consiste trouver un ou plusieurs lments qui
peuvent exister lintrieure du tableau. Il y a plusieurs types de recherche, les
plus frquentes consistent retrouver un lment qui rpond une condition
donne. Par exemple : chercher llment qui est gale 20 et afficher son rang
dans le tableau. La recherche peut aboutir lorsque llment existe on dit que la
recherche est fructueuse, elle peut chouer si llment nexiste pas, plusieurs
algorithmes sont possibles. On va essayer de voir les algorithmes les plus
utiliss.

1. La recherche squentielle :

La recherche squentielle consiste balayer le tableau squentiellement


en partant du 1er lment ou du dernier jusqu' trouver llment recherch ou
arriver la fin du tableau.
Exemple : soit chercher dans une liste de 20 lments rangs dans un
tableau T un lment X donn. Afficher la position de llment sil existe et le
message non trou sil nexiste pas.
Algorithme : recherche de llment x dans un tableau N lments
Dbut
Lire (X)
I1
Tant que I< N et T(I) X
II+1
Fin Tq
Si T(I)=X alors
crire lment trouv la position ; I)
Sinon
crire non trouv .
Fin si
Fin

11/21

TDI

CHAPITRE III
Algorithmique (Les tableaux)

2. Recherche dichotomique : recherche dans un


tableau tri

La recherche dichotomique est applique sur les listes tries. Elle consiste
limiter les champs de recherche successivement jusqu retrouver llment
recherch ou avoir un champ de recherche qui ne contient aucun lment. Chaque
fois on dfini un intervalle de recherche par une borne infrieure et suprieure
et on se positionne au milieu pour faire le test. Ce traitement se rpte jusqu'
trouver llment ou arriver un intervalle vide.

Algorithme de la recherche dichotomique.

Dbut
Lire(x)
M1
Binf1
BsupN
Tant que Binf<=Bsup et x T(m)
ME ((Binf+Bsup)/2)
// E : reprsente la partie entire
Si x>T(m) alors
Binfm+1
Fin si
Si x<T(m) alors
Bsupm-1
Fin si
Fin Tq
Si x=T(m) alors
Ecrire ( Elment trouv )
Sinon
Ecrire ( Elment non trouv )
Fin si
Fin
Remarque : La recherche dun lment dans un tableau de 1000
lments ncessitera pour la recherche squentielle dans le cas le plus
dfavorable la rptition de la recherche pendant 1000 fois pour la
recherche dichotomique le traitement sera rpt dans le cas le plus
dfavorable moins de 10 fais.

III. Les tris


1. Dfi nition
Un tri consiste arranger des donnes selon un ou des critres bien
dtermins.
Par exemple trier des donnes selon un ordre alphabtique croissant ou
dcroissant.
Le tri est une des oprations des plus importantes des traitements sur
ordinateur. Diffrentes mthodes peuvent tre envisages suivant la
nature du problme traiter.

12/21

TDI

CHAPITRE III
Algorithmique (Les tableaux)

En informatique, on distingue deux grandes catgories de tri :


le tri interne,
le tri externe.
Par tri interne, on comprend les mthodes de tri qui gardent l'ensemble
des lments trier en mmoire centrale au moment de l'excution de
l'algorithme de tri. Si cela ne pouvait se faire, soit parce que le nombre
d'lments trier est trop grand, soit parce que les lments sont d'une
taille trop importante, il faudrait faire appel des mthodes de tri externe.
Les mthodes de tri externe ne gardent en mmoire centrale qu'une
partie des lments trier, les autres tant par consquent
temporairement mmoriss sur des fichiers externes.
Comme certaines mthodes de tri externe utilisent aussi en partie des
mthodes de tri interne, nous tudierons dans ce chapitre quelques
algorithmes classiques de tri interne.

2. Les mthodes de tris


a. Tri par slection
-Mthode :
On cherche llment de plus petite valeur pour lchanger avec llment
en premire position ; puis on cherche llment ayant la deuxime plus
petite valeur pour lchanger avec llment en deuxime position ; et
ainsi de suite.
2 61 3 1 7
0
1 62 3 1 7
0
1 12 3 6 7
0
1 13 2 6 7
0
1 13 6 2 7
0
1 13 6 7 2
0
Il faut :
1 boucle pour parcourir le tableau et slectionner tous les lments ;
1 boucle pour rechercher le minimum parmi les lments non tris.
-Algorithme : Soit trier un tableau T de N lments dans lordre
croissant
Dbut
Pour i=1 N-1
Mini

13/21

TDI

CHAPITRE III
Algorithmique (Les tableaux)

Pour j=i+1 N
Si T(j) <T (min) alors
Minj
Fin si
Fin pour
XT(i)
T(i) T (min)
T (min) x
Fin pour
Fin
b. Tri par insertion
-Mthode :
On considre les lments les uns aprs les autres en insrant chacun sa
place
Parmi les lments dj tris.
2 6 1 3 1 7
0
6 2 1 3 1 7
0
1 6 2 3 1 7
0
1 3 6 2 1 7
0
1 1 3 6 2 7
0
1 1 3 6 7 2
0
Il faut :
1 boucle pour parcourir le tableau et slectionner llment insrer ;
1 boucle pour dcaler les lments plus grands que llment insrer ;
insrer llment.
-Algorithme
Dbut
Pour i=2 N
PT(i)
Ji
Tant que j>1 et T (j-1)>p
T(j) T (j-1)
Jj-1
Fin Tant que
T(j) p
Fin pour
Fin
c. Tri bulle
-Mthode :
En commenant du 1er lment on compare chaque lment son suivant
si cest suprieur on permute et on passe llment suivant aprs avoir
14/21

TDI

CHAPITRE III
Algorithmique (Les tableaux)

compt le nombre de permutation on continu jusqu' la fin du tableau, on


rpte ce traitement jusqu' ce que le nombre de permutation est nul.
-Algorithme
Dbut
Rpter
Permuter=faux
I1
Rpter
Si T(i)>T(i+1) alors
Permutervrai
X<-T(i)
T(i)T(i+1)
T(i+1)x
Fin si
Ii+1
Jusqu' i=N
Jusqu' permuter=faux
Fin
d. Tri par permutation
-Mthode :
En commence au 1er lment du tableau on compare chaque lment avec
son successeur si ce dernier est infrieur on permute et on revient au
dbut de la liste sinon on continu jusqu' ce quon arrive lavant dernier
lment.
-Algorithme
Dbut
I1
Tant que i<N
Si T(i)>T (i+1) alors
XT (i)
T (i) T (i+1)
T (i+1) x
I1
Sinon
Ii+1
Fin si
Fin Tant que
Fin

15/21

TDI

CHAPITRE IV
Algorithmique (Les procdures et les fonctions)

CHAPITRE III

Les procdures et les fonctions.


I. INTRODUCTION
Lorsqu'un programme est long, il est irraliste d'crire son code d'un seul
tenant. En fait, on dcompose le programme en plusieurs parties plus
petites, on donne un nom chacune de ces parties, et on les assemble
pour former le programme final. C'est le principe de la programmation
structure ou modulaire, qui repose sur l'criture de sous-programmes.
Un sous-programme est, comme son nom l'indique, un programme
ralisant un traitement particulier qui s'excute l'intrieur d'un autre
programme.
Les sous-programmes sont utiliss pour deux raisons essentielles :
- quand un mme traitement doit tre ralis plusieurs fois dans
un programme (ou qu'il est utilis dans plusieurs programmes) : on crit
un sous-programme pour ce traitement et on l'appelle chaque endroit o
l'on en a besoin. On vite ainsi de rcrire plusieurs fois le code du
traitement.
- pour organiser le code, amliorer la conception et la lisibilit des gros
programmes. En effet, le dcoupage en sous-programmes permet de
traiter sparment les difficults.
Certains sous-programmes ont dj t crits et peuvent tre utiliss
directement dans n'importe quel programme. Ce sont des sousprogrammes standards ou prdfinis. C'est le cas par exemple des sous
programmes permettant de faire des calculs mathmatiques (racine
carre, exposant, sinus, log ). La nature et le nombre de programmes
standards dpendent des langages.
Mais les sous-programmes prdfinis ne suffisent pas pour dcouper un
gros programme : le programmeur est amen crire le code de ses
propres sous-programmes.
Il existe deux sortes de sous-programmes : les procdures et les
fonctions
Nous allons tudier d'abord les procdures simples, puis les fonctions.

II. LES PROCEDURES


Une procdure est un ensemble d'instructions regroupes sous un nom, qui
ralise un traitement particulier dans un programme lorsqu'on l'appelle.
Comme un programme, une procdure possde un nom, des variables, des
instructions, un dbut et une fin.
Mais contrairement un programme, un sous-programme ne peut pas s'excuter
indpendamment d'un autre programme.
Exemple de DEFINITION d'une procdure :
Procdure ligneEtoile ( )
Var

16/21

TDI

CHAPITRE IV
Algorithmique (Les procdures et les fonctions)

i : entier
Dbut
Pour i = 1 jusqu' 10 Faire
Ecrire ('*')
Fin Pour
Ecrire ('\n') //retour la ligne
FinProc
Cette procdure permet d'afficher une ligne de 10 toiles puis passe la ligne.
APPEL d'une procdure
Pour dclencher l'excution d'une procdure dans un programme, il suffit de
l'appeler, c'est--dire d'indiquer son nom suivi de parenthses.
Programme RectangleEtoile
Var
nlignes: entier
cpt : entier
Dbut
Ecrire ("Ce programme dessine un rectangle d'toiles. Combien voulez-vous de
lignes ?")
Lire (nlignes)
Pour cpt=1 jusqu' nlignes Faire
ligneEtoile ( )

Appel de la procdure
ligneEtoile

FinPour
Fin
Lorsque le processeur rencontre l'appel d'une procdure, il arrte
momentanment l'excution du programme appelant pour aller excuter
les instructions de la procdure. Quand il a termin l'excution de la
procdure, le processeur reprend l'excution du programme appelant l o
il s'tait arrt.
Une procdure peut tre appele soit par un programme, soit par un autre
sous-programme (qui lui mme a t appel). Les appels de sousprogrammes peuvent s'imbriquer autant qu'on le dsire.

1. Notions de variables locales et de paramtres


Les variables dclares dans une procdure ne sont pas utilisables dans le
programme appelant.
Chaque sous-programme a son propre espace de variables, inaccessible
par les autres. On dit que les variables sont LOCALES.
Procdure ligneEtoile( )
Var
17/21

TDI

CHAPITRE IV
Algorithmique (Les procdures et les fonctions)

i : entier
Dbut
Pour i=1 jusqu' 10 Faire
Ecrire ('*')
FinPour
Ecrire ('\n')
FinProc
Dans notre exemple, on ne pourrait pas saisir ou afficher la variable i dans
le programme principal, car i est une variable de la procdure, utilisable
seulement dans celle -ci. Le programme principal n'a pas le droit de
l'utiliser.
Une question qui se pose alors est de savoir comment procdures et
programmes vont pouvoir communiquer des donnes. Par exemple, on
pourrait vouloir que le programme principal communique la procdure
combien d'toiles afficher par ligne. Cela est possible grce aux
paramtres.
Un paramtre est une variable particulire qui sert la
communication entre programme appelant et sous -programme.
Exemple :
Dans notre exemple, nous allons mettre le nombre d'toiles par lignes en
paramtre.
Pour cela, nous indiquons entre parenthses la dclaration du paramtre
(qui est une variable de la rocdure !). La valeur de ce paramtre est
communique l'appel, par le programme appelant.
Procdure ligneEtoile(nombre : entier ) //sous-programme
Var
Paramtre formel
cpt : entier
Dbut
Pour cpt=1 jusqu' nombre Faire
Ecrire ('*')
FinPour
Ecrire ('\n')
FinProc

Programme RectangleEtoile //programme appelant


Var
nlignes, netoiles : entier //nombre de lignes et nombre d'toiles par ligne
i : entier
Dbut
Ecrire ("Ce programme dessine un rectangle d'toiles.")
Ecrire ("Combien voulez-vous d'toiles par ligne ?")
18/21

TDI

CHAPITRE IV
Algorithmique (Les procdures et les fonctions)

Lire (netoiles)
Ecrire ("Combien voulez-vous de lignes ?")
Lire (nlignes)
Pour i=1 jusqu' nlignes Faire
ligneEtoile (netoiles)
FinPour
Paramtre effectif
Fin

2. Passage des paramtres de type donne (par valeur)


Lors de l'appel de la procdure, la valeur de la variable netoiles passe en
argument est copie dans le paramtre formel nombre (qui est une
variable). La procdure effectue alors le traitement avec la variable
nombre qui a bien la valeur voulue : celle de netoiles.
La procdure n'utilise par directement la variable netoile : elle utilise sa
valeur, qu'elle a recopie dans sa propre variable -paramtre.
Remarque importante sur l'ordre et le nombre des paramtres
Lorsqu'il y a plusieurs paramtres dans la dfinition d'une procdure, il
faut absolument qu'il y en ait le mme nombre l'appel et que l'ordre soit
respect (car la copie se fait dans l'ordre).

3. Les paramtres rels et formels


Il est primordial de bien distinguer les paramtres qui se trouvent dans
l'en-tte d'une procdure, lors de sa dfinition et les paramtres (ou
arguments) qui se trouvent placs entre parenthses lors de l'appel.
1 Les paramtres placs dans la dfinition d'une procdure sont les
paramtres formels. Ils servent dcrire le traitement raliser par
la procdure indpendamment des valeurs traites. Les paramtres
formels sont des variables locales la procdure, et ce titre ils
sont dclars dans l'entte de la procdure.
2 Les paramtres placs dans l'appel d'une procdure sont les
paramtres rels ou effectifs.Lorsqu'ils sont de type donne, ils
contiennent effectivement les valeurs sur lesquelles sera effectu le
traitement de la procdure. Lors de l'appel, leur valeur est recopie
dans les paramtres formels correspondants. Un paramtre effectif
en donne peut tre soit une variable du programme appelant, soit
une valeur littrale, soit le rsultat d'une expression.

III. LES FONCTIONS


Les fonctions sont des sous-programmes qui retournent un et un seul
rsultat au programme appelant. De ce fait, les fonctions sont appeles
pour rcuprer une valeur, alors que les procdures ne renvoient aucune
valeur au programme appelant.
L'appel des fonctions est diffrent de l'appel des procdures :
L'appel d'une fonction doit obligatoirement se trouver l'intrieur d'une
instruction (affichage, affectation, test) qui utilise sa valeur.
Le rsultat d'une fonction doit obligatoirement tre retourn au
programme appelant par l'instruction Retourne.
Syntaxe gnrale

19/21

TDI

CHAPITRE IV
Algorithmique (Les procdures et les fonctions)

Fonction nom_Fonction (dclaration des paramtres) : type de la valeur


retourne
Var
Correspond la valeur d'une variable, d'une
//variables locales
Expression ou d'une valeur littrale.
Dbut
//traitement
Retourne valeur retourner
FinFonction
Instruction obligatoire

Exemple :

Dclaration du
paramtre formel

Fonction factorielle (n: entier) : entier


/*Cette fonction retourne la factorielle
du nombre n pass en paramtre*/
Var
i : entier
fact : entier
Dbut
fact 1
Si n ? 0 Alors
Pour i=1 jusqu' n faire
fact fact * n
Instruction de retour
FinPour
FinSi
Retourne fact
FinFonction

Type de la valeur
retourne

Fonction saisie_nb_positif( ) : entier


/*Cette fonction permet de faire saisir l'utilisateur un nombre positif qui
est alors retourn*/
Var
nb_saisi : entier
Dbut
Ecrire (Veuillez entrer un nombre positif")
Lire (nb_saisi)
Tantque nb_saisi < 0 Faire
Ecrire ( "Erreur. Saisissez un nombre suprieur 0 s'il vous plait !")
Lire ( nb_saisi)
FinTantque
Retourne nb_saisi
FinFonction

20/21

TDI

CHAPITRE IV
Algorithmique (Les procdures et les fonctions)

Exemple de programme appelant utilisant ces deux fonctions :


Programme affiche_factorielle
Var
appel de la fonction saisie_nb_positif
et affectation de sa valeur retourne la
Nombre : entier
Variable nombre
rep : chane
Dbut
Paramtre effectif
Rpter
nombre saisie_nb_positif( )
Ecrire ( "La factorielle de ", nombre, " est ", factorielle(nombre))
Ecrire ( "Voulez-vous recommencez? (oui/non)")
Lire ( rep)
Appel de la fonction
Factorielle et affichage de sa
Jusqu' rep = "non"
valeur retourne
Ecrire ( "A bientt")
Fin
Remarque :
Les paramtres d'une fonction sont toujours de type donn. La valeur des
paramtres effectifs l'appel est recopie dans les paramtres formels qui
servent raliser le traitement de la fonction.
Remarque sur le passage des paramtres : Le passage de paramtre
par valeur ne permet pas la modification de la variable passe en
paramtre. Un autre type de passage de paramtre, est le passage de
paramtre par adresse ou (rfrence), dans ce type de passage de
paramtre la procdure peut modifie la valeur de la variable passe en
paramtre. Chaque langage de programmation propose sa propre
technique pour raliser ce type de passage de paramtre.

21/21

Vous aimerez peut-être aussi