« Mathématiques avec Python et Ruby/Fonctions en Python » : différence entre les versions
Contenu supprimé Contenu ajouté
m <source> -> <syntaxhighlight> (phab:T237267) |
|||
Ligne 27 :
Les fonctions du sujet de Bac ci-dessus peuvent être définies par ''def'' en ''Python'':
<
def C(x):
return x**2+50*x+100.0
Ligne 34 :
def f(x):
return C(x)/x
</syntaxhighlight>
Si on essaye de calculer l'image de 0 par ''f'', on remarque qu'en lieu et place du calcul, ''Python'' affiche un message d'erreur: La fonction ''f'' n'est pas definie en 0. On peut aussi la définir directement par
<
def f(x):
return x+50+100.0/x
</syntaxhighlight>
On peut aussi définir des fonctions de plusieurs variables (comme le pgcd) ou des fonctions définies par des boucles ou des tests, comme la valeur absolue:
<
def abs(x):
if x>0:
Ligne 53 :
</syntaxhighlight>
=Tableau de valeurs=
Ligne 79 :
La méthode 3 peut se faire avec un itérateur de ''Python'':
<
for x in range(5,40,5):
print("l\'image de "+str(x)+" par f est "+str(f(x)))
</syntaxhighlight>
Trop de calculs tuent le calcul! Les images de 25 et 35 par exemple encombrent le tableau. Mais ''Python'' permet d'utiliser des itérateurs beaucoup plus souples, et adaptés au problème présent:
<
for x in [5,10,20,30,40]:
print("l\'image de "+str(x)+" par f est "+str(f(x)))
</syntaxhighlight>
La méthode 4 peut s'implémenter en ''Python'' avec:
<
print([f(x) for x in [5,10,20,30,40]])
</syntaxhighlight>
C'est aussi simple que ça!
Ligne 103 :
L'énoncé demandait d'arrondir au centième d'[[w:Euro|euro]] près
<
for x in [5,10,20,30,40]:
print("l\'image de "+str(x)+" par f est "+str(round(f(x),2)))
</syntaxhighlight>
=Représentation graphique=
Ligne 118 :
Le plus simple est de faire
<
from turtle import *
setpos(5,f(5))
for x in range(5,40):
setpos(x,f(x))
</syntaxhighlight>
Difficile de rêver plus simple mais on peut voir trois problèmes:
Ligne 135 :
Pour résoudre le deuxième problème, il suffit de lever le crayon avec ''penup()'' avant de commencer le tracé (et de le redescendre pour le tracé lui-même). Pour résoudre le troisième problème, il suffit de rendre la tortue invisible avec ''hideturtle()''. Pour les axes, on peut les tracer avec la tortue:
<
from turtle import *
penup()
Ligne 166 :
stamp()
</syntaxhighlight>
Le graphique est correct mais un peu petit et mal cadré.
Ligne 184 :
Ce qui peut donner ceci:
<
from tkinter import *
fenetre=Tk()
Ligne 211 :
for x in range(5,40):
graphique.create_line(20+10*x-10,460-4*f(x-1),20+10*x,460-4*f(x))
</syntaxhighlight>
|