Chapitre 4: Les sous algorithmes

publicité
29/11/2016
Algorithmique
et structure de données I
Cours 5: Les Fonctions et les Procédures
Dr. Jihène Tounsi
ISG de Sousse
Site web: http://www.jihenetounsi.com
Email: [email protected]
1
Pourquoi des sous algorithmes
Un algorithme est un ensemble de sous-algorithmes
Décomposer un problème en sous problème





Facilité de résolution (Diviser pour régner)
Lisibilité de l’algorithme
La réutilisation des instructions sans les réécrire.
Algorithme Principal
Variables
….
Debut
Instruction1
Appel Sous-algo1
Appel sous-algo2
….
Fin
2
Sous-algo1
Sous-algo3
Sous-algo2
Dr. Jihène Tounsi
1
29/11/2016
Les sous-algorithmes
Entête sous-algorithme
Un sous algorithme a la même
structure que l’algorithme principal.

Variables
//déclaration des variables
Début
Instructions
…
Fin …

L’algorithme principal fait appel à un sous-algorithme

Un sous-algorithme peut appeler un ou plusieurs autres
algorithmes
3
Dr. Jihène Tounsi
Chronologie d’exécution
Algorithme Principal
Variables
….
Debut
Instruction1
Appel Sous-algo1
Instruction 2
Fin
L’ordre d’exécution

Instruction 1
Sous_algo1
1.
2.
3.
1.
Instruction 1.1
2.
Instruction 1.2
Instruction 2
Sous-Algo1…
Variables
…
Début
Instruction 1.1
Instruction 1.2
Fin
4
Dr. Jihène Tounsi
2
29/11/2016
Communication d’information
Un algorithme envoie des données au sous-algorithme

La donnée est appelée un argument.
 Un argument peut être une variable ou une valeur.

Dans l’entête d’un sous-algorithme les données sont
appelées des paramètres.

Les arguments sont envoyés aux paramètres.
 L’ordre de l’envoi des arguments, doit correspondre à l’ordre
de déclaration des paramètres.
 L’argument et le paramètre lui correspondant doivent être de
même type.

5
Dr. Jihène Tounsi
Passage des paramètres
Il existe deux modes de passage des arguments vers les
paramètres


Passage par valeur : les arguments ne sont pas modifiés lors de
l’exécution des instructions des sous-algorithmes.



6
Le paramètre récupère une copie de l’argument.
Ce passage est appliqué par défaut.
Passage par adresse : La modification des paramètres entraîne
la modification des arguments.

Le paramètre récupère l’adresse (ou la référence) de l’argument.

Après la déclaration du paramètre mettre le mot clé : par adresse.
Dr. Jihène Tounsi
3
29/11/2016
Exemple de passage des paramètres
Algorithme Principal
Variables
arg1:entier
arg2:chaîne
//déclaration du sous-Algo1
Debut
Instruction1
Sous-algo ( arg1 , arg2 )
Instruction 2
Fin
Sous-Algo1(paramètre1:entier, paramètre2: chaîne par adresse)
Variables
…
Début
…
Fin
7
Dr. Jihène Tounsi
Variables globales vs Variables locales
Les variables déclarées au niveau de l’algorithme principal
sont appelés des variables globales (V.G).


La portée de la V.G est totale : Elle est reconnue par tous les
sous-algorithmes de l’algorithme principal
Les variables déclarées au niveau d’un sous-algorithme
sont appelés des variables locales (V.L).


La portée de la V.L est restreinte : Elle est reconnue seulement
par le sous-algorithme où elle est déclarée.
Dans un sous algorithme lorsqu’une V.G a le même nom
qu’une V.L, la V.G est momentanément masquée.

8
Dr. Jihène Tounsi
4
29/11/2016
Les procédures
Une procédure est un sous algorithme qui effectue un
traitement spécifique

Paramètres en entrée
Procédure
Une procédure peut prendre zéro ou n paramètres.
Une procédure effectue un traitement qui ne retourne
pas de résultat.
Une procédure peut modifier plusieurs variables en
même temps si le passage s’est fait par adresse.



9
Dr. Jihène Tounsi
Syntaxe d’une procédure
Déclaration de la procédure
Procédure nom_procédure (paramètre_1:type, …parmètre_n:type)
Variables
//déclaration des variables locales
Début
…
Instructions
Fin Procédure
//Appel d’une procédure dans l’algorithme
principal
Algorithme …;
Variables
….
//Déclaration de la procédure
Début
….
//Appel de la procédure
Nom_Procédure(argument_1,…,argument_n)
…
Fin
10
Dr. Jihène Tounsi
5
29/11/2016
Exemple : Saisie et affichage d’un tableau
Algorithme Saisie_Tableau;
//déclaration d’un type tableau pour alléger les
entêtes de procédure
Type tab=tableau [0,49] d’entiers
//Déclaration procédures
Procedure Saisie (T:tab par adresse)
//Déclaration variables locales
Variables
i,n : entier
Début
//Saisie de la taille du tableau
Répeter
Ecrire(“donnez le nombre d’entiers”)
Lire (n)
Jusqu’à (n >0 ET n<50])
//Saisie des éléments du tableau
Pour i de 0 à n-1 faire
Ecrire(“donnez l’élément n°”,i+1)
Lire (T[i])
Fin Pour
Fin procédure
//Procédure pour l’affichage
Procedure Afficher(T:tab)
//Déclaration variables locales
Variables
i : entier
Début
Pour i de 0 à T.Taille-1 faire
Ecrire(T[i])
Fin Pour
Fin procédure
//Déclaration variable globale
Variables
T1: tab
//programme principal
Début
//Appel de procédures
Saisie (T1)
Afficher (T1)
Fin
11
Dr. Jihène Tounsi
Les fonctions

Une fonction est un sous algorithme qui retourne une
valeur calculée.
Paramètres en entrée



Fonction
Résultat
Une fonction peut prendre zéro ou n paramètres.
Une fonction renvoie un seul résultat à l’aide du mot clé
Retourne.
La valeur retournée par la fonction doit être récupérée
dans l’algorithme principal.
12
Dr. Jihène Tounsi
6
29/11/2016
Syntaxe d’une Fonction
Fonction nom_Fonction (paramètre: type): type retourné
Variables
//déclaration des variables locales
Début
Instructions
Retourne (var)
Fin Fonction
//Appel d’une fonction dans l’algorithme principal
Algorithme …;
Variables
….
//Déclaration de la fonction
Début
….
Varnom_Fonction(argument)
…
Fin
13
Dr. Jihène Tounsi
Exemple : Calcul Moyenne d’un tableau
//Suite de l’exemple des procédures
Algorithme Saisie_Tableau;
//déclaration d’un type tableau pour alléger
les entêtes des procédures
Type tab=tableau [0,49] d’entiers
//Déclaration procédures
//Voir exemple procédure
//Déclaration des fonctions
Fonction Moyenne (T:tab):réel
//Déclaration des variables locales
Variables
S,i: entier
M:réel
Début
S0
Pour i de 0 à T.Taille-1 faire
SS+T[i]
Fin pour
MS/T.lTaille
Retourne (M)
Fin Fonction
//Déclaration variable globale
Variables
14
T1: tab
Moy: réel
//programme principal
Début
//Appel de la procédure
Saisie (T1)
Afficher (T1)
//Appel de fonction
MoyMoyenne (T1)
Ecrire (“la moyenne des éléments du tableau =“, Moy)
Fin
Dr. Jihène Tounsi
7
29/11/2016
Fin du chapitre
15
8
Téléchargement