Procédures et les fonctions en algorithme - Programmation Maroc

 Programmation Maroc

le chemin vers la programmation

Programmation Maroc

mercredi 27 mai 2020

Procédures et les fonctions en algorithme

     
              

                          *** Chapitre 4 : Procédures et les fonctions ***



  1) Introduction
Lorsque l’on  progresse dans la conception d’un algorithme, ce dernier peut prendre une taille et une complexité croissante. De même des séquences d’instructions peuvent se répéter à plusieurs fois.
Lorsque un algorithme dépasse deux page ou plus devient difficile à comprendre et à gérer par  les programmeurs. La  solution consiste alors à découper  l’algorithme en plusieurs parties plus  petites. Ces parties sont appelées des sous-algorithmes.
Le sous-algorithme est écrit séparément du corps de l’algorithme principal et sera appelé par  celui-ci  quand ceci sera nécessaire.
Il existe deux sortes de sous-algorithme : les procédures et les fonctions 
2) Les procédures
Une procédure est une série d’instruction regroupées sous un nom, qui permet d’effectuer des actions par un simple appel de la procédure dans un algorithme ou dans un autres sous algorithme.
Une procédure renvoie plusieurs valeurs (pas une) ou aucune valeur.
2-1) Déclaration d’une procédure   
  Syntaxe :













Après  le nom de la procédure, il faut donner la liste des paramètres (s’il en a) avec leur type respectif. Ces paramètres formels. Leur valeur n’est pas connue lors de la création de la procédure. 


Exemple 1 :
Ecrire une procédure qui affiche à l’écran une ligne de 15 étoiles









Exemple 2 :
Ecrire une procédure qui affiche à l’écran une ligne de N étoiles, où N passé comme paramètre.










2-2) L’appel d’une procédure  
Pour déclencher l’exécution d’une procédure dans un programme, il suffit de l’appeler. L’appel de procédure s’écrit en mettant le nom de la procédure, puis la liste des paramètres. Séparés par des virgules. 
A l’appel d’une procédure, le programme interrompt son déroulement normal, exécute les  instructions de  la procédure, puis retourne au programme appelant et exécute l’instruction suivante.
Syntaxe :     Nom_procédure (…………..)
Les paramètres utilisées lors de l’appel d’une procédure sont appelés paramètres effectifs. Ces paramètres donneront leurs valeurs aux paramètres formels.

Exemple 2 :
Ecrire un algorithme qui permet d’affiche à l’écran une ligne de N étoiles, où N passé comme paramètre dans une procédure.















2-3) Passage de paramètres
Les échanges d’informations entre une procédure  et le sous-algorithme appelant se font par l’intermédiaire de paramètres.
Il existe deux principaux types de passages de paramètres qui permettent des usages différents.

==> Passage  par valeur
Dans  ce type de passage, le paramètre formel reçoit uniquement une copie de la valeur du paramètre effectif. La valeur du paramètre effectif ne sera jamais modifiée.  
Exemple:  
Soit  l’algorithme suivant :

                                                                                                                  












Cet algorithme définit une procédure pour laquelle on utilise le passage de paramètres par valeurs. Lors de l’appel de la procédure, la valeur du paramètre effectif N est recopiée dans le paramètre formel A. la procédure  effectue alors le traitement et affiche la valeur de la variable A dans ce cas 10.
Après l’appel de la procédure, l’algorithme affiche la valeur de la variable N dans ce cas 5. La procédure ne modifie pas le paramètre qui est passé par valeur.
==> Passage  par adresse (ou par référence)
Dans ce type  de passage, la procédure utilise l’adresse du paramètre effectif. Lorsqu'on utilise  l’adresse du paramètre, on accède directement à son contenu. La valeur de la variable effectif  sera donc modifiée.
Les paramètres passés par adresse sont précédés par le mot clé Var.

Exemple: 
Soit  l’algorithme suivant :

  














A l’exécution de la procédure, l’instruction Ecrire (A)  permet d’afficher à l’écran 10. Au retour dans l’algorithme principal, l’instruction Ecrire (N)  affiche   également 10.  
Dans cet algorithme le paramètre passé correspond à la référence (l’adresse) de la variable N. Elle est donc modifiée par l’instruction :   A ← A*2.
Remarque :
Lorsqu'il y a plusieurs paramètres dans la définition d’une procédure, il faut absolument qu’il y en ait le même nombre à l’appel et que l’ordre   soit respecté.
3) Les fonctions 
Les fonctions sont des sous algorithme admettant des paramètres (ou sans paramètres) et retournant une seule valeur de type simple qui peut apparaître dans une expression, dans une comparaison, à la droite d’une affectation, etc.
3-1) Déclaration d’une fonction
Syntaxe : 











La syntaxe de la déclaration d’une fonction est assez proche de celle d’une procédure à laquelle on ajoute un type qui représente le type de la valeur retournée par la fonction et une  instruction Retourner Expression. Cette dernière instruction renvoie au programme appelant le  résultat de  l’expression placée à la suite du mot clé Retourner.   
Remarque :  
Les paramètres sont facultatifs, mais s’il  n’y a pas de paramètres, les parenthèses doivent rester présentes. 
Exemple:
Définir une fonction qui renvoie le plus grand de deux nombres passées par les paramètres.      


                                                                  








3-2) L’appel d’une fonction   
Pour exécuter une fonction, il suffit de faire appel à elle  en écrivant son nom suivi des paramètres effectifs. C’est la même syntaxe qu’une procédure.
A la différence d’une procédure, la fonction retourne une valeur. L’appel d’une fonction pourra  donc être utilisé dans une instruction (affichage, affectation …) qui utilise sa valeur.

Syntaxe :     Nom_fonction (…………..)
Exemple :
 Ecrire un algorithme qui permet d’appeler à la fonction Max de l’exemple précédent :



                                                                                                                                        















Exercice1
Ecrire une fonction puissance qui permet de calculer la puissance d’un nombre réel.


                                                                        


                                                                                                                      
                                                                                                                                                            

                                              

Exercice2
Ecrire un algorithme qui demande à l’utilisateur deux entiers, et calcule la somme des nombres entiers compris entre ces deux entiers. Par exemple : si l’utilisateur tape   5 et 17, c’est-à-dire  la somme  est : S= 5+6+7+…+ 17.



 


                                      

















                                                                                       
                                                                                                                                     










                                                                                    
 






                                                                                                                                                                                                                                                                 


























     

Aucun commentaire:

Publier un commentaire