MatheX – Licence CC BY-NC-SA 4.0 - https://www.mathexien.com
Objectifs:
- Introduire Python pour les élèves de 2nd
- Synthétiser les connaissances en programmation pour les élèves de 2nd et de 1ère spé Maths
- Mettre en place des fondamentaux sur Python en début de 1ère spé NSI
Méthodologie:
Lire l'activité
Réaliser les missions en programmant sur un environnement de développement:
- en ligne ( notebook, repl.it, pythontutor , ...)
- installé sur votre ordinateur ( idle de Python, Thonny, Pycharm Community, ...)
Visionner la vidéo de l'épisode pour plus d'explications et pour la correction
Objectifs:
- Introduire le concept de programmation fonctionnelle
- Programmer en utilisant des fonctions
Lorsqu'on veut utiliser plusieurs fois une fonctionnalité, plutôt que de la coder à chaque fois, il est plus intéressant de:
Voici un exemple en python:
xxxxxxxxxx
181# définition de la fonction
2'''
3fonction qui calcule le double d'un nombre
4et affiche un message informatif
5 - paramètre: n un nombre (int ou float)
6 - pas de retour
7'''
8def double( n ):
9 print("le double de", n, "est: ")
10 print(2*n)
11
12# corps du programme avec deux appels de fonction
13
14# appel de fonction 1
15double( 3 )
16
17# appel de fonction 2
18double( 7 )
xxxxxxxxxx
41le double de 3 est:
26
3le double de 7 est:
414
La fonction définie précédemment n'est toutefois pas optimale.
En effet, l'utilisateur ne voudra pas forcément faire un print
, ou pas forcément sous cette forme, ou voudra combiner le résultat à d'autres opérations...
On préférera faire un retour de fonction, c'est à dire que la fonction va retourner son résultat:
xxxxxxxxxx
271# définition de la fonction
2'''
3fonction qui calcule le double d'un nombre
4et le renvoie
5 - paramètre: n un nombre (int ou float)
6 - retour: double de n (int ou float)
7'''
8def double( n ):
9 return 2*n # mot clef return renvoit le résultat de la fonction
10
11# corps du programme
12
13# appel de fonction 1
14double( 3 ) # le résultat est bien retourné mais est non utilisé donc perdu
15
16# appel de fonction 2
17a = double( 3 ) # le retour de la fonction est stocké dans la variable a
18print( a ) # puis affiché
19
20# appel de fonction 3
21print( double(3)) # le retour de la fonction est imprimé
22
23# affectation du résultat d'une comparaison avec 3 appels de fonctions
24isTrue = ( double(3)+double(4) == double (3+4) )
25print( isTrue )
26
27
xxxxxxxxxx
316
26
3True
On peut implémenter une fonctionnalité quelconque par une fonction qui:
xxxxxxxxxx
41def maFonction ( e1 , e2 , ... , en): # paramètres entre parenthèse séparés par des virgules
2 ...
3 ...
4 return s # le retour de la fonction
On reprend la mission 2.3 mais cette fois ci avec une fonction.
Programmer une fonction qui renvoie un message de bienvenue :
messageBienvenue( nom , prenom, annee ) -> message
paramètres: nom (str), prénom (str) , année de naissance (int)
retour: message (str) de bienvenue mise en forme et contenant le nom, le prénom ainsi que l'âge (fin d'année)Puis l'utiliser en demandant les informations nécessaires pour trois personnes.
xxxxxxxxxx
71# Ecrire votre programme ici:
2
3
4
5
6
7
Programmer une fonction qui retourne le carré d'un nombre :
carre( n ) -> n_square
paramètre: n (int ou float)
retour: n_square (int ou float) le carré de nPuis l'utiliser pour:
afficher les carrés des 20 premiers entiers
afficher les entiers dont le carré est inférieur à un nombre à demander à l'utilisateur
xxxxxxxxxx
71# Ecrire votre programme ici:
2
3
4
5
6
7
On continue sur la mission 4.2.
Programmer une fonction qui retourne le plus grand diviseur d'un nombre:
plusGrandDiviseur(n) -> d
paramètre: n (int)
retour: d (int) le plus grand diviseur de n (différent de n)Puis l'utiliser pour:
afficher le plus grand diviseur d'un nombre demandé à l'utilisateur
afficher les dix premiers nombres premiers
71# Ecrire votre programme ici:
2
3
4
5
6
7