Les fonctions en algorithmique- Première- Mathématiques
- Fiche de cours
- Quiz et exercices
- Vidéos et podcasts
- 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.
- 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) où 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.
- Fonctions mathématiques, antécédents et images
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.
Parfois, les fonctions n’ont pas de donnée d’entrée.
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.
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
- 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
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
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.
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.
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.
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!) |
Pour utiliser ces fonctions prédéfinies, il faut d’abord importer le module math en utilisant la commande import math.
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))
Des quiz et exercices pour mieux assimiler sa leçon
La plateforme de soutien scolaire en ligne myMaxicours propose des quiz et exercices en accompagnement de chaque fiche de cours. Les exercices permettent de vérifier si la leçon est bien comprise ou s’il reste encore des notions à revoir.
Des exercices variés pour ne pas s’ennuyer
Les exercices se déclinent sous toutes leurs formes sur myMaxicours ! Selon la matière et la classe étudiées, retrouvez des dictées, des mots à relier ou encore des phrases à compléter, mais aussi des textes à trous et bien d’autres formats !
Dans les classes de primaire, l’accent est mis sur des exercices illustrés très ludiques pour motiver les plus jeunes.
Des quiz pour une évaluation en direct
Les quiz et exercices permettent d’avoir un retour immédiat sur la bonne compréhension du cours. Une fois toutes les réponses communiquées, le résultat s’affiche à l’écran et permet à l’élève de se situer immédiatement.
myMaxicours offre des solutions efficaces de révision grâce aux fiches de cours et aux exercices associés. L’élève se rassure pour le prochain examen en testant ses connaissances au préalable.
Des vidéos et des podcasts pour apprendre différemment
Certains élèves ont une mémoire visuelle quand d’autres ont plutôt une mémoire auditive. myMaxicours s’adapte à tous les enfants et adolescents pour leur proposer un apprentissage serein et efficace.
Découvrez de nombreuses vidéos et podcasts en complément des fiches de cours et des exercices pour une année scolaire au top !
Des podcasts pour les révisions
La plateforme de soutien scolaire en ligne myMaxicours propose des podcasts de révision pour toutes les classes à examen : troisième, première et terminale.
Les ados peuvent écouter les différents cours afin de mieux les mémoriser en préparation de leurs examens. Des fiches de cours de différentes matières sont disponibles en podcasts ainsi qu’une préparation au grand oral avec de nombreux conseils pratiques.
Des vidéos de cours pour comprendre en image
Des vidéos de cours illustrent les notions principales à retenir et complètent les fiches de cours. De quoi réviser sa prochaine évaluation ou son prochain examen en toute confiance !