TD n°1 - Algorithmes Second Degré
Rappels
• a!=0: La condition «adifférent de zéro » s’écrit «a !=0».
• a==0: La condition «aégal à zéro » s’écrit «a==0», (avec deux fois le symbole =).
• < et >: Ces symboles désignent les inégalités strictes habituelles.
• <= et >=: Ces combinaisons de symboles désignent les inégalités larges≤et≥habituelles.
• and et or
– and: Permet d’effectuer une instruction si deux tests sont vérifiés simultanément.
– or: Permet d’effectuer une instruction si au moins un test sur deux est vérifié.
Les Conditions du test
Exercice 1. Travail préliminaire
Afin de tester vos algorithmes avec des données valides et validées, effectuer leTD n°2 second degré : 6 exemples avec étude complète de fonctions.
Exercice 2. Étude d’une fonction polynôme du second degré : quelques exemples
1. Delta :
La fonction suivante cherche à renvoyer le déterminant d’une fonction polynôme du second degré de la formef(x)= ax2+bx+c(avecanon nul).
def delta(a,b,c) :
’ ’ ’Renvoie le déterminant d’une fonction polynôme du 2nd degré de la forme ax2+bx+c .’ ’ ’ asserta!=0 # Permet de conditionner le calcul au cas où a est non nul
return· · · ·
Code Python
Le texte entre triple apostrophe ’ ’ ’, juste sous la première ligne de la définition de la fonction del t a(a,b,c), s’appelle ladocstringde la fonction. C’est le texte qui apparaît si on demande de l’aide : sous la formehelp(delta)
Remarque
2. Sommet : Écrire à la suite de la précédente fonction (attention à l’indentation) une autre fonctionsommet(a,b,c) qui renvoie les coordonnées du sommet de la courbe représentative de la fonction polynôme du second degré de la formef(x)=ax2+bx+c(avecanon nul).
Votre fonction devra utiliser la fonctiondel t a(a,b,c) et présenter unedocstringet uneassert.
defsommet(a,b,c) :
#à compléter
Code Python
TD n°1 - Algorithmes - Second Degré
3. Racines : Écrire une fonctionr aci nes(a,b,c) qui renvoie les racines éventuelles de la fonction polynôme du second degré de la formef(x)=ax2+bx+c(avecanon nul).
Votre fonction devra utiliser la fonctiondel t a(a,b,c) et présenter unedocstringet uneassert.
Pour une aide sur la fonction racine carréep
a, voir dans la partie compléments en fin de TD ou sur la fiche Python sur la page algorithme du site www.math93.com.
if test : ... else : ...: Effectue les instructions indentées lorsque le test est vérifié, sinon effectue les instructions alternatives indentées.
Remarques:
• Le "else" est aligné avec le "if" qui lui correspond.
• Taper " :" puis appuyer sur la touche "entrée" pour passer à la ligne, provoque l’indentation automatique.
if test : ... else : ...
def racine(a,b,c) :
#à compléter
Code Python
4. La structure if... elif ...
Modifier (si besoin) votre fonctionr aci ne(a,b,c) en utilisant la structure :
if test1 : instructions1 elif test2 : instructions2: Effectue les instructions1 indentées lorsque le test1 est vérifié, sinon effectue le test2 et, si celui-ci est vérifié, effectue les instructions2 inden- tées.
Remarques:
• On peut enchaîner autant de "elif" que nécessaire.
• On peut terminer une série de "elif" par un "else" afin d’être sûr de traiter tous les cas.
if test1 : instructions1 elif test2 : instructions2
def racine(a,b,c) :
’ ’ ’renvoie les racines éventuelles d’une fonction polynôme du second degré de la forme ax2+bx+c’ ’ ’ asserta!=0 #test si a est non nul
if· · · ·: #Cas où· · · · return· · · ·
elif· · · ·:#Cas où· · · · return· · · ·
else :#Cas où· · · · return· · · ·
Code Python
Exercice 3. Un cas ... singulier
On considère la fonction polynôme du second degré définie par :
P(x)=x2+0,8x+0,16=0 On obtient facilement :
∆=0,82−4×0,16=0 Et pourtant ... tester vos fonctions !
www.math93.com / M. Duffaud 2/3
TD n°1 - Algorithmes - Second Degré
Quelques remarques et compléments
La fonction racine carrée peut s’obtenir de plusieurs façons différentes :
• a**(0.5) ou pow(a,0.5)
Á l’aide de la fonction puissance 0.5 :
9**(0.5)
=>3
pow(9,0.5)
=>3
• math.sqrt(a)
En utilisant lepackage mathet la fonction math.sqrt. On doit charger le package sur la première ligne du programme. Voici trois exemples d’utilisation :
importmath math.sqrt(9)
=>3
frommathimport * sqrt(9)
=>3
frommathimportsqrt sqrt(9)
=>3
Racine carrée
www.math93.com / M. Duffaud 3/3