Vous êtes sur la page 1sur 19

Cours dalgorithmique

Licence Professionnelle Systmes Informatiques et Logiciels 2010 2011

M. Azeddine Zidouni

Sous algorithmes

Plan
Sous algorithmes Procdures Fonctions

Utilit !

Si on considre lalgorithme de tri par insertion :

Constante MAX = 20 Variables Tableau Tab(MAX) : entiers val_Courante, Permut, i, j : entier Dbut Pour i 1 MAX faire indice_Tempo i Tant que ((indice_Tempo0)&&(Tab(indice_Tempo) < Tab(indice_Tempo-1))) val_tmp Tab(indice_Tempo) Tab(indice_Tempo) Tab(indice_Tempo-1) Tab(indice_Tempo-1) val_Tmp indice_Tempo indice_Tempo -1 finTantQue fpout Fin

Utilit !

Si on considre lalgorithme de tri par insertion :

Constante MAX = 20 Variables Tableau Tab(MAX) : entiers val_Courante, Permut, i, j : entier Dbut Pour i 1 MAX faire indice_Tempo i Tant que ((indice_Tempo0)&&(Tab(indice_Tempo) < Tab(indice_Tempo-1))) val_tmp Tab(indice_Tempo) Tab(indice_Tempo) Tab(indice_Tempo-1) Tab(indice_Tempo-1) val_Tmp indice_Tempo indice_Tempo -1 finTantQue fpout Fin

Simplification : Permutation (valeur1, valeur2)

Schma dun algorithme


Donnes Initialisation des traitements

Traitements

Communication des rsultats

Rsultats

Schma dun algorithme


Donnes Initialisation des traitements Donnes Initialisation des traitements Sous-algo 1 Traitements Sous-algo 1 Communication des rsultats Communication des rsultats Rsultats Sous-algo 1

Rsultats

Principe
Un algorithme principal fait appel des sous algorithmes
Les sous algorithmes prennent momentanment le contrle de lexcution du traitement Les sous algorithmes sont conus pour des tches bien dfinies, ils peuvent tre indpendants de lalgorithme appelant Un sous algorithme peut appeler un autre sous algorithme

Deux types de sous algorithmes : procdures et fonctions

Communication dinformation
Paramtres en donne

algorithme

Paramtres en rsultat

Sous algorithme

Paramtres en donne et rsultat

Appelant

Appel

Paramtres et arguments
Algorithme appelant Arguments
Paramtres en donne Paramtres en rsultat

Algorithme appelant Paramtres

Nombre de paramtres = nombre darguments Il doit y avoir une correspondance entre les types de paramtres et les types darguments

Procdures et fonctions
Une procdure est un ensemble dinstructions rfrenc par un nom, et dont lexcution est provoque par le simple nonc de ce nom
Mot cl : procedure

Une fonction est une procdure qui possde une valeur de sortie dont le type est bien dfini
Mot cl : fonction

Les procdures
Une procdure admet des arguments en entre/ sortie, en entre ou en sortie Son traitement consiste modifier les valeurs des variables donnes en arguments Elle possde un entte et un corps

Procdure : notation algorithmique


Dclaration de la procdure
Procdure Nom_Procedure(Liste des arguments) {Description du traitement de la procdure} Paramtres Constante Variables Dbut Instructions Fin

Appel depuis lalgorithme appelant


Nom_Procedure(Liste des arguments)

Procdure : notation algorithmique


Dclaration de la procdure
Procdure Nom_Procedure(Liste des arguments) {Description du traitement de la procdure} Paramtres Paramtres de la procdure en donne (D) ou en rfrence (R) Constante Variables et constantes internes Variables Dbut Instructions Fin

Appel dans le programme principal


Nom_Procedure(Liste des arguments)

Les fonctions
Une fonction ne modifie pas la valeurs de ses arguments en entre Elle se termine par une instruction de retour qui rend un rsultat et un seul On lutilise toujours dans une expression (affectation, affichage. . . )

Fonction : notation algorithmique


Dclaration du corps dune fonction
Fonction Nom_Fonction(Liste des arguments) {Description du traitement de la procdure} Paramtres Valeur de sortie Constante Variables Dbut Instructions Retourner (Valeur) Fin

Appel de la fonction depuis lalgorithme appelant

Var Nom_Fonction(Liste des arguments)

Fonction : notation algorithmique


Dclaration du corps dune fonction
Fonction Nom_Fonction(Liste des arguments) {Description du traitement de la procdure} Paramtres Paramtres de la fonction Retourne Valeur de sortie de la fonction Constante Variables et constantes internes Variables Dbut Instructions Retourner (Valeur) Fin

Appel de la fonction depuis lalgorithme appelant


Var Nom_Fonction(Liste des arguments)

Comparaison : fonction et procdure


Points communs
Mme dclaration Arguments et paramtres

Points de divergence
Arguments non modifiables dans les fonctions Les procdures ne renvoient pas de valeurs

Exemple : Bloc de conversion de monnaies


Fonction Convertir(Val : entier) {Conversion de leuro au dollar } Paramtres Val : Entier Retourne Val_Out : entier Constante TAUX = 1.30 Variables Val_Dollar : entier Dbut Val_Dollar Val * TAUX Retourner (Val_Dollar) Fin Procdure Convertir(Val_In : entier, Val_Out : entier) {Conversion de leuro au dollar } Paramtres Val_In : Entier (D), Val_Out : Entier (R) Constante TAUX = 1.30 Dbut Val_Out Val_In * TAUX Fin

A retenir : pourquoi les sous algorithmes?


Permettre une analyse descendante du problme
Identifier les diffrents traitements

Mise au point progressive


Organiser lenchanement des tapes

Faciliter la maintenance et le dbugage des algorithmes