TP5 - Fonctions
- Comprendre le concept de variable ;
- Effectuer des affectations ;
- Gérer des cas dans des programmes ;
- Répéter des instructions ;
- Factoriser à l'aide de fonctions.
- Se créer un dossier
SNT
sur votre ordinateur ou clé USB - Dans ce dossier, créer un dossier
T3 - Programmation
(Programmation Orientée Objet)
Sur EduPython ou autre instance python, faire :
- Créer un nouveau fichier en cliquant sur l'icône
📄
, ou en appuyant surCTRL
+N
- Enregistrer le fichier sous le nom
TP5_Fonctions
en cliquant sur l'icône💾
, ou en appuyant surCTRL
+S
L'ensemble des exercices se fait sur le logiciel EduPython.
Rappels
On utilise int(input())
pour saisir un entier et le stocker dans une variable.
Pour afficher le contenu d’une variable ou du texte, on utilise la fonction print()
:
variable = int(input("saisir quelque chose"))
print(variable)
print("Afficher un texte")
Les conditions permettent d'exécuter un bout de code, ou bien un autre, suivant le résultat d'une condition :
age = 18
if age >= 18 :
print("Je suis majeur")
else :
print("Je suis mineur")
Pour répéter des instructions, on utilise la boucle for
:
for i in range(0,10) :
print("Bonjour")
"Bonjour" sera répété 10 fois.
Fonctions
En mathématiques
Une fonction mathématique est généralement représentée par f(x), où l’image de la fonction va varier suivant la valeur de x.
f(x) = x2 donnerait :
Quand x vaut 0, on aurait 02, quand x vaut 1 : 12, x vaut 2 : 22 etc ...
f est ici le nom
de la fonction, x serait le paramètre
de la fonction, et ce que l’on retrouve après le égal serait le calcul
à effectuer suivant le paramètre x.
On pourrait également faire un calcul suivant plusieurs paramètres.
Si on a g(x, y) = 2 ∗ x − y, on pourrait avoir le tableau suivant :
x | y | g(x,y) |
---|---|---|
0 | 0 | 0 |
0 | 1 | -1 |
1 | 0 | 2 |
1 | 1 | 1 |
En informatique
Une fonction informatique va permettre de réutiliser un ensemble d'instructions, suivant des paramètres également. On pourra effectuer différents traitements en fonction des paramètres.
Pour définir une fonction en python, on emploie le schéma suivant :
def nomFonction(paramètre1, paramètre2,...) :
#on écrit ce qu'on veut faire dans la fonction
Si on veut faire une fonction qui affiche les valeurs de x suivant la formule f(x) = x2, on écrit la fonction :
def f(x):
print(x**2)
f(1)
f(2)
À la suite du programme, à la ligne, si on écrit f(1)
, la fonction f va être exécutée, et, dans la fonction, tous les x
seront remplacés par la valeur 1
.
Les fonctions peuvent calculer et retourner
des résultats calculés, pour qu'ils puissent être réutilisés.
Pour ce faire, à la fin de la fonction, on rajoute écrit le mot-clé return
suivi de la valeur/variable que l'on souhaite retourner.
Soient f(x) = x2 et g(x) = f(x) + 4.
On peut remarquer que pour calculer l'image de g
, on doit d'abord calculer le résultat de f
.
Pour créer la fonction f
, on peut reprendre la fonction précédente. Cependant, comme la fonction g
a besoin du résultat de f
, il faut que f retourne ce qu’il a calculé :
def f(x) :
resultat = x**2
#On retourne ici le résultat pour le récupérer ailleurs
return resultat
def g(x) :
#On récupère dans la variable valeur_f ce que renvoie la fonction f
valeur_f = f(x)
resultat = valeur_f + 4
return resultat
La fonction f
retourne la variable resultat
, qui contient l’opération x2.
La fonction g
met dans une variable valeur_f
le résultat de la fonction f suivant la même valeur de x
, calcule dans resultat
l’opération f(x) + 4, et le retourne également.
Exemples d'utilisation
Afficher un prénom (input)
def afficher_prenom(prenom) :
print("Je m'appelle ",prenom)
p = input("Écrire votre prénom")
afficher_prenom(p)
Météo (condition)
def meteo(temperature):
if temperature < 0 :
print("ca va geler !")
elif temperature >= 0 and temperature < 15 :
print("il fait froid...")
else :
print("il fait chaud !")
meteo(-5)
meteo(3)
meteo(48)
Pentagone (boucle et turtle)
def dessin_pentagone(couleur,cote):
pencolor(couleur)
for i in range(cote):
forward(100)
right(360//cote)
dessin_pentagone("red", 6)
dessin_pentagone("blue", 10)
Moyenne (return)
def moyenne(note1, coeff1, note2, coeff2):
notes = note1 * coeff1 + note2 * coeff2
total_coeff = coeff1 + coeff2
m = notes / total_coeff
return m
eleve1 = moyenne(15,3,10,2)
print(eleve1)
eleve2 = moyenne(4,3,14,2)
print(eleve2)
Exercices
On appelle entête d'une fonction
le fait de définir le nom de la fonction, ainsi que ses paramètres.
- def afficher_prenom(prenom)
- def meteo(temperature)
- def dessin_pentagone(couleur,cote)
- def moyenne(note1,coeff1,note2,coeff2)
Aire d'un cercle
L’aire d’un cercle est donnée par la formule : Aire = π ∗ r2, où la valeur de l’aire va changer suivant r
.
- Écrire l'entête de la fonction
aire
(son nom, son paramètre). - Dans la fonction, définir une variable
pi
avec pour valeur 3.14 . - Définir une variable
a
(pour l'aire) avec pour valeur la formule citée plus haut. - Retourner la variable
a
. - En dehors de la fonction (à la suite, sans indentation) créer une variable
a2
qui contient le résultat de la fonctionaire
, oùr
vaut 2. - Afficher le contenu de
a2
. - Exécuter le programme.
- Faire la même pour calculer l'aire d'un cercle de rayon 10.
Plus grande valeur
On souhaite faire une fonction qui prend 2 nombres en paramètres, a
et b
, et on souhaite retourner la plus grande des 2 valeurs.
- Écrire l'entête de la fonction
maximum
(son nom, ses paramètres). - À l'aide d'une condition, retourner
a
si a est plus grand que b,b
sinon. - Écrire en dehors de la fonction :
print(maximum(10,3)) #donne 10
print(maximum(-5,-10)) #donne -5 - Exécuter le programme, et vérifier que les valeurs affichées sont bien les plus grandes.
Appartenance d'un point à une droite
On souhaite vérifier si un point A de coordonnées (xA; yA) appartient bien à une droite D d’équation y = −2x + 3.
Un point appartient à une droite si sa coordonnée en y
est bien égale à l'équation de la droite (en remplaçant le x
par celui du point).
- Écrire l'entête de la fonction
appartient
(son nom, ses paramètres). La fonction aura comme paramètres xA (correspondant à la coordonnée en x du point A) et yA (correspondant à la coordonnée en y du point A). - Définir une variable
calcul
, contenant le résultat de l'équation de la droite (on fera attention à bien utiliser le paramètre xA). - À l'aide d'une condition, afficher
True
(vrai) si la coordonnée en y du point est bien égale aucalcul
,False
(faux) sinon. - Tester la fonction à la suite avec le point A de coordonnée (-7;17) (doit afficher True).
- Tester la fonction à la suite avec le point A de coordonnée (-7;10) (doit afficher False).
Équation d'une droite
On souhaite afficher l’équation d’une droite (y = m ∗ x + b) à partir de 2 points A(3;-8) et B(5;10). On va proposer 2 fonctions :
Pente d'une droite
La pente d’une droite (m) est calculable grâce à la formule : m = (yB−yA) / (xB−xA)
- Écrire la fonction
pente(xA,yA,xB,yB)
prenant les coordonnées de chaque point, et retournant la valeurm
calculée grâce à la formule. - Tester la fonction avec les valeurs des points A et B citées plus haut.
Calculer b
Grâce à la fonction précédente, on obtient la valeur m
.
L’équation est y = m ∗ x + b.
Pour trouver b
, il faut calculer le résultat de l’équation suivant :
b = y − m ∗ x, où x
et y
sont les coordonnées d’un point.
- Écrire la fonction
trouver_b(m,x,y)
qui calcule et retourne la valeur deb
grâce à l’équation. - Tester la fonction avec la valeur de
m
trouvée avant, et le point A.
Afficher l’équation
On souhaite pour finir afficher l’équation complète.
- Écrire la fonction
afficher_equation(xA,yA,xB,yB)
qui affiche l’équation sous la forme m*x + b, en utilisant les fonctions précédentes. - Tester la fonction avec le point A et B. Il devrait s'afficher
9*x-35
.