Extrait du cours algorithmique, programmation
…..
un objet de l’appelant qui est associé à un objet de l’appelé, “l’argument muet” correspondant. En anglais : actual argument pour argument effectif, dummy argument ou formal argument pour argument muet. On choisit des arguments effectifs à chaque appel du sous-algorithme. On dit qu’un argument muet est une donnée du sous-algorithme si la valeur provenant de l’argument effectif correspondant est seulement utilisée dans le sous-algorithme, ou en d’autres termes si la valeur de l’argument muet n’est pas modifiée dans le sous-algorithme. Si le sous-algorithme n’a pas besoin d’une valeur initiale pour un argument et donne lui-même une valeur à l’argument alors l’argument muet est un argument résultat du sous-algorithme. Un argument muet donnée-résultat est un argument pour lequel le sous-algorithme a besoin d’une valeur initiale et que le sousalgorithme modifie. Il est important de déclarer pour chaque argument muet s’il est donnée, résultat ou donnée-résultat. Le style de programmation le plus clair consiste à ne laisser que le passage d’arguments comme communication entre appelant et sous-algorithme.
Le concept de fonction est très proche du concept de sous-algorithme. La fonction, comme le sous-algorithme, a une liste d’arguments muets. La différence est que la fonction a en outre une “valeur de retour” (qui n’est pas un argument).
La valeur de retour est un des résultats de la fonction, qui a un statut particulier, une sorte de résultat principal.
Le style de programmation le plus clair consiste à ne laisser que des arguments d’entrée à une fonction. On peut appeler “fonction pure” une fonction dont tous les arguments sont des arguments d’entrées et qui ne fait pas d’entréessorties dans son corps (pas de lecture au clavier ou dans un fichier, pas de sortie à l’écran ou dans un fichier). La valeur de retour d’une fonction pure est non seulement le principal mais le seul résultat de la fonction. En langage de description d’algorithme, toutes les fonctions que l’on écrira seront pures.
Pour insister encore sur la différence entre fonction et sous-algorithme, pour un sous-algorithme : il n’existe pas de valeur de retour, tous les éventuels résultats doivent normalement passer par les arguments.
Le fait qu’il existe une valeur de retour pour une fonction et non pour un sous-algorithme implique qu’on appelle l’un et l’autre de manières différentes.
Prenons un exemple. On a isolé le sous-problème du calcul du minimum de trois nombres. On peut définir un sous-algorithme, auquel on donne le nom min3, qui a trois arguments muets données, les trois nombres dont on cherche le minimum, et qui a un argument muet résultat, le minimum cherché. Cf. figure (4). Ou bien on peut définir une fonction min3 qui a trois arguments muets données et dont la valeur de retour est le minimum cherché. En langage de description d’algorithme, dans l’algorithme appelant, on appelle une procédure en faisant apparaître son nom suivi, entre parenthèses, de la liste d’arguments effectifs pour cet appel.
Pour une fonction, on écrit l’appel comme on écrirait une valeur quelconque, étant entendu que la valeur référencée ainsi est la valeur de retour de la fonction.
En d’autres termes, l’appel de fonction doit être utilisé directement, par exemple dans une affectation, ou comme partie d’une expression, ou dans une sortie
……
Sommaire: Algorithmique, programmation
1 Introduction
2 Concepts
3 Langage d’algorithme
3.1 Variables et types
3.2 Les tableaux
3.3 Les instructions simples
3.4 Assertions
3.5 Les instructions composées
3.5.1 La séquence
3.5.2 L’alternative
3.5.3 L’itération
4 Conseils de présentation
5 Conception descendante
6 Idéaux
7 Procédures
7.1 Choix entre sous-algorithme et fonction pure
8 Conception avec procédures
Algorithmique, programmation (276 KO) (Cours PDF)