Techniques et concepts de l'entreprise, de la finance et de l'économie 
(et fondements mathématiques)

Les fonctions en programmation

logo

 

 

 

 

 

 

 

 

 

 

Sous-programmes de type fonction

FONCTION est un mot qui recouvre plusieurs concepts. En classe de seconde, et plus particulièrement dans un même cours (en l’occurrence celui de maths), les élèves en étudient deux. Comble de la confusion ? Pas vraiment. Les fonctions utilisées en algorithmique ont tout de même un lien avec les fonctions mathématiques

Avant de s’attarder sur la programmation, rappelons brièvement ce qu’est une fonction numérique. C’est une application qui, sur son ensemble de définition, associe à tout nombre une image et une seule.

En principe, un élève de seconde connaît quelques rudiments d’Excel. Profitons-en pour illustrer le propos à partir de cet outil. Un tableur comporte un certain nombre de fonctions, qui s’écrivent dans la bien nommée barre de fonctions. Par exemple, SOMME associe à une plage de valeurs une et une seule « image », c’est-à-dire la somme de tous les nombres contenus dans la plage sélectionnée. Ici, on ne parle pas d’ensemble de définition mais si dans votre sélection se trouvent des caractères alphabétiques au lieu de nombres, vous aurez droit à un message d’erreur. Vous décelez des similitudes ? Très bien.

Les fonctions d’Excel sont déjà programmées. Les équipes de Microsoft ont fait le job. Mais vous aussi, vous pouvez en programmer. C’est possible sur Excel si vous connaissez le Visual Basic mais ce n'est pas le langage privilégié dans le secondaire. On utilise plutôt, selon les établissements, Python, Xcas, Scilab, Algobox ou tout simplement la calculatrice.

Définition

Une fonction est un sous-programme ou bloc d’instructions. Elle a obligatoirement un nom.

Habituellement, on ne parle pas de variables mais d’arguments de la fonction. Une fonction peut d’ailleurs n’avoir aucun argument.

Intérêts

Une même fonction peut être incluse dans plusieurs programmes, ou plusieurs fois dans un même programme.

De plus, le fait de créer des blocs rend la lecture des algorithmes beaucoup plus aisée.

Mais généralement, dans le secondaire, les fonctions tiennent tout simplement lieu de programmes. C’est-à-dire qu’une fois maîtrisée la structuration d’un algorithme avec la calculatrice (entrées, traitement, sorties) on s’en affranchit avec des logiciels qui autorisent des programmes plus concis, davantage centrés sur le traitement. En effet, l’entrée est simplement l’affectation de valeurs aux arguments et le traitement fait partie de l’étape de sortie.

En langage naturel

Dans le secondaire, on utilise le langage « naturel », c’est-à-dire une façon simple et intuitive de comprendre et de rédiger un algorithme. Au bac, c’est un programme en langage naturel qu’il s’agit de commenter ou de compléter. Bien sûr, ce type de formulation est uniquement pédagogique car la pratique d’un outil informatique exige de programmer en code.

En langage naturel, on peut utiliser l’instruction retourne pour renvoyer le résultat d’une fonction. Cette instruction, cohérente avec les langages de Python et Xcas, peut être contournée mais nous l’emploierons pour être plus clair.

Exemple 1

Soit la fonction affine f définie sur R par f(x) = 2x + 7. On souhaite écrire une fonction qui permette d’entrer une valeur x et d’obtenir f(x).

fonction f(x)
retourne (x × 2 + 7)

Remarque : il n’y a qu’un argument (x) et une seule ligne suffit pour le traitement et pour la sortie.

Exemple 2 (avec condition)

Soit f(x) = 2x + 7 mais seulement si x < 0. Sinon, f(x) = 3x + 7.

fonction f(x)
Si x < 0
   alors retourne (x × 2 + 7)
   sinon retourne (x × 3 + 7)
fin si

Exemple 3 (avec deux arguments)

Écrivons une fonction destinée à calculer le volume d’un cylindre.

Rappel de la formule :

V=pi r h

La fonction a donc deux arguments, le rayon r et la hauteur h.

fonction cylindre(r, h)
retourne (π × × h)

Programmons à présent cette fonction avec Scilab. Ce logiciel a toutes les qualités : il est gratuit, multi-plateformes, ne nécessite pas l’emploi d’un éditeur externe, et surtout il permet tout autant d’introduire l’algorithmique que d’effectuer des calculs de haute volée. Comme Excel, il comporte des fonctions déjà programmées.

La fonction a été écrite dans l’éditeur puis collée dans la fenêtre de console qui est reproduite ci-dessous.

Elle a ensuite été lancée avec un exemple (rayon de 1 et hauteur de 2). Le résultat apparaît en dernière ligne (2π).

Comme vous le constatez au passage, Scilab ne nécessite pas l’emploi d’une commande retourne et le nombre π s’écrit %pi.

 

 

© JY Baudot - Droits d'auteur protégés