« Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche » - Anonyme
Certains traitements ne peuvent être effectués par un algorithme, aussi savant soit-il. D’autres ne peuvent l’être qu’au prix de souffrances indicibles.
C’est par exemple le cas du calcul du sinus d’un angle : pour en obtenir une valeur approchée, il faudrait appliquer une formule d’une complexité à vous glacer le sang. Aussi, que se passe-t-il sur les petites calculatrices que vous connaissez tous ? On vous fournit quelques touches spéciales, dites touches de fonctions, qui vous permettent par exemple de connaître immédiatement ce résultat. Sur votre calculatrice, si vous voulez connaître le sinus de 35°, vous taperez 35, puis la touche SIN, et vous aurez le résultat.
Tout langage de programmation propose ainsi un certain nombre de fonctions ; certaines sont indispensables, car elles permettent d’effectuer des traitements qui seraient sans elles impossibles. D’autres servent à soulager le programmeur, en lui épargnant de longs – et pénibles - algorithmes.
1. Structure générale des fonctions
Reprenons l’exemple du sinus. Les langages informatiques, qui se doivent tout de même de savoir faire la même chose qu’une calculatrice à 19F90, proposent généralement une fonction SIN. Si nous voulons stocker le sinus de 35 dans la variable A, nous écrirons :
A ← Sin(35)
Une fonction est donc constituée de trois parties :
le nom proprement dit de la fonction. Ce nom ne s’invente pas ! Il doit impérativement correspondre à une fonction proposée par le langage. Dans notre exemple, ce nom est SIN.
deux parenthèses, une ouvrante, une fermante. Ces parenthèses sont toujours obligatoires, même lorsqu'on n'écrit rien à l'intérieur.
une liste de valeurs, indispensables à la bonne exécution de la fonction. Ces valeurs s’appellent des arguments, ou des paramètres. Certaines fonctions exigent un seul argument, d’autres deux, etc. et d’autres encore aucun. A noter que même dans le cas de ces fonctions n’exigeant aucun argument, les parenthèses restent obligatoires. Le nombre d’arguments nécessaire pour une fonction donnée ne s’invente pas : il est fixé par le langage. Par exemple, la fonction sinus a besoin d’un argument (ce n’est pas surprenant, cet argument est la valeur de l’angle). Si vous essayez de l’exécuter en lui donnant deux arguments, ou aucun, cela déclenchera une erreur à l’exécution. Notez également que les arguments doivent être d’un certain type, et qu’il faut respecter ces types.
Et d'entrée, nous trouvons :
LE GAG DE LA JOURNEE
Il consiste à affecter une fonction, quelle qu'elle soit.
Toute écriture plaçant une fonction à gauche d'une instruction d'affectation est aberrante, pour deux raisons symétriques.
d'une part, parce que nous le savons depuis le premier chapitre de ce cours extraordinaire, on ne peut affecter qu'une variable, à l'exclusion de tout autre chose.
ensuite, parce qu'une fonction a pour rôle de produire, de renvoyer, de valoir (tout cela est synonyme), un résultat. Pas d'en recevoir un, donc.
L'affectation d'une fonction sera donc considérée comme l'une des pires fautes algorithmiques, et punie comme telle.
Tavernier...