diff --git a/PreStSauveur/Programmation/Fonctions.html b/PreStSauveur/Programmation/Fonctions.html new file mode 100644 index 0000000..c0f3772 --- /dev/null +++ b/PreStSauveur/Programmation/Fonctions.html @@ -0,0 +1,13416 @@ + + +
+ +Le but de ce TP est de découvrir les fonctions en programmation.
+ + +entree1 = 'Choux'
+entree2 = 'Salade'
+plat1 = 'Frites'
+plat2 = 'Haricots vert'
+print("==== Menu du jour ====")
+print("")
+print("Entrées -----")
+print(" * ", entree1)
+print(" * ", entree2)
+print("Plats -------")
+print(" * ", plat1)
+print(" * ", plat2)
+print("")
+print("Faites votre choix")
+
Dans le programme précédent, on répète plusieurs fois comment il faut afficher un choix.
+ +print(" * ", entree1)
+print(" * ", entree2)
+
+
+C'est peu long à écrire mais surtout si l'on veut mettre un ~
au lieu d'une *
, il faut changer chaque ligne (et donc surement en oublier!). Pour éviter d'avoir à réécrire chaque fois la même chose, on peut définir des fonctions.
Ici notre fonction va transformer le nom d'un plat en ligne de notre menu.
+ +def choix(plat):
+ return ' ~ '+ plat
+
On peut alors utiliser cette fonction pour présenter notre menu.
+ +entree1 = 'Choux'
+entree2 = 'Salade'
+plat1 = 'Frites'
+plat2 = 'Haricots vert'
+print("==== Menu du jour ====")
+print("")
+print("Entrées -----")
+print(choix(entree1))
+print(choix(entree2))
+print("Plats -------")
+print(" * ", plat1)
+print(" * ", plat2)
+print("")
+print("Faites votre choix")
+
On peut aussi tout à fait programmer des fonctions similaires à celles que l'on trouve en mathématiques.
+Cette fonction affine
+$$ f:x \mapsto -x^2 + 6x+ 3$$se codera en python
+ +def f(x):
+ return -x**2+6*x-3
+
Maintenant que la fonction est codée, on peut l'utiliser pour calculer des images.
+ +print(f(10))
+print(f(-2))
+
Pour chacune des fonctions suivantes, testées les pour savoir si elles fonctionnents. Une fois que vous ètes sûr qu'elles font bien ce que vous souhaitez, ne les effacées pas et gardez les pour la suite.
+Programmer la fonction $g$ définie par + $$ g:x \mapsto x(19 - 2x) $$
+Programmer la fonction $h$ qui correspond au programme de calcul suivant
+Programmer une fonction celcius2fahrenheit
qui convertit des degrés celcius vers des degrés fahrenheit en utilisant la formule suivante
+ $$ (°F) = 1,8 * (°C) + 32 $$
Programmer la fonction inverse fahrenheit2celcius
.
Les 2 prochaines parties peuvent être faite independament. A vous de choisir celle qui tente le plus.
+ +Imaginons que je souhaite chercher le maximum de la fonction $f$ programmée précédement. Il va falloir que je fasse calculer à python plusieurs images de cette fonction.
+ +print(f(0))
+print(f(5))
+print(f(20))
+
Le faire de la sorte peut prendre beaucoup de temps et n'est pas vraiment dans la logique de faire travailler l'ordinateur à notre place.
+Pour réaliser plusieurs calculs de façon systématiques, on peut utiliser une boucle for
.
for x in range(10):
+ print("Quand x vaut", x, ", f(x) vaut", f(x))
+
On peut donc penser que la fonction a un maximum autour de 3.
+Au bac, on applique le barème suivant:
+On peut y voir une fonction qui transforme une note en l'un des deux mots recalé ou reçut.
+if
dans le mémo).Parmi les reçuts, certains peuvent avoir des mentions:
+Notions de programmation
+ +Ressouces Python
+Se rendre sur le site de repl.it.
+L'interface se sépare en 2 parties:
+ +Il est conseillé d'utiliser en priorité la zone script car elle permet d'écrire sur plusieurs lignes et de corriger après l'execution. La zone shell servira à tester des commandes pour voir directement leurs effets.
+Pour sauvergarder votre travail, vous cliquerez sur les 3 points à côté de Files puis sur download as zip.
+ + +Contrairement à ce que l'on a fait hier on ne met plus rien dans les parenthèses d'un input
.
input()
est une commande qui va demander à l'utilisateur une information
print("Comment t'appelles tu?")
+nom = input()
+print("Ah! Tu t'appelles", nom)
+
Après avoir afficher la question, l'ordinateur se met en pose et attend que l'utilisateur réponde quelque chose. Une fois que l'utilisateur a répondu (a appuyé sur entrer
) la réponse est stocké, ici, dans la variable nom
.
Pour différencier plusieurs cas, on utilisera la commande if
(si), elif
(sinon si) et else
(sinon).
a = 2
+b = 3
+
+if a > b: # Si
+ print("a plus grand que b")
+elif a == b: # Sinon si
+ print("a est égal à b")
+else: # Sinon
+ print("a est plus petit que b")
+
Les boucles for permettent de répéter un certain nombre de fois la même action.
+a = 2
+print("Au debut a vaut", a)
+for i in range(5):
+ a = a + 100
+ print("a vaut maintenant", a)
+print("Finalement a vaut", a)
+
phrase = "boujour toi"
+print("On enumere >>> ", phrase)
+for l in phrase:
+ print(l)
+print("Toutes les lettres ont été énumérées")
+
liste = ["premier element", 2, "coucou", 1, "aie", 0]
+print("On enumère >>>", liste)
+for i in liste:
+ print(i)
+print("Tout a été énuméré")
+
En anglais, while
signifie tant que. On l'utilisera quand on veut refaire quelque plusieurs fois tant que quelque chose n'est pas vrais.
Ajouter 3 tant que que u
n'a pas dépassé 19:
u = 2
+while u < 19:
+ u = u + 3
+ print("u vaut ", u)
+print("u a depassé 50 et vaut", u)
+
Poser toujours la même question quand que l'utilisateur n'a pas bien répondu:
+ +aPasTrouve = True # True signifie vrai en anglais.
+while aPasTrouve:
+ print("Quelle est la couleur du cheval blanc d'Henri 4?")
+ rep = input()
+ if rep == "blanc":
+ print("Bravo!")
+ aPasTrouve = False # False signifie faux en anglais
+ else:
+ print("Non! Recommence!")
+print("Voila tu as réussi!")
+
Une fonction est un morceau de programme qui évitera de coder plusieurs fois la même chose. Quand on programme on dit souvent Si c'est la 3e fois que l'on écrit ces lignes c'est qu'il faut en faire une fonction
.
Voici différentes utilisations de fonctions.
+ +En math, on utilise les fonctions pour décrire les transformations (de nombres le plus souvent).
+Par exemple: +$$ f:x \mapsto 3x + 2$$ +Cette fonction $f$ prend un nombre, le multiplie par 3 puis ajoute 2. On pourra la coder de la façon suivante:
+ +def f(x):
+ return 3*x+2
+
On vient de coder cette fonction, on peut ensuite l'utiliser
+ +print(f(4))
+print("L'image de 2.5 par la fonction f est ", f(2.5))
+print("f(-2) = ", f(-2))
+
Au collège, on a vu les "programmes de calculs". Ils peuvent eux aussi être codé avec des fonctions.
+Se code de la façon suivante:
+ +def programme(nombre):
+ reponse = nombre + 5
+ reponse = reponse / 10
+ return reponse
+
print(programme(60))
+
Les fonctions numériques sont très utilisées en math mais en programmation, on manipule beaucoup d'autres types de fonctions.
+On pourrait vouloir transformer un texte en un titre entouré de symboles #
.
def entoure(titre):
+ return '##### ' + titre + ' #####'
+
print(entoure('Mon titre'))
+print(entoure("L'histoire du petit chaperon rouge"))
+print(entoure('Fin'))
+
On peut même mettre un autre argument (en plus de titre
) pour entourer avec autre chose que #
.
def entoure(texte, symbole):
+ return symbole*4 + ' ' + texte + ' ' + symbole*4
+
print(entoure('La belle au bois dormant', '-'))
+
+