|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() Étudiant Inscription : novembre 2010 Messages : 120 ![]() |
Bonsoir,
Je cherche à faire une fonction qui doit me donner la ou les solutions d'un polynôme du second degré (ax² + bx + c). Pour l'instant, voici ma fonction (elle fonctionne très bien) : Code :
Quand je lance ça dans interpréteur, j'ai bien mon couple de solutions qui apparait. Seulement voilà, j'aimerais aller plus loin et faire en sorte qu'un couple ne soit retourné que si delta > 0 et qu'un nombre seul soit retourné seulement si delta = 0 et enfin, qu'un complexe soit retourné si delta < 0; Je code donc ma fonction ainsi mais cela ne semble pas fonctionner : Code :
Je pense savoir d'où vient l'erreur : si mon premier 'if' retourne un tuple de float, alors mes autres 'elif' et 'else' doivent aussi retourner un tuple de float. Y a t-il un moyen de remédier à ce problème ? Merci d'avance. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Inscription : mars 2002 Messages : 962 ![]() |
Quel serait le type de phi ? Comment l'utiliserais-tu ensuite ?
C'est le problème dans tous les langages à typage statique : le compilateur veut connaître les types que tu manipules (et sans exécuter ton code). Il faut que chaque valeur ait un seul type. Une solution possible est de renvoyer une liste de nombre complexes. La liste peut avoir 1 ou 2 éléments, dont la partie imaginaire sera nulle pour delta>=0. Une autre solution est de définir un type somme et de l'utiliser comme valeur de retour : Code :
|
||
|
|
20
|
|
|
#3 |
|
Membre confirmé
![]() Étudiant Inscription : novembre 2010 Messages : 120 ![]() |
Bonsoir, merci de votre réponse.
Le type somme semble en effet être une solution adaptée, je n'y avais pas pensé car je ne connaissais pas encore ce type. Merci, je vais donc essayer de re-coder ma fonction
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com