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:
xxxxxxxxxx181# définition de la fonction2'''3fonction qui calcule le double d'un nombre4et affiche un message informatif5 - paramètre: n un nombre (int ou float)6 - pas de retour7'''8def double( n ):9 print("le double de", n, "est: ")10 print(2*n)11 12# corps du programme avec deux appels de fonction1314# appel de fonction 115double( 3 )1617# appel de fonction 218double( 7 )xxxxxxxxxx41le double de 3 est:263le 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:
xxxxxxxxxx271# définition de la fonction2'''3fonction qui calcule le double d'un nombre4et le renvoie5 - 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 fonction10 11# corps du programme1213# appel de fonction 114double( 3 ) # le résultat est bien retourné mais est non utilisé donc perdu1516# appel de fonction 217a = double( 3 ) # le retour de la fonction est stocké dans la variable a18print( a ) # puis affiché1920# appel de fonction 321print( double(3)) # le retour de la fonction est imprimé2223# affectation du résultat d'une comparaison avec 3 appels de fonctions24isTrue = ( double(3)+double(4) == double (3+4) )25print( isTrue )2627xxxxxxxxxx316263True
On peut implémenter une fonctionnalité quelconque par une fonction qui:
xxxxxxxxxx41def maFonction ( e1 , e2 , ... , en): # paramètres entre parenthèse séparés par des virgules2 ...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 ) -> messageparamè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.
xxxxxxxxxx71# Ecrire votre programme ici:234567
Programmer une fonction qui retourne le carré d'un nombre :
carre( n ) -> n_squareparamè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
xxxxxxxxxx71# Ecrire votre programme ici:234567
On continue sur la mission 4.2.
Programmer une fonction qui retourne le plus grand diviseur d'un nombre:
plusGrandDiviseur(n) -> dparamè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:234567