Les fonctions en algorithmique- Première- Mathématiques - Maxicours

Les fonctions en algorithmique

Objectifs
  • Comprendre et utiliser les fonctions en langage Python.
  • Identifier les entrées et les sorties d’une fonction.
  • Structurer un programme en utilisant des fonctions.
Points clés
  • Dans un programme, il arrive d’utiliser plusieurs fois la même succession d’instructions.
    Créer une fonction permet de réduire le nombre de lignes et d’éviter les erreurs en exécutant directement cette suite d’instructions.
  • Pour définir une fonction en langage Python, on écrit : def nom_de_fonction(a)a est la donnée d’entrée (appelée argument ou paramètre).
  • Une fonction peut avoir une seule, plusieurs ou aucune donnée(s) d’entrée.
  • Pour simplifier la programmation, une liste de fonctions a été prédéfinie. Ainsi, pour appeler le programme donnant l’arrondi, on utilise la fonction round(a). Une fonction prédéfinie est un objet informatique qui appelle un programme déjà existant.
Pour bien comprendre
  • Fonctions mathématiques, antécédents et images
1. Qu’est-ce qu’une fonction ?
a. Définition
Dans un programme, il arrive d’utiliser plusieurs fois la même succession d’instructions.
Créer une fonction permet de réduire le nombre de lignes et d’éviter les erreurs en exécutant directement cette suite d’instructions.

Même si le terme « fonction » est différent en mathématiques et en informatique, il y a une analogie entre les deux : on retrouve des données d’entrée et des données de sortie.
En mathématique, les données d’entrée sont les antécédents, les données de sortie sont les images.

Pour définir une fonction en langage Python, on écrit : def nom_de_fonction(a)a est la donnée d’entrée (appelée argument ou paramètre).
Parfois, les fonctions n’ont pas de donnée d’entrée.
Exemple
On crée une fonction double qui multiplie le nombre d’entrée par 2.
Mathématiquement, cela représente la fonction f(x) = 2x.
L1   def double(a):
L2      p=a*2
L3      return(p)
L4
L5   print(double(8))

À la ligne 3, return(p) indique ce que renvoie la fonction en sortie : p. Or, on a défini en ligne 2 que p vaut a × 2.
À la ligne 5, pour utiliser cette fonction, on remplace a par le nombre 8. La fonction renverra alors le nombre 16.
b. Données d’entrée d’une fonction
Une fonction peut avoir une seule, plusieurs ou aucune donnée(s) d’entrée.
Exemple de fonction sans donnée d’entrée
La fonction random() ne nécessite pas de donnée d’entrée, elle renvoie automatiquement un nombre réel compris entre 0 et 1.
L1   a=random.random()
L2   print(a)
L3   0.38233820555263487
Exemples de fonction avec une seule donnée d’entrée
  • La fonction sqrt(a) renvoie la racine carrée du nombre a.
    sqrt(2) donne la racine carrée du nombre 2 :
    L1   import math
    L2   math.sqrt(2)
    L3   1.4142135623730951

    Pour utiliser la fonction, il faut d’abord importer la librairie math (ligne 1) qui contient plusieurs fonctions mathématiques.
  • La fonction floor(a) donne la partie entière du nombre a.
    floor(101.265) donne la partie entière du nombre 101,265 :
    L1   math.floor(101.265)
    L2   101
Exemple de fonction avec plusieurs données d’entrée
La fonction randint(a,b) nécessite en entrée deux nombres entiers, entre lesquels la fonction tire aléatoirement un nombre entier.
randint(1,10) tire aléatoirement un nombre entier compris entre 1 et 10.
L1   import random
L2   a=random.randint(1,10)
L3   print(a)
L4   7
c. Utiliser une fonction pour simuler une expérience aléatoire
Exemple
On cherche à simuler plusieurs lancers d’une pièce équilibrée et à compter le nombre de « face » obtenus. On voudrait d’abord faire 10, 50 puis 100 lancers. On utilise un générateur aléatoire de nombres entiers entre 1 et 0. Si on obtient 1, c’est un « face » et si on obtient 0, c’est un « pile ».
Pour cela, on tape le programme suivant :
L1   n1=10
L2   n2=50
L3   n3=100
L4
L5   for i in range (n1):
L6      a=random.randint(0,1)
L7      if a==1:
L8         k=k+1
L9   print(k)
L10      
L11   for i in range (n2):
L12      b=random.randint(0,1)
L13     
if b==1:
L14        
l=l+1
L15  
print(l)
L16  
L17   for i in range (n3):
L18     
c=random.randint(0,1)
L19      if c==1:
L20         m=m+1
L21   print(m)

On observe que l’on répète 3 fois la même suite d’instructions, en changeant simplement le nombre de valeurs parcourues par i dans la boucle for (lignes 5, 11, 17).

Pour alléger le programme et éviter les erreurs, on peut remplacer cette suite d’instructions par une fonction aleatoire :
L1   def aleatoire(n):
L2      k=0
L3      for i in range (n):
L4         a=random.randint(0.1)
L5         if a==1:
L6           k=k+1
L7      return(k)
L8        
L9   print(aleatoire(10))
L10  print(aleatoire(50))      
L11  print(aleatoire(100))

On remarque que le programme prend un nombre de lignes bien plus petit grâce à cette fonction.
2. Effectuer des calculs dans Python
a. Rappel sur les opérateurs de base

Par défaut, un langage de programmation ne peut effectuer que des opérations élémentaires (addition, soustraction, division euclidienne…), grâce à des opérateurs :

Opérateur Description
a+b Somme de a et b
a–b Différence entre a et b
a*b Produit entre a et b (a × b)
a/b Quotient entre a et b
a%b Reste de la division euclidienne de a par b
a**b a à la puissance b

Les calculs plus complexes nécessitent l’utilisation de fonctions.

b. Fonctions prédéfinies dans Python

Pour déterminer, par exemple, l’arrondi d’un nombre, on pourrait au préalable définir un programme capable de donner cet arrondi. Ce serait long et fastidieux, d'autant que l’arrondi est une opération courante en mathématiques.

Pour simplifier la programmation, une liste de fonctions a été prédéfinie. Ainsi, pour appeler le programme donnant l’arrondi, on utilise la fonction math.round(a). Une fonction prédéfinie est un objet informatique qui appelle un programme déjà existant.
Fonction prédéfinie Description
math.sqrt(a) Donne la racine carrée de a ()
math.floor(a) Donne la partie entière de a
math.factorial(a) Donne factorielle a (a!)
Remarque
Pour utiliser ces fonctions prédéfinies, il faut d’abord importer le module math en utilisant la commande import math.
Exemple
On veut construire la fonction f : x ➝ .
On utilise pour cela la fonction prédéfinie math.sqrt():
L1   import math  
L2   def f (n):
L3      n=math.sqrt(n+4)
L4      return(n)


Il est également possible d’écrire la fonction de cette façon (à privilégier) :
L1   import math   
L2   def f (n):
L3      return(math.sqrt(n+4))

Vous avez déjà mis une note à ce cours.

Découvrez les autres cours offerts par Maxicours !

Découvrez Maxicours

Comment as-tu trouvé ce cours ?

Évalue ce cours !

 

Des profs en ligne

quote blanc icon

Découvrez Maxicours

Exerce toi en t’abonnant

Découvrir le reste du programme

Des profs en ligne

  • 6j/7 de 17 h à 20 h
  • Par chat, audio, vidéo
  • Sur les matières principales

Des ressources riches

  • Fiches, vidéos de cours
  • Exercices & corrigés
  • Modules de révisions Bac et Brevet

Des outils ludiques

  • Coach virtuel
  • Quiz interactifs
  • Planning de révision

Des tableaux de bord

  • Suivi de la progression
  • Score d’assiduité
  • Un compte Parent