« Mathématiques avec Python et Ruby/Fonctions en Python » : différence entre les versions

Contenu supprimé Contenu ajouté
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
Ligne 27 :
Les fonctions du sujet de Bac ci-dessus peuvent être définies par ''def'' en ''Python'':
 
<sourcesyntaxhighlight lang="python">
def C(x):
return x**2+50*x+100.0
Ligne 34 :
def f(x):
return C(x)/x
</syntaxhighlight>
</source>
 
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
 
<sourcesyntaxhighlight lang="python">
def f(x):
return x+50+100.0/x
</syntaxhighlight>
</source>
 
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:
 
<sourcesyntaxhighlight lang="python">
def abs(x):
if x>0:
Ligne 53 :
 
 
</syntaxhighlight>
</source>
 
=Tableau de valeurs=
Ligne 79 :
La méthode 3 peut se faire avec un itérateur de ''Python'':
 
<sourcesyntaxhighlight lang="python">
for x in range(5,40,5):
print("l\'image de "+str(x)+" par f est "+str(f(x)))
</syntaxhighlight>
</source>
 
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:
 
<sourcesyntaxhighlight lang="python">
for x in [5,10,20,30,40]:
print("l\'image de "+str(x)+" par f est "+str(f(x)))
</syntaxhighlight>
</source>
 
La méthode 4 peut s'implémenter en ''Python'' avec:
 
<sourcesyntaxhighlight lang="python">
print([f(x) for x in [5,10,20,30,40]])
</syntaxhighlight>
</source>
 
C'est aussi simple que ça!
Ligne 103 :
L'énoncé demandait d'arrondir au centième d'[[w:Euro|euro]] près
 
<sourcesyntaxhighlight lang="python">
for x in [5,10,20,30,40]:
print("l\'image de "+str(x)+" par f est "+str(round(f(x),2)))
</syntaxhighlight>
</source>
 
=Représentation graphique=
Ligne 118 :
Le plus simple est de faire
 
<sourcesyntaxhighlight lang="python">
from turtle import *
setpos(5,f(5))
for x in range(5,40):
setpos(x,f(x))
</syntaxhighlight>
</source>
 
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:
 
<sourcesyntaxhighlight lang="python">
from turtle import *
penup()
Ligne 166 :
 
stamp()
</syntaxhighlight>
</source>
 
Le graphique est correct mais un peu petit et mal cadré.
Ligne 184 :
Ce qui peut donner ceci:
 
<sourcesyntaxhighlight lang="python">
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>
</source>